Author: davsclaus
Date: Sat Jul 12 01:42:42 2008
New Revision: 676133

URL: http://svn.apache.org/viewvc?rev=676133&view=rev
Log:
CAMEL-707: Fixed so nodeid is always given. Remved instance counter as its not 
needed anymore, now that nodeid is always created.

Modified:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/MultiInstanceProcessorTest.java

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java?rev=676133&r1=676132&r2=676133&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
 Sat Jul 12 01:42:42 2008
@@ -29,6 +29,9 @@
 import org.apache.camel.model.ProcessorType;
 import org.apache.camel.spi.RouteContext;
 
+/**
+ * Naming strategy used when registering MBeans.
+ */
 public class CamelNamingStrategy {
     public static final String VALUE_UNKNOWN = "unknown";
     public static final String KEY_NAME = "name";
@@ -139,24 +142,22 @@
     /**
      * Implements the naming strategy for a [EMAIL PROTECTED] ProcessorType}.
      * The convention used for a [EMAIL PROTECTED] ProcessorType} ObjectName 
is:
-     * 
<tt>&lt;domain&gt;:context=&lt;context-name&gt;,route=&lt;route-name&gt;,type=processor,name=&lt;processor-name&gt;,nodeid=&lt;node-id&gt;,instance=&lt;instance-id&gt;</tt>
+     * 
<tt>&lt;domain&gt;:context=&lt;context-name&gt;,route=&lt;route-name&gt;,type=processor,name=&lt;processor-name&gt;,nodeid=&lt;node-id&gt;</tt>
      */
-    public ObjectName getObjectName(RouteContext routeContext, 
-            ProcessorType processor, Integer instanceCount) throws 
MalformedObjectNameException {
+    public ObjectName getObjectName(RouteContext routeContext, ProcessorType 
processor)
+        throws MalformedObjectNameException {
         Endpoint<? extends Exchange> ep = routeContext.getEndpoint();
         String ctxid = ep != null ? getContextId(ep.getCamelContext()) : 
VALUE_UNKNOWN;
         String cid = getComponentId(ep);
         String id = VALUE_UNKNOWN.equals(cid) ? getEndpointId(ep) : "[" + cid 
+ "]" + getEndpointId(ep);
+        String nodeId = processor.idOrCreate();
 
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName).append(":");
         buffer.append(KEY_CONTEXT + "=").append(ctxid).append(",");
         buffer.append(KEY_ROUTE + "=").append(id).append(",");
         buffer.append(KEY_TYPE + "=" + TYPE_PROCESSOR + ",");
-        buffer.append(KEY_NODE_ID + "=" + processor.getId() + ",");
-        if (instanceCount != null) {
-            buffer.append(KEY_INSTANCE + "=" + instanceCount + ",");
-        }
+        buffer.append(KEY_NODE_ID + "=").append(id).append(",");
         buffer.append(KEY_NAME + 
"=").append(ObjectName.quote(processor.toString()));
         return createObjectName(buffer);
     }

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java?rev=676133&r1=676132&r2=676133&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/InstrumentationLifecycleStrategy.java
 Sat Jul 12 01:42:42 2008
@@ -170,46 +170,25 @@
         // by InstrumentationInterceptStrategy.
         RouteType route = routeContext.getRoute();
         
-        // build a local map for handlng multiple instances of a processor
-        Map<ObjectName, Integer> existingNames = new HashMap<ObjectName, 
Integer>();
-        Map<ProcessorType, ObjectName> nameMap = new HashMap<ProcessorType, 
ObjectName>();
-        
         for (ProcessorType processor : route.getOutputs()) {
             ObjectName name = null;
             try {
-                name = getNamingStrategy().getObjectName(routeContext, 
processor, null);
+                // get the mbean name
+                name = getNamingStrategy().getObjectName(routeContext, 
processor);
+
+                // register mbean wrapped in the performance counter mbean
+                PerformanceCounter pc = new PerformanceCounter();
+                agent.register(pc, name);
+
+                // add to map now that it has ben registered
+                counterMap.put(processor, pc);
             } catch (MalformedObjectNameException e) {
-                LOG.warn("Could not register MBean: " + name, e);
-            }
-            
-            if (name != null) {
-                Integer instanceCount = existingNames.get(name);
-                if (instanceCount != null) {
-                    instanceCount++;
-                } else {
-                    instanceCount = new Integer(0);
-                    existingNames.put(name, instanceCount);
-                }
-                
-                try {
-                    name = getNamingStrategy().getObjectName(routeContext, 
processor, instanceCount);
-                    nameMap.put(processor, name);
-                } catch (MalformedObjectNameException e) {
-                    LOG.warn("Could not register MBean: " + name, e);
-                }
-            }
-        }
-        
-        for (Map.Entry<ProcessorType, ObjectName> entry : nameMap.entrySet()) {
-            PerformanceCounter pc = new PerformanceCounter();
-            try {
-                agent.register(pc, entry.getValue());
+                LOG.warn("Could not create MBean name: " + name, e);
             } catch (JMException e) {
-                LOG.warn("Could not register PerformanceCounter MBean", e);
+                LOG.warn("Could not register PerformanceCounter MBean: " + 
name, e);
             }
-            counterMap.put(entry.getKey(), pc);
         }
-
+        
         routeContext.addInterceptStrategy(new 
InstrumentationInterceptStrategy(counterMap));
 
         routeContext.setErrorHandlerWrappingStrategy(

Modified: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/MultiInstanceProcessorTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/MultiInstanceProcessorTest.java?rev=676133&r1=676132&r2=676133&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/MultiInstanceProcessorTest.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/MultiInstanceProcessorTest.java
 Sat Jul 12 01:42:42 2008
@@ -79,8 +79,8 @@
         resultEndpoint.assertIsSatisfied();
 
         verifyCounter(mbsc, new ObjectName(domainName + ":type=route,*"));
-        verifyCounter(mbsc, new ObjectName(domainName + 
":type=processor,instance=0,*"));
-        verifyCounter(mbsc, new ObjectName(domainName + 
":type=processor,instance=1,*"));
+        verifyCounter(mbsc, new ObjectName(domainName + 
":type=processor,nodeid=to3,*"));
+        verifyCounter(mbsc, new ObjectName(domainName + 
":type=processor,nodeid=to4,*"));
 
     }
 


Reply via email to