You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2011/10/06 17:29:26 UTC
svn commit: r1179667 - in
/camel/trunk/camel-core/src/main/java/org/apache/camel:
management/mbean/JMXNotificationTraceEventHandler.java
management/mbean/ManagedTracer.java processor/interceptor/Tracer.java
Author: cschneider
Date: Thu Oct 6 15:29:26 2011
New Revision: 1179667
URL: http://svn.apache.org/viewvc?rev=1179667&view=rev
Log:
CAMEL-4500 Adding configuration options for the tracer
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/JMXNotificationTraceEventHandler.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/JMXNotificationTraceEventHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/JMXNotificationTraceEventHandler.java?rev=1179667&r1=1179666&r2=1179667&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/JMXNotificationTraceEventHandler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/JMXNotificationTraceEventHandler.java Thu Oct 6 15:29:26 2011
@@ -31,13 +31,17 @@ import org.apache.camel.api.management.N
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.processor.interceptor.TraceEventHandler;
import org.apache.camel.processor.interceptor.TraceInterceptor;
+import org.apache.camel.processor.interceptor.Tracer;
import org.apache.camel.util.MessageHelper;
public final class JMXNotificationTraceEventHandler implements TraceEventHandler, NotificationSenderAware {
+ private static final int MAX_MESSAGE_LENGTH = 60;
private long num;
private NotificationSender notificationSender;
+ private Tracer tracer;
- public JMXNotificationTraceEventHandler() {
+ public JMXNotificationTraceEventHandler(Tracer tracer) {
+ this.tracer = tracer;
}
@SuppressWarnings("rawtypes")
@@ -51,13 +55,13 @@ public final class JMXNotificationTraceE
@SuppressWarnings("rawtypes")
public void traceExchange(ProcessorDefinition node, Processor target, TraceInterceptor traceInterceptor, Exchange exchange) throws Exception {
- if (notificationSender != null) {
- String body = MessageHelper.extractBodyForLogging(exchange.getIn(), "", false, true, 10000);
+ if (notificationSender != null && tracer.isJmxTraceNotifications()) {
+ String body = MessageHelper.extractBodyForLogging(exchange.getIn(), "", false, true, tracer.getTraceBodySize());
if (body == null) {
body = "";
}
- String message = body.substring(0, Math.min(body.length(), 60));
+ String message = body.substring(0, Math.min(body.length(), MAX_MESSAGE_LENGTH));
Map tm = createTraceMessage(node, exchange, body);
Notification notification = new Notification("TraceNotification", exchange.toString(), num++, System.currentTimeMillis(), message);
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java?rev=1179667&r1=1179666&r2=1179667&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java Thu Oct 6 15:29:26 2011
@@ -43,7 +43,7 @@ public class ManagedTracer implements No
public ManagedTracer(CamelContext camelContext, Tracer tracer) {
this.camelContext = camelContext;
this.tracer = tracer;
- jmxTraceHandler = new JMXNotificationTraceEventHandler();
+ jmxTraceHandler = new JMXNotificationTraceEventHandler(tracer);
tracer.addTraceHandler(jmxTraceHandler);
}
@@ -419,6 +419,26 @@ public class ManagedTracer implements No
}
tracer.getDefaultTraceFormatter().setMaxChars(maxChars);
}
+
+ @ManagedAttribute(description = "Should trace events be sent as jmx notifications")
+ public boolean isJmxTraceNotifications() {
+ return this.tracer.isJmxTraceNotifications();
+ }
+
+ @ManagedAttribute
+ public void setJmxTraceNotifications(boolean jmxTraceNotifications) {
+ this.tracer.setJmxTraceNotifications(jmxTraceNotifications);
+ }
+
+ @ManagedAttribute(description = "Maximum size of a message body for trace notification")
+ public int getTraceBodySize() {
+ return this.tracer.getTraceBodySize();
+ }
+
+ @ManagedAttribute
+ public void setTraceBodySize(int traceBodySize) {
+ this.tracer.setTraceBodySize(traceBodySize);
+ }
@Override
public void setNotificationSender(NotificationSender sender) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java?rev=1179667&r1=1179666&r2=1179667&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java Thu Oct 6 15:29:26 2011
@@ -56,6 +56,8 @@ public class Tracer implements Intercept
private TraceInterceptorFactory traceInterceptorFactory = new DefaultTraceInterceptorFactory();
private CopyOnWriteArrayList<TraceEventHandler> traceHandlers;
private String jpaTraceEventMessageClassName = JPA_TRACE_EVENT_MESSAGE;
+ private boolean jmxTraceNotifications;
+ private int traceBodySize = 10000;
public Tracer() {
traceHandlers = new CopyOnWriteArrayList<TraceEventHandler>();
@@ -343,6 +345,23 @@ public class Tracer implements Intercept
this.jpaTraceEventMessageClassName = jpaTraceEventMessageClassName;
}
+
+ public boolean isJmxTraceNotifications() {
+ return jmxTraceNotifications;
+ }
+
+ public void setJmxTraceNotifications(boolean jmxTraceNotifications) {
+ this.jmxTraceNotifications = jmxTraceNotifications;
+ }
+
+ public int getTraceBodySize() {
+ return traceBodySize;
+ }
+
+ public void setTraceBodySize(int traceBodySize) {
+ this.traceBodySize = traceBodySize;
+ }
+
@Override
public String toString() {
return "Tracer";