From: Maros Marsalek Date: Wed, 6 Nov 2013 11:44:48 +0000 (+0100) Subject: Fix configuration for default modules X-Git-Tag: jenkins-controller-bulk-release-prepare-only-2-1~491 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=refs%2Fchanges%2F34%2F2434%2F3 Fix configuration for default modules Automatically add default modules to jmx, even if they do not use dependencyResolverFactory Change-Id: I4c1129e02ba6243c3209899a3fba05e6b43055cc Signed-off-by: Maros Marsalek --- diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java index ce0ca0312f..343d45a236 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java @@ -224,6 +224,8 @@ class ConfigTransactionControllerImpl implements maybeOldConfigBeanInfo, transactionModuleJMXRegistration); dependencyResolverManager.put(moduleInternalTransactionalInfo); + // ensure default module to be registered to jmx even if its module factory does not use dependencyResolverFactory + dependencyResolverManager.getOrCreate(moduleIdentifier); return writableON; } diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AbstractDynamicWrapper.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AbstractDynamicWrapper.java index b7c15706c5..ba2c1089c2 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AbstractDynamicWrapper.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AbstractDynamicWrapper.java @@ -108,7 +108,7 @@ abstract class AbstractDynamicWrapper implements DynamicMBeanModuleWrapper { } catch (InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException | IllegalStateException e) { throw new IllegalStateException( - "Error occured during mbean registration ", e); + "Error occured during mbean registration with name " + objectNameInternal, e); } NotificationListener listener = new NotificationListener() { diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingBrokerImplSingletonModuleFactory.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingBrokerImplSingletonModuleFactory.java index b4c5f0199f..b0a63108f2 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingBrokerImplSingletonModuleFactory.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingBrokerImplSingletonModuleFactory.java @@ -8,9 +8,6 @@ package org.opendaylight.controller.config.yang.md.sal.binding.impl; -import java.util.Collections; -import java.util.Set; - import org.opendaylight.controller.config.api.DependencyResolver; import org.opendaylight.controller.config.api.DependencyResolverFactory; import org.opendaylight.controller.config.api.DynamicMBeanWithInstance; @@ -18,6 +15,9 @@ import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.spi.Module; import org.osgi.framework.BundleContext; +import java.util.Collections; +import java.util.Set; + /** * */ @@ -25,32 +25,32 @@ public class BindingBrokerImplSingletonModuleFactory extends org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractBindingBrokerImplSingletonModuleFactory { private static final String SINGLETON_NAME = "binding-broker-singleton"; - public static BindingBrokerImplSingletonModule SINGLETON; public static ModuleIdentifier SINGLETON_IDENTIFIER = new ModuleIdentifier(NAME, SINGLETON_NAME); @Override public Module createModule(String instanceName, DependencyResolver dependencyResolver, BundleContext bundleContext) { throw new UnsupportedOperationException("Only default instance supported."); } - + @Override public Module createModule(String instanceName, DependencyResolver dependencyResolver, DynamicMBeanWithInstance old, BundleContext bundleContext) throws Exception { - return SINGLETON; + Module instance = super.createModule(instanceName, dependencyResolver, old, bundleContext); + ((BindingBrokerImplSingletonModule)instance).setBundleContext(bundleContext); + return instance; } @Override public Set getDefaultModules(DependencyResolverFactory dependencyResolverFactory, BundleContext bundleContext) { - if (SINGLETON == null) { - DependencyResolver dependencyResolver = dependencyResolverFactory - .createDependencyResolver(SINGLETON_IDENTIFIER); - SINGLETON = new BindingBrokerImplSingletonModule(SINGLETON_IDENTIFIER, dependencyResolver); - SINGLETON.setBundleContext(bundleContext); - } + DependencyResolver dependencyResolver = dependencyResolverFactory + .createDependencyResolver(SINGLETON_IDENTIFIER); + BindingBrokerImplSingletonModule instance = new BindingBrokerImplSingletonModule(SINGLETON_IDENTIFIER, + dependencyResolver); + instance.setBundleContext(bundleContext); - return Collections.singleton(SINGLETON); + return Collections.singleton(instance); } }