X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fapi%2Fjmx%2FObjectNameUtil.java;h=0c7478dca0f1008955bcc03c60cd17d3bb309287;hp=d60e6086176daebd69f58a795ccadd4f24eca4de;hb=89a8b2bb54f83c0bc20d861c6a9dc73c437e121a;hpb=c0c97bdca0c42607e8034bc91f51edf96d9e72a9 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 d60e608617..0c7478dca0 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 @@ -7,12 +7,6 @@ */ package org.opendaylight.controller.config.api.jmx; -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; import java.util.HashSet; @@ -20,6 +14,11 @@ import java.util.Hashtable; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import javax.annotation.concurrent.ThreadSafe; +import javax.management.MalformedObjectNameException; +import javax.management.ObjectName; +import org.opendaylight.controller.config.api.ModuleIdentifier; +import org.opendaylight.controller.config.api.jmx.constants.ConfigRegistryConstants; /** * Provides ObjectName creation. Each created ObjectName consists of domain that @@ -29,13 +28,14 @@ import java.util.Set; */ @ThreadSafe public class ObjectNameUtil { + private ObjectNameUtil() { + } public static final String ON_DOMAIN = ConfigRegistryConstants.ON_DOMAIN; public static final String MODULE_FACTORY_NAME_KEY = "moduleFactoryName"; 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"; @@ -43,6 +43,7 @@ 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 { @@ -127,7 +128,7 @@ public class ObjectNameUtil { if (quoted == null) { throw new IllegalArgumentException("Cannot find " + SERVICE_QNAME_KEY + " in " + objectName); } - if (quoted.startsWith("\"") == false || quoted.endsWith("\"") == false) { + if (!quoted.startsWith("\"") || !quoted.endsWith("\"")) { throw new IllegalArgumentException("Quotes not found in " + objectName); } String substring = quoted.substring(1); @@ -200,7 +201,7 @@ public class ObjectNameUtil { throw new IllegalArgumentException( "Expected ObjectName with transaction:" + inputON); } - if (ON_DOMAIN.equals(inputON.getDomain()) == false) { + if (!ON_DOMAIN.equals(inputON.getDomain())) { throw new IllegalArgumentException("Expected different domain: " + inputON); } @@ -262,7 +263,7 @@ public class ObjectNameUtil { Map allProperties = getAdditionalProperties(on); Map result = new HashMap<>(); for (Entry entry : allProperties.entrySet()) { - if (blacklist.contains(entry.getKey()) == false) { + if (!blacklist.contains(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } @@ -270,7 +271,7 @@ public class ObjectNameUtil { } public static Map getAdditionalProperties(ObjectName on) { - Hashtable keyPropertyList = on.getKeyPropertyList(); + Map keyPropertyList = on.getKeyPropertyList(); Map result = new HashMap<>(); for (Entry entry : keyPropertyList.entrySet()) { result.put(entry.getKey(), entry.getValue()); @@ -304,39 +305,43 @@ public class ObjectNameUtil { public static ObjectName createModulePattern(String moduleName, String instanceName) { - if (moduleName == null) { - moduleName = "*"; - } - if (instanceName == null) { - instanceName = "*"; - } + String finalModuleName = moduleName == null ? ON_WILDCARD : moduleName; + String finalInstanceName = instanceName == null ? ON_WILDCARD : instanceName; + // do not return object names containing transaction name ObjectName namePattern = ObjectNameUtil .createON(ObjectNameUtil.ON_DOMAIN + ":" + ObjectNameUtil.TYPE_KEY + "=" + ObjectNameUtil.TYPE_MODULE + "," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" - + moduleName + "," + "" - + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + instanceName); + + finalModuleName + "," + "" + + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + finalInstanceName); return namePattern; } public static ObjectName createModulePattern(String ifcName, String instanceName, String transactionName) { + String finalIfcName = ifcName == null ? ON_WILDCARD : ifcName; + String finalInstanceName = instanceName == null ? ON_WILDCARD : instanceName; + String finalTransactionName = transactionName == null ? ON_WILDCARD : transactionName; + return ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY - + "=" + ifcName + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" - + instanceName + "," + ObjectNameUtil.TRANSACTION_NAME_KEY - + "=" + transactionName); + + "=" + finalIfcName + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + + finalInstanceName + "," + ObjectNameUtil.TRANSACTION_NAME_KEY + + "=" + finalTransactionName); } public static ObjectName createRuntimeBeanPattern(String moduleName, String instanceName) { + String finalModuleName = moduleName == null ? ON_WILDCARD : moduleName; + String finalInstanceName = instanceName == null ? ON_WILDCARD : instanceName; + return ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":" + ObjectNameUtil.TYPE_KEY + "=" + ObjectNameUtil.TYPE_RUNTIME_BEAN + "," - + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName - + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + instanceName + + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + finalModuleName + + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + finalInstanceName + ",*"); }