You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/02/06 09:39:55 UTC

svn commit: r375222 - in /incubator/servicemix/trunk: servicemix-common/src/main/java/org/apache/servicemix/common/ servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ servicemix-core/src/main/java/org/apache/servicemix/jbi/management/

Author: gnodet
Date: Mon Feb  6 00:39:54 2006
New Revision: 375222

URL: http://svn.apache.org/viewcvs?rev=375222&view=rev
Log:
Change mbeans name generation to keep properties order and add a sub-type for mbeans related to components.
Display in jconsole is much nicer now.

Modified:
    incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/LocalComponentConnector.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java

Modified: incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java (original)
+++ incubator/servicemix/trunk/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java Mon Feb  6 00:39:54 2006
@@ -84,7 +84,7 @@
     }
     
     protected ObjectName createExtensionMBeanName() throws Exception {
-        return this.context.getMBeanNames().createCustomComponentMBeanName("extension");
+        return this.context.getMBeanNames().createCustomComponentMBeanName("Configuration");
     }
 
     /* (non-Javadoc)

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java Mon Feb  6 00:39:54 2006
@@ -219,7 +219,7 @@
      * @return the JMX ObjectName of the MBean, or <code>null</code> if <code>customName</code> is invalid.
      */
     public ObjectName createCustomComponentMBeanName(String customName) {
-        return container.getManagementContext().createCustomComponentMBeanName(componentName.getName(), customName);
+        return container.getManagementContext().createCustomComponentMBeanName(customName, componentName.getName());
     }
 
     /**

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java Mon Feb  6 00:39:54 2006
@@ -74,6 +74,10 @@
         return "Component";
     }
     
+    public String getSubType() {
+        return "LifeCycle";
+    }
+    
    /**
      * Get the Description of the item
      * @return the description

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java Mon Feb  6 00:39:54 2006
@@ -53,7 +53,19 @@
      * @return the type
      */
     public String getType() {
-        return "ComponentStats";
+        return "Component";
+    }
+    
+    public String getSubType() {
+        return "Statistics";
+    }
+    
+    /**
+     * Get the name of the item
+     * @return the name
+     */
+    public String getName(){
+        return connector.getComponentNameSpace().getName();
     }
     
    /**

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/LocalComponentConnector.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/LocalComponentConnector.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/LocalComponentConnector.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/LocalComponentConnector.java Mon Feb  6 00:39:54 2006
@@ -17,7 +17,6 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Hashtable;
 import java.util.Properties;
 import java.util.Set;
 
@@ -94,13 +93,11 @@
      */
     public ObjectName registerMBeans(ManagementContext context) throws JBIException{
         try{
-            ObjectName result=context.createObjectName(componentMBean);
-            context.registerMBean(result,componentMBean,ComponentMBean.class);
+            ObjectName result = context.createObjectName(componentMBean);
+            context.registerMBean(result, componentMBean, ComponentMBean.class);
             componentMBean.setObjectName(result);
-            Hashtable props = context.createObjectNameProps(componentStatsMBean);
-            props.put("stats","true");
-            ObjectName objName=context.createObjectName(props);
-            context.registerMBean(objName,componentStatsMBean,ComponentStatsMBean.class);
+            ObjectName objName = context.createObjectName(componentStatsMBean);
+            context.registerMBean(objName, componentStatsMBean, ComponentStatsMBean.class);
             componentStatsMBean.setObjectName(objName);
             return result;
         }catch(Exception e){

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java Mon Feb  6 00:39:54 2006
@@ -60,6 +60,10 @@
         return name;
     }
     
+    public String getSubType() {
+        return null;
+    }
+    
     /**
      * set state to initialized
      * @throws JBIException 

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java Mon Feb  6 00:39:54 2006
@@ -62,6 +62,12 @@
     public String getType();
     
     /**
+     * Get the type of this mbean
+     * @return the type
+     */
+    public String getSubType();
+    
+    /**
      * Get the Description of the item
      * @return the description
      */

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java?rev=375222&r1=375221&r2=375222&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/ManagementContext.java Mon Feb  6 00:39:54 2006
@@ -17,8 +17,8 @@
 
 import java.io.IOException;
 import java.util.Collection;
-import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Map;
 import javax.jbi.JBIException;
 import javax.management.JMException;
@@ -338,7 +338,12 @@
      * @return the JMX ObjectName of the MBean, or <code>null</code> if <code>customName</code> is invalid.
      */
     public ObjectName createCustomComponentMBeanName(String type, String name) {
-        return mbeanServerContext.createCustomComponentMBeanName(type, name);
+        Map result = new LinkedHashMap();
+        result.put("container", container.getName());
+        result.put("type", "Component");
+        result.put("name", sanitizeString(name));
+        result.put("subtype", sanitizeString(type));
+        return createObjectName(result);
     }
 
     
@@ -349,18 +354,8 @@
      * @return the ObjectName
      */
     public ObjectName createObjectName(MBeanInfoProvider provider) {
-        ObjectName result = null;
-        try {
-            Hashtable tmp = createObjectNameProps(provider);
-            result = new ObjectName(getJmxDomainName(),tmp);
-        }
-        catch (MalformedObjectNameException e) {
-            // shouldn't happen
-            String error = "Could not create ObjectName for " + provider.getClass() + ", " + provider.getName();
-            log.error(error, e);
-            throw new RuntimeException(error);
-        }
-        return result;
+        Map props = createObjectNameProps(provider);
+        return createObjectName(props);
     }
     
     /**
@@ -389,10 +384,20 @@
      * 
      * @return the ObjectName
      */
-    public ObjectName createObjectName(String domain,Hashtable props) {
+    public ObjectName createObjectName(String domain, Map props) {
+        StringBuffer sb = new StringBuffer();
+        sb.append(domain).append(':');
+        int i = 0;
+        for (Iterator it = props.entrySet().iterator(); it.hasNext();) {
+            Map.Entry entry = (Map.Entry) it.next();
+            if (i++ > 0) {
+                sb.append(",");
+            }
+            sb.append(entry.getKey()).append("=").append(entry.getValue());
+        }
         ObjectName result = null;
         try {
-            result = new ObjectName(domain,props);
+            result = new ObjectName(sb.toString());
         }
         catch (MalformedObjectNameException e) {
             // shouldn't happen
@@ -409,30 +414,24 @@
      * 
      * @return the ObjectName
      */
-    public ObjectName createObjectName(Hashtable props) {
-        ObjectName result = null;
-        try {
-            result = new ObjectName(getJmxDomainName(),props);
-        }
-        catch (MalformedObjectNameException e) {
-            // shouldn't happen
-            String error = "Could not create ObjectName for " + props;
-            log.error(error, e);
-            throw new RuntimeException(error);
-        }
-        return result;
+    public ObjectName createObjectName(Map props) {
+        return createObjectName(getJmxDomainName(), props);
     }
+    
     /**
      * Create a String used to create an ObjectName
      * 
      * @param provider
      * @return the ObjectName
      */
-    public Hashtable createObjectNameProps(MBeanInfoProvider provider){
-        Hashtable result = new Hashtable();
-        result.put("container",container.getName());
-        result.put("type",sanitizeString(provider.getType()));
-        result.put("name",sanitizeString(provider.getName()));
+    public Map createObjectNameProps(MBeanInfoProvider provider){
+        Map result = new LinkedHashMap();
+        result.put("container", container.getName());
+        result.put("type", sanitizeString(provider.getType()));
+        result.put("name", sanitizeString(provider.getName()));
+        if (provider.getSubType() != null) {
+            result.put("subtype", sanitizeString(provider.getSubType()));
+        }
         return result;
     }