X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fosgi%2FConfigManagerActivator.java;h=b2f7a6dd20e299190ffd51af6422f668d5e8f316;hb=refs%2Fchanges%2F73%2F46573%2F5;hp=38aeb9a792efe18a2fec6a5398cd8e461f637213;hpb=c164056dbd60d7df05285ed098b74e85994071d5;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/ConfigManagerActivator.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/ConfigManagerActivator.java index 38aeb9a792..b2f7a6dd20 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/ConfigManagerActivator.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/ConfigManagerActivator.java @@ -7,8 +7,6 @@ */ package org.opendaylight.controller.config.manager.impl.osgi; -import static org.opendaylight.controller.config.manager.impl.util.OsgiRegistrationUtil.registerService; -import static org.opendaylight.controller.config.manager.impl.util.OsgiRegistrationUtil.wrap; import java.lang.management.ManagementFactory; import java.util.Arrays; import java.util.Collection; @@ -16,6 +14,7 @@ import java.util.List; import javax.management.InstanceAlreadyExistsException; import javax.management.MBeanServer; import org.opendaylight.controller.config.api.ConfigRegistry; +import org.opendaylight.controller.config.api.ConfigSystemService; import org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl; import org.opendaylight.controller.config.manager.impl.jmx.ConfigRegistryJMXRegistrator; import org.opendaylight.controller.config.manager.impl.jmx.JMXNotifierConfigRegistry; @@ -25,7 +24,7 @@ import org.opendaylight.controller.config.manager.impl.osgi.mapping.RefreshingSC import org.opendaylight.controller.config.manager.impl.util.OsgiRegistrationUtil; import org.opendaylight.controller.config.spi.ModuleFactory; import org.opendaylight.yangtools.concepts.ObjectRegistration; -import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy; +import org.opendaylight.yangtools.sal.binding.generator.api.ClassLoadingStrategy; import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.osgi.framework.Bundle; @@ -38,7 +37,7 @@ import org.osgi.util.tracker.ServiceTracker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ConfigManagerActivator implements BundleActivator, SynchronousBundleListener { +public class ConfigManagerActivator implements BundleActivator, SynchronousBundleListener, ConfigSystemService { private static final Logger LOG = LoggerFactory.getLogger(ConfigManagerActivator.class); @@ -53,7 +52,8 @@ public class ConfigManagerActivator implements BundleActivator, SynchronousBundl @Override public void start(final BundleContext context) { try { - ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();// the inner strategy is backed by thread context cl? + // the inner strategy is backed by thread context cl? + ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create(); BindingContextProvider bindingContextProvider = new BindingContextProvider(); @@ -96,8 +96,8 @@ public class ConfigManagerActivator implements BundleActivator, SynchronousBundl new JMXNotifierConfigRegistry(configRegistry, configMBeanServer); // register config registry to OSGi - AutoCloseable clsReg = registerService(context, moduleInfoBackedContext, GeneratedClassLoadingStrategy.class); - AutoCloseable configRegReg = registerService(context, notifyingConfigRegistry, ConfigRegistry.class); + AutoCloseable clsReg = OsgiRegistrationUtil.registerService(context, moduleInfoBackedContext, ClassLoadingStrategy.class); + AutoCloseable configRegReg = OsgiRegistrationUtil.registerService(context, notifyingConfigRegistry, ConfigRegistry.class); // register config registry to jmx ConfigRegistryJMXRegistrator configRegistryJMXRegistrator = new ConfigRegistryJMXRegistrator(configMBeanServer); @@ -123,9 +123,12 @@ public class ConfigManagerActivator implements BundleActivator, SynchronousBundl blankTransactionServiceTracker); serviceTracker.open(); + AutoCloseable configMgrReg = OsgiRegistrationUtil.registerService(context, this, ConfigSystemService.class); + List list = Arrays.asList(bindingContextProvider, clsReg, - wrap(moduleFactoryBundleTracker), moduleInfoBundleTracker, - configRegReg, configRegistryJMXRegistrator, configRegistryJMXRegistratorWithNotifications, wrap(serviceTracker), moduleInfoRegistryWrapper, notifyingConfigRegistry); + OsgiRegistrationUtil.wrap(moduleFactoryBundleTracker), moduleInfoBundleTracker, + configRegReg, configRegistryJMXRegistrator, configRegistryJMXRegistratorWithNotifications, + OsgiRegistrationUtil.wrap(serviceTracker), moduleInfoRegistryWrapper, notifyingConfigRegistry, configMgrReg); autoCloseable = OsgiRegistrationUtil.aggregate(list); context.addBundleListener(this); @@ -157,4 +160,11 @@ public class ConfigManagerActivator implements BundleActivator, SynchronousBundl configRegistry.close(); } } + + @Override + public void closeAllConfigModules() { + if(configRegistry != null) { + configRegistry.close(); + } + } }