Fixes - config-registry registered to OSGi, used modules's factory bundle context...
[controller.git] / opendaylight / config / config-manager / src / main / java / org / opendaylight / controller / config / manager / impl / osgi / ConfigManagerActivator.java
index f567f1b31e134be26e6b21124d9ba66ae9f1ce17..ab81143170b91d3c4565049539b16bc410469abe 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.controller.config.manager.impl.jmx.ConfigRegistryJMXRegi
 import org.opendaylight.controller.config.spi.ModuleFactory;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.util.tracker.ServiceTracker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,6 +28,7 @@ public class ConfigManagerActivator implements BundleActivator {
     private ExtenderBundleTracker extenderBundleTracker;
     private ConfigRegistryImpl configRegistry;
     private ConfigRegistryJMXRegistrator configRegistryJMXRegistrator;
+    private ServiceRegistration configRegistryServiceRegistration;
 
     @Override
     public void start(BundleContext context) throws Exception {
@@ -37,6 +39,9 @@ public class ConfigManagerActivator implements BundleActivator {
                 bundleContextBackedModuleFactoriesResolver, context,
                 configMBeanServer);
 
+        // register config registry to OSGi
+        configRegistryServiceRegistration = context.registerService(ConfigRegistryImpl.class, configRegistry, null);
+
         // register config registry to jmx
         configRegistryJMXRegistrator = new ConfigRegistryJMXRegistrator(configMBeanServer);
         configRegistryJMXRegistrator.registerToJMX(configRegistry);
@@ -69,5 +74,10 @@ public class ConfigManagerActivator implements BundleActivator {
                     "Exception while closing config registry jmx registrator",
                     e);
         }
+        try {
+            configRegistryServiceRegistration.unregister();
+        } catch (Exception e) {
+            logger.warn("Exception while unregistering config registry", e);
+        }
     }
 }