- @SuppressWarnings("unchecked")
- private DOMNotificationRouter(final ExecutorService executor, final int queueDepth, final WaitStrategy strategy) {
- this.executor = Preconditions.checkNotNull(executor);
-
- disruptor = new Disruptor<>(DOMNotificationRouterEvent.FACTORY,
- queueDepth, executor, ProducerType.MULTI, strategy);
+ private volatile Multimap<SchemaPath, AbstractListenerRegistration<? extends DOMNotificationListener>> listeners =
+ ImmutableMultimap.of();
+
+ @VisibleForTesting
+ DOMNotificationRouter(final int queueDepth, final WaitStrategy strategy) {
+ observer = new ScheduledThreadPoolExecutor(1,
+ new ThreadFactoryBuilder().setDaemon(true).setNameFormat("DOMNotificationRouter-observer-%d").build());
+ executor = Executors.newCachedThreadPool(
+ new ThreadFactoryBuilder().setDaemon(true).setNameFormat("DOMNotificationRouter-listeners-%d").build());
+ disruptor = new Disruptor<>(DOMNotificationRouterEvent.FACTORY, queueDepth,
+ new ThreadFactoryBuilder().setNameFormat("DOMNotificationRouter-disruptor-%d").build(),
+ ProducerType.MULTI, strategy);