Moved MD SAL from sal/yang-prototype to md-sal
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / sal / dom / broker / BrokerImpl.java
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.controller.sal.core.impl;
+package org.opendaylight.controller.sal.dom.broker;
 
 import java.util.Collection;
 import java.util.Collections;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -25,6 +25,7 @@ import org.opendaylight.controller.sal.core.spi.BrokerModule;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -48,21 +49,23 @@ public class BrokerImpl implements Broker {
     // Implementation specific
     private ExecutorService executor;
 
     // Implementation specific
     private ExecutorService executor;
 
+    private BundleContext bundleContext;
+
     @Override
     @Override
-    public ConsumerSession registerConsumer(Consumer consumer) {
+    public ConsumerSession registerConsumer(Consumer consumer,BundleContext ctx) {
         checkPredicates(consumer);
         log.info("Registering consumer " + consumer);
         checkPredicates(consumer);
         log.info("Registering consumer " + consumer);
-        ConsumerSessionImpl session = newSessionFor(consumer);
+        ConsumerSessionImpl session = newSessionFor(consumer,ctx);
         consumer.onSessionInitiated(session);
         sessions.add(session);
         return session;
     }
 
     @Override
         consumer.onSessionInitiated(session);
         sessions.add(session);
         return session;
     }
 
     @Override
-    public ProviderSession registerProvider(Provider provider) {
+    public ProviderSession registerProvider(Provider provider,BundleContext ctx) {
         checkPredicates(provider);
 
         checkPredicates(provider);
 
-        ProviderSessionImpl session = newSessionFor(provider);
+        ProviderSessionImpl session = newSessionFor(provider,ctx);
         provider.onSessionInitiated(session);
         providerSessions.add(session);
         return session;
         provider.onSessionInitiated(session);
         providerSessions.add(session);
         return session;
@@ -153,12 +156,12 @@ public class BrokerImpl implements Broker {
 
     // Private Factory methods
     
 
     // Private Factory methods
     
-    private ConsumerSessionImpl newSessionFor(Consumer cons) {
-        return new ConsumerSessionImpl(cons);
+    private ConsumerSessionImpl newSessionFor(Consumer provider, BundleContext ctx) {
+        return new ConsumerSessionImpl(provider,ctx);
     }
 
     }
 
-    private ProviderSessionImpl newSessionFor(Provider provider) {
-        return new ProviderSessionImpl(provider);
+    private ProviderSessionImpl newSessionFor(Provider provider, BundleContext ctx) {
+        return new ProviderSessionImpl(provider,ctx);
     }
 
     private void consumerSessionClosed(ConsumerSessionImpl consumerSessionImpl) {
     }
 
     private void consumerSessionClosed(ConsumerSessionImpl consumerSessionImpl) {
@@ -187,12 +190,15 @@ public class BrokerImpl implements Broker {
                 .synchronizedMap(new HashMap<Class<? extends BrokerService>, BrokerService>());
         private boolean closed = false;
 
                 .synchronizedMap(new HashMap<Class<? extends BrokerService>, BrokerService>());
         private boolean closed = false;
 
+        private BundleContext context;
+
         public Consumer getConsumer() {
             return consumer;
         }
 
         public Consumer getConsumer() {
             return consumer;
         }
 
-        public ConsumerSessionImpl(Consumer consumer) {
+        public ConsumerSessionImpl(Consumer consumer, BundleContext ctx) {
             this.consumer = consumer;
             this.consumer = consumer;
+            this.context = ctx;
         }
 
         @Override
         }
 
         @Override
@@ -239,8 +245,8 @@ public class BrokerImpl implements Broker {
         private Provider provider;
         private Map<QName, RpcImplementation> sessionRpcImpls = Collections.synchronizedMap(new HashMap<QName, RpcImplementation>());
 
         private Provider provider;
         private Map<QName, RpcImplementation> sessionRpcImpls = Collections.synchronizedMap(new HashMap<QName, RpcImplementation>());
 
-        public ProviderSessionImpl(Provider provider) {
-            super(null);
+        public ProviderSessionImpl(Provider provider, BundleContext ctx) {
+            super(null,ctx);
             this.provider = provider;
         }
 
             this.provider = provider;
         }
 
@@ -277,4 +283,8 @@ public class BrokerImpl implements Broker {
         }
 
     }
         }
 
     }
+
+    public void setBundleContext(BundleContext context) {
+        this.bundleContext = context;
+    }
 }
 }