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%2FConfigTransactionLookupRegistry.java;h=a0138b2d9d8c270c2da2cdf1978874409c8e20c1;hb=493c4f70a0a315d77927e4c0d90a90acbbcb2897;hp=5d1f0b39760b3453a0e1fc9f6b34f0bd15a939d3;hpb=30c43b1714eff95a8b7b601888fdb03da7150216;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionLookupRegistry.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionLookupRegistry.java index 5d1f0b3976..a0138b2d9d 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionLookupRegistry.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionLookupRegistry.java @@ -7,17 +7,21 @@ */ package org.opendaylight.controller.config.manager.impl; +import java.io.Closeable; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.ObjectName; import org.opendaylight.controller.config.api.LookupRegistry; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; import org.opendaylight.controller.config.manager.impl.jmx.TransactionJMXRegistrator; import org.opendaylight.controller.config.manager.impl.jmx.TransactionModuleJMXRegistrator; import org.opendaylight.controller.config.manager.impl.util.LookupBeansUtil; - -import javax.management.InstanceAlreadyExistsException; -import javax.management.InstanceNotFoundException; -import javax.management.ObjectName; -import java.io.Closeable; -import java.util.Set; +import org.opendaylight.controller.config.manager.impl.util.ModuleQNameUtil; +import org.opendaylight.controller.config.spi.ModuleFactory; +import org.osgi.framework.BundleContext; /** * Responsible for creating TransactionJMXRegistrator, registering transaction and all its beans, @@ -27,12 +31,14 @@ class ConfigTransactionLookupRegistry implements LookupRegistry, Closeable { private final TransactionJMXRegistrator transactionJMXRegistrator; private final TransactionIdentifier transactionIdentifier; private final TransactionModuleJMXRegistrator txModuleJMXRegistrator; + private final Map> allCurrentFactories; ConfigTransactionLookupRegistry(TransactionIdentifier transactionIdentifier, - TransactionJMXRegistratorFactory factory) { + TransactionJMXRegistratorFactory factory, Map> allCurrentFactories) { this.transactionIdentifier = transactionIdentifier; this.transactionJMXRegistrator = factory.create(); this.txModuleJMXRegistrator = transactionJMXRegistrator.createTransactionModuleJMXRegistrator(); + this.allCurrentFactories = allCurrentFactories; } private void checkTransactionName(ObjectName objectName) { @@ -104,6 +110,39 @@ class ConfigTransactionLookupRegistry implements LookupRegistry, Closeable { public void registerMBean(ConfigTransactionControllerInternal transactionController, ObjectName controllerObjectName) throws InstanceAlreadyExistsException { transactionJMXRegistrator.registerMBean(transactionController, controllerObjectName); } + + @Override + public Set getAvailableModuleFactoryQNames() { + return ModuleQNameUtil.getQNames(allCurrentFactories); + } + + /** + * {@inheritDoc} + */ + @Override + public Set lookupRuntimeBeans() { + return lookupRuntimeBeans("*", "*"); + } + + /** + * {@inheritDoc} + */ + @Override + public Set lookupRuntimeBeans(String moduleName, + String instanceName) { + String finalModuleName = moduleName == null ? "*" : moduleName; + String finalInstanceName = instanceName == null ? "*" : instanceName; + ObjectName namePattern = ObjectNameUtil.createRuntimeBeanPattern( + finalModuleName, finalInstanceName); + return transactionJMXRegistrator.queryNames(namePattern, null); + } + + @Override + public String toString() { + return "ConfigTransactionLookupRegistry{" + + "transactionIdentifier=" + transactionIdentifier + + '}'; + } } interface TransactionJMXRegistratorFactory {