You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/03/27 10:22:15 UTC
svn commit: r759069 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/component/log/
camel-core/src/main/java/org/apache/camel/processor/interceptor/
camel-core/src/test/java/org/apache/camel/component/log/
components/camel-spring/src/test/r...
Author: davsclaus
Date: Fri Mar 27 09:22:08 2009
New Revision: 759069
URL: http://svn.apache.org/viewvc?rev=759069&view=rev
Log:
CAMEL-1486: Added maxChars option to Log and Trace formatter.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/traceFormatterTest.xml
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java?rev=759069&r1=759068&r2=759069&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java Fri Mar 27 09:22:08 2009
@@ -35,6 +35,7 @@
private boolean showOut;
private boolean showAll;
private boolean multiline;
+ private int maxChars;
public Object format(Exchange exchange) {
Message in = exchange.getIn();
@@ -100,6 +101,26 @@
}
}
+ if (maxChars > 0) {
+ StringBuilder answer = new StringBuilder();
+ for (String s : sb.toString().split("\n")) {
+ if (s != null) {
+ if (s.length() > maxChars) {
+ s = s.substring(0, maxChars);
+ answer.append(s).append("...");
+ } else {
+ answer.append(s);
+ }
+ if (multiline) {
+ answer.append("\n");
+ }
+ }
+ }
+
+ // get rid of the leading space comma if needed
+ return "Exchange[" + (multiline ? answer.append(']').toString() : answer.toString().substring(2) + "]");
+ }
+
// get rid of the leading space comma if needed
return "Exchange[" + (multiline ? sb.append(']').toString() : sb.toString().substring(2) + "]");
}
@@ -164,6 +185,14 @@
return multiline;
}
+ public int getMaxChars() {
+ return maxChars;
+ }
+
+ public void setMaxChars(int maxChars) {
+ this.maxChars = maxChars;
+ }
+
/**
* If enabled then each information is outputted on a newline.
*/
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java?rev=759069&r1=759068&r2=759069&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java Fri Mar 27 09:22:08 2009
@@ -42,6 +42,7 @@
private boolean showOutBody;
private boolean showOutBodyType;
private boolean showException = true;
+ private int maxChars;
public Object format(final TraceInterceptor interceptor, final ProcessorDefinition node, final Exchange exchange) {
Message in = exchange.getIn();
@@ -80,7 +81,15 @@
sb.append(", Exception:").append(exchange.getException());
}
- return sb.toString();
+ if (maxChars > 0) {
+ String s = sb.toString();
+ if (s.length() > maxChars) {
+ s = s.substring(0, maxChars) + "...";
+ }
+ return s;
+ } else {
+ return sb.toString();
+ }
}
public boolean isShowBody() {
@@ -203,6 +212,14 @@
this.nodeLength = nodeLength;
}
+ public int getMaxChars() {
+ return maxChars;
+ }
+
+ public void setMaxChars(int maxChars) {
+ this.maxChars = maxChars;
+ }
+
// Implementation methods
//-------------------------------------------------------------------------
protected Object getBreadCrumbID(Exchange exchange) {
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java?rev=759069&r1=759068&r2=759069&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/LogFormatterTest.java Fri Mar 27 09:22:08 2009
@@ -57,6 +57,17 @@
template.sendBody("log:org.apache.camel.TEST", "Hello World".getBytes());
}
+ public void testSendMessageToLogMaxChars() throws Exception {
+ template.sendBody("log:org.apache.camel.TEST",
+ "Hello World this is a very long string that is NOT going to be chopped by maxchars");
+
+ template.sendBody("log:org.apache.camel.TEST?maxChars=50",
+ "Hello World this is a very long string that is going to be chopped by maxchars");
+
+ template.sendBody("log:org.apache.camel.TEST?maxChars=50&showAll=true&multiline=true",
+ "Hello World this is a very long string that is going to be chopped by maxchars");
+ }
+
public void testSendExchangeWithOut() throws Exception {
Endpoint endpoint = resolveMandatoryEndpoint("log:org.apache.camel.TEST?showAll=true&multiline=true");
Exchange exchange = endpoint.createExchange();
Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/traceFormatterTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/traceFormatterTest.xml?rev=759069&r1=759068&r2=759069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/traceFormatterTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/traceFormatterTest.xml Fri Mar 27 09:22:08 2009
@@ -27,6 +27,7 @@
<property name="showBody" value="true"/>
<property name="showBodyType" value="false"/>
<property name="showBreadCrumb" value="false"/>
+ <property name="maxChars" value="100"/>
</bean>
<camelContext id="camel" trace="true" xmlns="http://camel.apache.org/schema/spring">