diff --git a/easyrules-core/src/main/java/org/easyrules/core/AbstractRulesEngine.java b/easyrules-core/src/main/java/org/easyrules/core/AbstractRulesEngine.java index 283385d..48b986c 100644 --- a/easyrules-core/src/main/java/org/easyrules/core/AbstractRulesEngine.java +++ b/easyrules-core/src/main/java/org/easyrules/core/AbstractRulesEngine.java @@ -4,6 +4,7 @@ import org.easyrules.api.RulesEngine; import org.easyrules.util.EasyRulesConstants; import javax.management.MBeanServer; +import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import java.lang.management.ManagementFactory; import java.util.Set; @@ -77,7 +78,7 @@ public abstract class AbstractRulesEngine implements RulesEngine { ObjectName name; try { - name = new ObjectName("org.easyrules.core.jmx:type=" + rule.getClass().getSimpleName() + ",name=" + rule.toString()); + name = getObjectName(rule); if (!mBeanServer.isRegistered(name)) { mBeanServer.registerMBean(rule, name); LOGGER.log(Level.INFO, "JMX MBean registered successfully as: {0} for rule: {1}", new Object[]{name.getCanonicalName(), rule.toString()}); @@ -95,7 +96,7 @@ public abstract class AbstractRulesEngine implements RulesEngine { ObjectName name; try { - name = new ObjectName("org.easyrules.core.jmx:type=" + rule.getClass().getSimpleName() + ",name=" + rule.toString()); + name = getObjectName(rule); if (mBeanServer.isRegistered(name)) { mBeanServer.unregisterMBean(name); LOGGER.log(Level.INFO, "JMX MBean unregistered successfully for rule: {0}", new Object[]{rule.toString()}); @@ -106,4 +107,11 @@ public abstract class AbstractRulesEngine implements RulesEngine { } + /* + * Utility method to get rule's JMX Object name + */ + private ObjectName getObjectName(R rule) throws MalformedObjectNameException { + return new ObjectName("org.easyrules.core.jmx:type=" + rule.getClass().getSimpleName() + ",name=" + rule.toString()); + } + }