X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FCmsEventBusImpl.java;h=99f6c1d8d18a548d6ecb6adfff5b6fd91abf5325;hb=5b6b49fa655c7b3ae3dcc06d6c504e3d0225684f;hp=7fca23c991ee75fb3cce34bd7b85f3d216ed5be7;hpb=8c6e16aa43d9523e1ec57a41a06b3ceba7d23fdb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsEventBusImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsEventBusImpl.java index 7fca23c99..99f6c1d8d 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsEventBusImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsEventBusImpl.java @@ -10,16 +10,12 @@ import org.argeo.api.cms.CmsEventBus; import org.argeo.api.cms.CmsEventSubscriber; import org.argeo.api.cms.CmsLog; +/** {@link CmsEventBus} implementation based on {@link Flow}. */ public class CmsEventBusImpl implements CmsEventBus { private final CmsLog log = CmsLog.getLog(CmsEventBus.class); - // CMS events private Map>> topics = new TreeMap<>(); -// private IdentityHashMap> subscriptions = new IdentityHashMap<>(); - /* - * CMS Events - */ @Override public void sendEvent(String topic, Map event) { SubmissionPublisher> publisher = topics.get(topic); @@ -58,6 +54,7 @@ public class CmsEventBusImpl implements CmsEventBus { } } + /** A subscriber to a topic. */ static class CmsEventFlowSubscriber implements Flow.Subscriber> { private String topic; private CmsEventSubscriber eventSubscriber; @@ -72,13 +69,12 @@ public class CmsEventBusImpl implements CmsEventBus { @Override public void onSubscribe(Subscription subscription) { this.subscription = subscription; - subscription.request(1); + this.subscription.request(Long.MAX_VALUE); } @Override public void onNext(Map item) { eventSubscriber.onEvent(topic, item); - subscription.request(1); } @Override