X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fapi%2Fjmx%2FObjectNameUtil.java;h=abb9f1ae9bf4d448c78bc795a74f0076b68de745;hb=54916d10764a5234881040e9a68ae35d63b3dac9;hp=3baa1039e0bd1c868c28b6d8d5f7ea35c8da3dc7;hpb=81282cf3711693da7dde667c6bbf18cb40e81ad0;p=controller.git diff --git a/opendaylight/config/config-api/src/main/java/org/opendaylight/controller/config/api/jmx/ObjectNameUtil.java b/opendaylight/config/config-api/src/main/java/org/opendaylight/controller/config/api/jmx/ObjectNameUtil.java index 3baa1039e0..abb9f1ae9b 100644 --- a/opendaylight/config/config-api/src/main/java/org/opendaylight/controller/config/api/jmx/ObjectNameUtil.java +++ b/opendaylight/config/config-api/src/main/java/org/opendaylight/controller/config/api/jmx/ObjectNameUtil.java @@ -11,6 +11,7 @@ import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.api.jmx.constants.ConfigRegistryConstants; import javax.annotation.concurrent.ThreadSafe; +import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import java.util.Arrays; import java.util.HashMap; @@ -34,7 +35,6 @@ public class ObjectNameUtil { public static final String SERVICE_QNAME_KEY = "serviceQName"; public static final String INSTANCE_NAME_KEY = "instanceName"; public static final String TYPE_KEY = ConfigRegistryConstants.TYPE_KEY; - public static final String TYPE_CONFIG_REGISTRY = ConfigRegistryConstants.TYPE_CONFIG_REGISTRY; public static final String TYPE_CONFIG_TRANSACTION = "ConfigTransaction"; public static final String TYPE_MODULE = "Module"; public static final String TYPE_SERVICE_REFERENCE = "ServiceReference"; @@ -42,12 +42,13 @@ public class ObjectNameUtil { public static final String TRANSACTION_NAME_KEY = "TransactionName"; public static final String REF_NAME_KEY = "RefName"; private static final String REPLACED_QUOTATION_MARK = "\\?"; + public static final String ON_WILDCARD = "*"; public static ObjectName createON(String on) { try { return new ObjectName(on); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (MalformedObjectNameException e) { + throw new IllegalArgumentException(e); } } @@ -63,8 +64,8 @@ public class ObjectNameUtil { Hashtable table = new Hashtable<>(attribs); try { return new ObjectName(domain, table); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (MalformedObjectNameException e) { + throw new IllegalArgumentException(e); } } @@ -116,8 +117,7 @@ public class ObjectNameUtil { public static String getServiceQName(ObjectName objectName) { checkType(objectName, TYPE_SERVICE_REFERENCE); String quoted = objectName.getKeyProperty(SERVICE_QNAME_KEY); - String result = unquoteAndUnescape(objectName, quoted); - return result; + return unquoteAndUnescape(objectName, quoted); } // ObjectName supports quotation and ignores tokens like =, but fails to ignore ? sign. @@ -292,8 +292,8 @@ public class ObjectNameUtil { } } - public static void checkTypeOneOf(ObjectName objectName, String ... types) { - for(String type: types) { + public static void checkTypeOneOf(ObjectName objectName, String... types) { + for (String type : types) { if (type.equals(objectName.getKeyProperty(TYPE_KEY))) { return; } @@ -304,10 +304,9 @@ public class ObjectNameUtil { public static ObjectName createModulePattern(String moduleName, String instanceName) { - if (moduleName == null) - moduleName = "*"; - if (instanceName == null) - instanceName = "*"; + moduleName = moduleName == null ? ON_WILDCARD : moduleName; + instanceName = instanceName == null ? ON_WILDCARD : instanceName; + // do not return object names containing transaction name ObjectName namePattern = ObjectNameUtil .createON(ObjectNameUtil.ON_DOMAIN + ":" @@ -321,6 +320,10 @@ public class ObjectNameUtil { public static ObjectName createModulePattern(String ifcName, String instanceName, String transactionName) { + ifcName = ifcName == null ? ON_WILDCARD : ifcName; + instanceName = instanceName == null ? ON_WILDCARD : instanceName; + transactionName = transactionName == null ? ON_WILDCARD : transactionName; + return ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + ifcName + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" @@ -330,6 +333,9 @@ public class ObjectNameUtil { public static ObjectName createRuntimeBeanPattern(String moduleName, String instanceName) { + moduleName = moduleName == null ? ON_WILDCARD : moduleName; + instanceName = instanceName == null ? ON_WILDCARD : instanceName; + return ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":" + ObjectNameUtil.TYPE_KEY + "=" + ObjectNameUtil.TYPE_RUNTIME_BEAN + "," @@ -343,13 +349,15 @@ public class ObjectNameUtil { String expectedType) { checkType(objectName, expectedType); String factoryName = getFactoryName(objectName); - if (factoryName == null) + if (factoryName == null) { throw new IllegalArgumentException( "ObjectName does not contain module name"); + } String instanceName = getInstanceName(objectName); - if (instanceName == null) + if (instanceName == null) { throw new IllegalArgumentException( "ObjectName does not contain instance name"); + } return new ModuleIdentifier(factoryName, instanceName); }