X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fmd%2Fsal%2Fbinding%2Fimpl%2FNotificationBrokerImplModule.java;h=154000038da517990a43423cc632cd691c8b311b;hb=9d382baa1e291f3199089b00f2e9adf910c1f9a0;hp=b6c27a6332c4fdc7ddc6c08e25970f51431c8260;hpb=78aac68702240a5e01c250030811b56cf1c5dd8e;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/NotificationBrokerImplModule.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/NotificationBrokerImplModule.java index b6c27a6332..154000038d 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/NotificationBrokerImplModule.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/NotificationBrokerImplModule.java @@ -7,25 +7,26 @@ */ package org.opendaylight.controller.config.yang.md.sal.binding.impl; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.md.sal.binding.api.NotificationService; +import org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceAdapter; import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder; import org.opendaylight.controller.sal.binding.impl.NotificationBrokerImpl; -import com.google.common.util.concurrent.ListeningExecutorService; - /** * */ public final class NotificationBrokerImplModule extends org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractNotificationBrokerImplModule { - public NotificationBrokerImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + public NotificationBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, + final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { super(identifier, dependencyResolver); } - public NotificationBrokerImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, - NotificationBrokerImplModule oldModule, java.lang.AutoCloseable oldInstance) { + public NotificationBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, + final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, + final NotificationBrokerImplModule oldModule, final java.lang.AutoCloseable oldInstance) { super(identifier, dependencyResolver, oldModule, oldInstance); } @@ -37,8 +38,21 @@ public final class NotificationBrokerImplModule extends @Override public java.lang.AutoCloseable createInstance() { - ListeningExecutorService listeningExecutor = SingletonHolder.getDefaultNotificationExecutor(); - NotificationBrokerImpl broker = new NotificationBrokerImpl(listeningExecutor); - return broker; + + final NotificationPublishService notificationPublishService = getNotificationPublishAdapterDependency(); + final NotificationService notificationService = getNotificationAdapterDependency(); + + if(notificationPublishService != null & notificationService != null) { + return new HeliumNotificationProviderServiceAdapter(notificationPublishService, notificationService); + } + + /* + * FIXME: Switch to new broker (which has different threading model) + * once this change is communicated with downstream users or + * we will have adapter implementation which will honor Helium + * threading model for notifications. + */ + + return new NotificationBrokerImpl(SingletonHolder.getDefaultNotificationExecutor()); } }