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");
}
}