4 * Generated from: yang module name: opendaylight-sal-binding-broker-impl yang module local name: binding-data-broker
\r
5 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
\r
6 * Generated at: Wed Nov 20 17:33:01 CET 2013
\r
8 * Do not modify this file unless it is present under src/main directory
\r
10 package org.opendaylight.controller.config.yang.md.sal.binding.impl;
\r
12 import java.util.concurrent.ExecutorService;
\r
14 import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder;
\r
15 import org.opendaylight.controller.sal.binding.impl.RootDataBrokerImpl;
\r
16 import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingDomConnectorDeployer;
\r
17 import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentConnector;
\r
18 import org.opendaylight.controller.sal.binding.impl.forward.DomForwardedDataBrokerImpl;
\r
19 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
\r
20 import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
\r
21 import org.osgi.framework.BundleContext;
\r
22 import org.osgi.framework.ServiceReference;
\r
27 public final class DataBrokerImplModule extends
\r
28 org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractDataBrokerImplModule {
\r
30 private BundleContext bundleContext;
\r
32 public DataBrokerImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
\r
33 org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
\r
34 super(identifier, dependencyResolver);
\r
37 public DataBrokerImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
\r
38 org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
\r
39 DataBrokerImplModule oldModule, java.lang.AutoCloseable oldInstance) {
\r
40 super(identifier, dependencyResolver, oldModule, oldInstance);
\r
44 public void validate() {
\r
49 public java.lang.AutoCloseable createInstance() {
\r
50 RootDataBrokerImpl dataBindingBroker;
\r
53 ExecutorService listeningExecutor = SingletonHolder.getDefaultCommitExecutor();
\r
54 BindingIndependentMappingService potentialMapping = resolveMappingServiceDependency();
\r
55 if (getDomBrokerDependency() != null && potentialMapping != null) {
\r
57 dataBindingBroker = createDomConnectedBroker(listeningExecutor,potentialMapping);
\r
59 dataBindingBroker = createStandAloneBroker(listeningExecutor);
\r
61 dataBindingBroker.registerRuntimeBean(getRootRuntimeBeanRegistratorWrapper());
\r
63 return dataBindingBroker;
\r
65 private BindingIndependentMappingService resolveMappingServiceDependency() {
\r
66 if(getMappingService() != null) {
\r
67 return getMappingServiceDependency();
\r
70 ServiceReference<BindingIndependentMappingService> potentialMappingService = bundleContext.getServiceReference(BindingIndependentMappingService.class);
\r
71 if(potentialMappingService != null) {
\r
72 return bundleContext.getService(potentialMappingService);
\r
77 private RootDataBrokerImpl createStandAloneBroker(ExecutorService listeningExecutor) {
\r
78 RootDataBrokerImpl broker = new RootDataBrokerImpl();
\r
79 broker.setExecutor(listeningExecutor);
\r
83 private RootDataBrokerImpl createDomConnectedBroker(ExecutorService listeningExecutor, BindingIndependentMappingService mappingService) {
\r
84 DomForwardedDataBrokerImpl forwardedBroker = new DomForwardedDataBrokerImpl();
\r
85 forwardedBroker.setExecutor(listeningExecutor);
\r
86 BindingIndependentConnector connector = BindingDomConnectorDeployer.createConnector(mappingService);
\r
87 getDomBrokerDependency().registerProvider(forwardedBroker, getBundleContext());
\r
88 ProviderSession domContext = forwardedBroker.getDomProviderContext();
\r
89 forwardedBroker.setConnector(connector);
\r
90 forwardedBroker.setDomProviderContext(domContext);
\r
91 forwardedBroker.startForwarding();
\r
92 return forwardedBroker;
\r
95 public BundleContext getBundleContext() {
\r
96 return bundleContext;
\r
99 public void setBundleContext(BundleContext bundleContext2) {
\r
100 this.bundleContext = bundleContext2;
\r