Author: hadrian
Date: Thu Oct  2 00:33:22 2008
New Revision: 701021

URL: http://svn.apache.org/viewvc?rev=701021&view=rev
Log:
CAMEL-865.  Improve mbean naming for jmx.

Removed:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ObjectNameEncoder.java
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ObjectNameEncoderTest.java
Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Route.java
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
    
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/ManagedEndpoint.java
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/PerformanceCounter.java
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/MultiInstanceProcessorTest.java
    
activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/loop.xml
    
activemq/camel/trunk/examples/camel-example-spring/src/test/java/org/apache/camel/example/spring/IntegrationTest.java

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Route.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Route.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Route.java 
(original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Route.java 
Thu Oct  2 00:33:22 2008
@@ -29,6 +29,7 @@
  * @version $Revision$
  */
 public class Route<E extends Exchange> {
+    public static final String ID_PROPERTY = "id";
     public static final String PARENT_PROPERTY = "parent";
     public static final String GROUP_PROPERTY = "group";
 

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java
 Thu Oct  2 00:33:22 2008
@@ -143,6 +143,7 @@
 
             // TODO: hz: move all this into the lifecycle strategy! (used by 
jmx naming strategy)
             Route edcr = new EventDrivenConsumerRoute(getEndpoint(), 
unitOfWorkProcessor);
+            edcr.getProperties().put(Route.ID_PROPERTY, route.idOrCreate());
             edcr.getProperties().put(Route.PARENT_PROPERTY, 
Integer.toHexString(route.hashCode()));
             if (route.getGroup() != null) {
                 edcr.getProperties().put(Route.GROUP_PROPERTY, 
route.getGroup());

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
 Thu Oct  2 00:33:22 2008
@@ -37,8 +37,7 @@
  *
  * @version $Revision$
  */
-public class EventDrivenPollingConsumer<E extends Exchange> extends 
PollingConsumerSupport<E> implements
-    Processor {
+public class EventDrivenPollingConsumer<E extends Exchange> extends 
PollingConsumerSupport<E> implements Processor {
     private static final transient Log LOG = 
LogFactory.getLog(EventDrivenPollingConsumer.class);
     private BlockingQueue<E> queue;
     private ExceptionHandler interuptedExceptionHandler = new 
LoggingExceptionHandler(new Logger(LOG));

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=701021&r1=701020&r2=701021&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
 Thu Oct  2 00:33:22 2008
@@ -38,14 +38,13 @@
     public static final String KEY_TYPE = "type";
     public static final String KEY_CONTEXT = "context";
     public static final String KEY_GROUP = "group";
-    public static final String KEY_COMPONENT = "component";
     public static final String KEY_ROUTE = "route";
+    public static final String KEY_NODE_ID = "nodeid";
     public static final String TYPE_CONTEXT = "context";
     public static final String TYPE_ENDPOINT = "endpoint";
     public static final String TYPE_PROCESSOR = "processor";
     public static final String TYPE_ROUTE = "route";
     public static final String TYPE_SERVICE = "service";
-    public static final String KEY_NODE_ID = "nodeid";
 
     protected String domainName;
     protected String hostName = "locahost";
@@ -78,8 +77,7 @@
         StringBuffer buffer = new StringBuffer();
         buffer.append(domainName).append(":");
         buffer.append(KEY_CONTEXT + 
"=").append(getContextId(context)).append(",");
-        buffer.append(KEY_TYPE + "=" + TYPE_CONTEXT + ",");
-        buffer.append(KEY_NAME + "=").append(getContextId(context));
+        buffer.append(KEY_NAME + "=").append("context");
         return createObjectName(buffer);
     }
 
@@ -95,8 +93,7 @@
         buffer.append(domainName).append(":");
         buffer.append(KEY_CONTEXT + 
"=").append(getContextId(ep.getCamelContext())).append(",");
         buffer.append(KEY_TYPE + "=" + TYPE_ENDPOINT + ",");
-        buffer.append(KEY_COMPONENT + 
"=").append(getComponentId(ep)).append(",");
-        buffer.append(KEY_NAME + "=").append(getEndpointId(ep));
+        buffer.append(KEY_NAME + 
"=").append(ObjectName.quote(getEndpointId(ep)));
         return createObjectName(buffer);
     }
 
@@ -123,18 +120,13 @@
     public ObjectName getObjectName(ManagedRoute mbean) throws 
MalformedObjectNameException {
         Route<? extends Exchange> route = mbean.getRoute();
         Endpoint<? extends Exchange> ep = route.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 id = (String)route.getProperties().get(Route.ID_PROPERTY);
 
         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_CONTEXT + 
"=").append(getContextId(ep.getCamelContext())).append(",");
         buffer.append(KEY_TYPE + "=" + TYPE_ROUTE + ",");
-        buffer.append(KEY_NAME + "=").append(id);
+        buffer.append(KEY_NAME + "=").append(ObjectName.quote(id == null ? 
("0x" + Integer.toHexString(route.hashCode())) : id));
         return createObjectName(buffer);
     }
 
@@ -147,14 +139,14 @@
         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 cid = ObjectName.quote(ep.getEndpointUri());
+        //String id = VALUE_UNKNOWN.equals(cid) ? 
ObjectName.quote(getEndpointId(ep) : "[" + cid + "]" + 
ObjectName.quote(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_ROUTE + "=").append(id).append(",");
         buffer.append(KEY_TYPE + "=" + TYPE_PROCESSOR + ",");
         buffer.append(KEY_NODE_ID + "=").append(nodeId).append(",");
         buffer.append(KEY_NAME + 
"=").append(ObjectName.quote(processor.toString()));
@@ -178,24 +170,15 @@
     }
 
     protected String getContextId(CamelContext context) {
-        String id = context != null ? context.getName() : VALUE_UNKNOWN;
-        return hostName + "/" + id;
-    }
-
-    protected String getComponentId(Endpoint<? extends Exchange> ep) {
-        String uri = ep.getEndpointUri();
-        int pos = uri.indexOf(':');
-        return (pos == -1) ? VALUE_UNKNOWN : uri.substring(0, pos);
+        return hostName + "/" + (context != null ? context.getName() : 
VALUE_UNKNOWN);
     }
 
     protected String getEndpointId(Endpoint<? extends Exchange> ep) {
         String uri = ep.getEndpointUri();
-        int pos = uri.indexOf(':');
-        String id = (pos == -1) ? uri : uri.substring(pos + 1);
-        if (!ep.isSingleton()) {
-            id += "@" + Integer.toString(ep.hashCode());
-        }
-        return ObjectNameEncoder.encode(id);
+        int pos = uri.indexOf('?');
+        String id = (pos == -1) ? uri : uri.substring(0, pos);
+        id += "?id=0x" + Integer.toHexString(ep.hashCode());
+        return id;
     }
 
     /**

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedEndpoint.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedEndpoint.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedEndpoint.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/ManagedEndpoint.java
 Thu Oct  2 00:33:22 2008
@@ -38,4 +38,9 @@
     public String getUri() throws Exception {
         return endpoint.getEndpointUri();
     }
+
+    @ManagedAttribute(description = "Singleton")
+    public boolean getSingleton() throws Exception {
+        return endpoint.isSingleton();
+    }
 }

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/PerformanceCounter.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/PerformanceCounter.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/PerformanceCounter.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/PerformanceCounter.java
 Thu Oct  2 00:33:22 2008
@@ -27,7 +27,7 @@
 public class PerformanceCounter extends Counter {
 
     private AtomicLong numCompleted = new AtomicLong(0L);
-    private double minProcessingTime = -1.0;
+    private double minProcessingTime;
     private double maxProcessingTime;
     private double totalProcessingTime;
     private Date lastExchangeCompletionTime;
@@ -40,7 +40,7 @@
     public synchronized void reset() {
         super.reset();
         numCompleted.set(0L);
-        minProcessingTime = -1.0;
+        minProcessingTime = 0.0;
         maxProcessingTime = 0.0;
         totalProcessingTime = 0.0;
         lastExchangeCompletionTime = null;
@@ -110,7 +110,7 @@
         numCompleted.incrementAndGet();
 
         totalProcessingTime += time;
-        if (minProcessingTime < 0 || time < minProcessingTime) {
+        if (minProcessingTime <= 0 || time < minProcessingTime) {
             minProcessingTime = time;
         }
         if (time > maxProcessingTime) {
@@ -136,5 +136,4 @@
         }
         lastExchangeFailureTime = timestamp;
     }
-    
 }

Modified: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationUsingDefaultsTest.java
 Thu Oct  2 00:33:22 2008
@@ -56,7 +56,7 @@
         assertEquals("Could not find 2 endpoints: " + s, 2, s.size());
 
         s = mbsc.queryNames(
-                new ObjectName(domainName + ":type=context,*"), null);
+                new ObjectName(domainName + ":name=context,*"), null);
         assertEquals("Could not find 1 context: " + s, 1, s.size());
 
         s = mbsc.queryNames(

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=701021&r1=701020&r2=701021&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
 Thu Oct  2 00:33:22 2008
@@ -56,7 +56,7 @@
         assertEquals("Could not find 2 endpoints: " + s, 2, s.size());
 
         s = mbsc.queryNames(
-                new ObjectName(domainName + ":type=context,*"), null);
+                new ObjectName(domainName + ":name=context,*"), null);
         assertEquals("Could not find 1 context: " + s, 1, s.size());
 
         s = mbsc.queryNames(

Modified: 
activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/loop.xml
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/loop.xml?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/loop.xml
 (original)
+++ 
activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/loop.xml
 Thu Oct  2 00:33:22 2008
@@ -51,7 +51,7 @@
         <to uri="mock:result"/>
       </loop>
     </route>
-    <!-- END SNIPPET: ex3 -->    
+    <!-- END SNIPPET: ex3 -->
 
     <!-- START SNIPPET: ex4 -->        
     <route>

Modified: 
activemq/camel/trunk/examples/camel-example-spring/src/test/java/org/apache/camel/example/spring/IntegrationTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/examples/camel-example-spring/src/test/java/org/apache/camel/example/spring/IntegrationTest.java?rev=701021&r1=701020&r2=701021&view=diff
==============================================================================
--- 
activemq/camel/trunk/examples/camel-example-spring/src/test/java/org/apache/camel/example/spring/IntegrationTest.java
 (original)
+++ 
activemq/camel/trunk/examples/camel-example-spring/src/test/java/org/apache/camel/example/spring/IntegrationTest.java
 Thu Oct  2 00:33:22 2008
@@ -26,6 +26,7 @@
 
     public void testCamelRulesDeployCorrectlyInSpring() throws Exception {
         // let's boot up the Spring application context for 2 seconds to check 
that it works OK
+        // System.setProperty("org.apache.camel.jmx.createRmiConnector", 
"true");        
         Main.main("-duration", "2s", "-o", "target/site/cameldoc");
     }
 }


Reply via email to