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%2FDataBrokerImplModule.java;h=0ae43365712feaa09e428756d19222d1411f1da8;hb=a84d1bd3fba5d6fb7d9777e1508221e2f773e94f;hp=185b37bab53a2789763979525f9455e73aaee8d3;hpb=67dd6d9e323157551345f89d3c00c8ebad068a11;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/DataBrokerImplModule.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/DataBrokerImplModule.java index 185b37bab5..0ae4336571 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/DataBrokerImplModule.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/DataBrokerImplModule.java @@ -10,25 +10,16 @@ package org.opendaylight.controller.config.yang.md.sal.binding.impl; import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import org.opendaylight.controller.md.sal.common.impl.routing.AbstractDataReadRouter; import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder; -import org.opendaylight.controller.sal.binding.impl.DataBrokerImpl; import org.opendaylight.controller.sal.binding.impl.RootDataBrokerImpl; import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingDomConnectorDeployer; import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentConnector; -import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentMappingService; import org.opendaylight.controller.sal.binding.impl.forward.DomForwardedDataBrokerImpl; -import org.opendaylight.controller.sal.core.api.Broker; import org.opendaylight.controller.sal.core.api.Broker.ProviderSession; -import org.opendaylight.controller.sal.core.api.data.DataProviderService; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; import org.osgi.framework.BundleContext; - -import com.google.common.util.concurrent.MoreExecutors; +import org.osgi.framework.ServiceReference; /** * @@ -57,13 +48,13 @@ public final class DataBrokerImplModule extends @Override public java.lang.AutoCloseable createInstance() { RootDataBrokerImpl dataBindingBroker; - - + + ExecutorService listeningExecutor = SingletonHolder.getDefaultCommitExecutor(); - - if (getDomBrokerDependency() != null && getMappingServiceDependency() != null) { - - dataBindingBroker = createDomConnectedBroker(listeningExecutor); + BindingIndependentMappingService potentialMapping = resolveMappingServiceDependency(); + if (getDomBrokerDependency() != null && potentialMapping != null) { + + dataBindingBroker = createDomConnectedBroker(listeningExecutor,potentialMapping); } else { dataBindingBroker = createStandAloneBroker(listeningExecutor); } @@ -71,16 +62,28 @@ public final class DataBrokerImplModule extends return dataBindingBroker; } + private BindingIndependentMappingService resolveMappingServiceDependency() { + if(getMappingService() != null) { + return getMappingServiceDependency(); + } + + ServiceReference potentialMappingService = bundleContext.getServiceReference(BindingIndependentMappingService.class); + if(potentialMappingService != null) { + return bundleContext.getService(potentialMappingService); + } + return null; + } + private RootDataBrokerImpl createStandAloneBroker(ExecutorService listeningExecutor) { RootDataBrokerImpl broker = new RootDataBrokerImpl(); broker.setExecutor(listeningExecutor); return broker; } - private RootDataBrokerImpl createDomConnectedBroker(ExecutorService listeningExecutor) { + private RootDataBrokerImpl createDomConnectedBroker(ExecutorService listeningExecutor, BindingIndependentMappingService mappingService) { DomForwardedDataBrokerImpl forwardedBroker = new DomForwardedDataBrokerImpl(); forwardedBroker.setExecutor(listeningExecutor); - BindingIndependentConnector connector = BindingDomConnectorDeployer.createConnector(getMappingServiceDependency()); + BindingIndependentConnector connector = BindingDomConnectorDeployer.createConnector(mappingService); getDomBrokerDependency().registerProvider(forwardedBroker, getBundleContext()); ProviderSession domContext = forwardedBroker.getDomProviderContext(); forwardedBroker.setConnector(connector);