Fix configuration for default modules 34/2434/3
authorMaros Marsalek <mmarsale@cisco.com>
Wed, 6 Nov 2013 11:44:48 +0000 (12:44 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 6 Nov 2013 15:47:02 +0000 (15:47 +0000)
Automatically add default modules to jmx, even if they do not use dependencyResolverFactory

Change-Id: I4c1129e02ba6243c3209899a3fba05e6b43055cc
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java
opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AbstractDynamicWrapper.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingBrokerImplSingletonModuleFactory.java

index ce0ca0312fac45d6f8834ece967b3e7a85bbdfaa..343d45a236e99bd9208ff4846d13c1e0a43bc571 100644 (file)
@@ -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;
     }
 
index b7c15706c5293a367739ba8d57a0836d936e728f..ba2c1089c2bef93bbcacbbc98019c6ab5045043d 100644 (file)
@@ -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() {
index b4c5f0199f30e0e0c58539b6bef80604ef9efad0..b0a63108f22557454f2dd8c0f46db2e984e98228 100644 (file)
@@ -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<BindingBrokerImplSingletonModule> 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);
     }
 
 }