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 2016/01/30 17:06:25 UTC

[1/8] camel git commit: CAMEL-9539: toString of Exchange/Message should only output id

Repository: camel
Updated Branches:
  refs/heads/master 25540c2c5 -> 9f66481e0


CAMEL-9539: toString of Exchange/Message should only output id


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/83004f7b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/83004f7b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/83004f7b

Branch: refs/heads/master
Commit: 83004f7b27c9111e8ed6cfb73d42a81ad37feed5
Parents: 385f2cb
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 13:44:40 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:14 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/component/log/LogEndpoint.java |  1 -
 .../camel/impl/LogDebugBodyMaxCharsOffTest.java | 13 ++++++--
 .../camel/impl/LogDebugBodyMaxCharsTest.java    | 17 +++++++---
 .../camel/impl/LogDebugBodyStreamsTest.java     | 33 +++++++++++-------
 .../camel/impl/TraceExchangeFormatter.java      | 35 ++++++++++++++++++++
 5 files changed, 80 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/83004f7b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
index e902a11..69cc6fb 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
@@ -100,7 +100,6 @@ public class LogEndpoint extends ProcessorEndpoint {
             }
             // the logger is the processor
             setProcessor(this.logger);
-            
         }
         ServiceHelper.startService(logger);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/83004f7b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
index 3be6a24..09305d9 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
@@ -26,12 +26,21 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class LogDebugBodyMaxCharsOffTest extends ContextTestSupport {
 
+    private TraceExchangeFormatter myFormatter = new TraceExchangeFormatter();
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         context.getProperties().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "-1");
     }
 
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry jndi = super.createRegistry();
+        jndi.bind("logFormatter", myFormatter);
+        return jndi;
+    }
+
     public void testLogBodyMaxLengthTest() throws Exception {
         // create a big body
         StringBuilder sb = new StringBuilder();
@@ -49,8 +58,8 @@ public class LogDebugBodyMaxCharsOffTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be empty body as toString on the message will return an empty body
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: [Body is not logged]", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: [Body is not logged]]"));
 
         // but body and clipped should not be the same
         assertNotSame("clipped log and real body should not be the same", msg, mock.getReceivedExchanges().get(0).getIn().getBody(String.class));

http://git-wip-us.apache.org/repos/asf/camel/blob/83004f7b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
index 129cb6c..99203e9 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
@@ -26,12 +26,21 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
 
+    private TraceExchangeFormatter myFormatter = new TraceExchangeFormatter();
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         context.getProperties().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "20");
     }
 
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry jndi = super.createRegistry();
+        jndi.bind("logFormatter", myFormatter);
+        return jndi;
+    }
+
     public void testLogBodyMaxLengthTest() throws Exception {
         // create a big body
         StringBuilder sb = new StringBuilder();
@@ -49,8 +58,8 @@ public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be clipped after 20 chars
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: 01234567890123456789... [Body clipped after 20 chars, total length is 1000]", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: 01234567890123456789... [Body clipped after 20 chars, total length is 1000]]"));
 
         // but body and clipped should not be the same
         assertNotSame("clipped log and real body should not be the same", msg, mock.getReceivedExchanges().get(0).getIn().getBody(String.class));
@@ -65,8 +74,8 @@ public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should not be clipped as the message is < 20 chars
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: 1234567890", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: 1234567890]"));
 
         // but body and clipped should not be the same
         assertNotSame("clipped log and real body should not be the same", msg, mock.getReceivedExchanges().get(0).getIn().getBody(String.class));

http://git-wip-us.apache.org/repos/asf/camel/blob/83004f7b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
index 25b0816..cd27fd9 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
@@ -30,6 +30,15 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class LogDebugBodyStreamsTest extends ContextTestSupport {
 
+    private TraceExchangeFormatter myFormatter = new TraceExchangeFormatter();
+
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry jndi = super.createRegistry();
+        jndi.bind("logFormatter", myFormatter);
+        return jndi;
+    }
+
     public void testLogBodyStreamStringSourceDisabled() throws Exception {
         context.getProperties().put(Exchange.LOG_DEBUG_BODY_STREAMS, "false");
 
@@ -43,8 +52,8 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged anyway
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: <?xml version=\"1.0\"?><person><name>Claus</name></person>", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: <?xml version=\"1.0\"?><person><name>Claus</name></person>]"));
     }
 
     public void testLogBodyStreamStringSourceDisabledByDefault() throws Exception {
@@ -60,8 +69,8 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged anyway
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: <?xml version=\"1.0\"?><person><name>Claus</name></person>", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: <?xml version=\"1.0\"?><person><name>Claus</name></person>]"));
     }
 
     public void testLogBodyStreamStringSourceEnabled() throws Exception {
@@ -77,8 +86,8 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged anyway
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: <?xml version=\"1.0\"?><person><name>Claus</name></person>", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: <?xml version=\"1.0\"?><person><name>Claus</name></person>]"));
     }
 
     public void testLogBodyStreamDisabled() throws Exception {
@@ -94,8 +103,8 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should NOT be logged
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: [Body is instance of java.io.InputStream]", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: [Body is instance of java.io.InputStream]]"));
     }
 
     public void testLogBodyStreamDisabledByDefault() throws Exception {
@@ -111,8 +120,8 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should NOT be logged
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertEquals("Message: [Body is instance of java.io.InputStream]", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: [Body is instance of java.io.InputStream]]"));
     }
 
     public void testLogBodyStreamEnabled() throws Exception {
@@ -128,8 +137,8 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged
-        String msg = mock.getReceivedExchanges().get(0).getIn().toString();
-        assertNotSame("Message: [Body is instance of java.io.InputStream]", msg);
+        String msg = myFormatter.getMessage();
+        assertTrue(msg.endsWith("Body: [Body is instance of java.io.InputStream]]"));
         assertIsInstanceOf(InputStream.class, mock.getReceivedExchanges().get(0).getIn().getBody());
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/83004f7b/camel-core/src/test/java/org/apache/camel/impl/TraceExchangeFormatter.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/TraceExchangeFormatter.java b/camel-core/src/test/java/org/apache/camel/impl/TraceExchangeFormatter.java
new file mode 100644
index 0000000..4d4f9c6
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/impl/TraceExchangeFormatter.java
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.impl;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.processor.DefaultExchangeFormatter;
+
+public class TraceExchangeFormatter extends DefaultExchangeFormatter {
+
+    private String message;
+
+    @Override
+    public String format(Exchange exchange) {
+        message = super.format(exchange);
+        return message;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+}


[7/8] camel git commit: CAMEL-9551: ErrorHandler - Should not log message body by default.

Posted by da...@apache.org.
CAMEL-9551: ErrorHandler - Should not log message body by default.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1ac13365
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1ac13365
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1ac13365

Branch: refs/heads/master
Commit: 1ac133653adee33d68de3288ec29f01edd566c83
Parents: f2e9801
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 15:55:37 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:16 2016 +0100

----------------------------------------------------------------------
 .../mbean/ManagedErrorHandlerMBean.java         |  6 +++
 .../builder/DefaultErrorHandlerBuilder.java     |  5 +++
 .../management/mbean/ManagedErrorHandler.java   | 18 ++++++++
 .../camel/model/OnExceptionDefinition.java      | 18 ++++++++
 .../camel/model/RedeliveryPolicyDefinition.java | 37 +++++++++++++++
 .../camel/processor/RedeliveryErrorHandler.java |  4 +-
 .../camel/processor/RedeliveryPolicy.java       | 33 ++++++++++++++
 ...lLogExhaustedMessageHistoryWithBodyTest.java | 47 ++++++++++++++++++++
 8 files changed, 167 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
index d1a276c..45aa08f 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
@@ -131,6 +131,12 @@ public interface ManagedErrorHandlerMBean {
     @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message history")
     void setLogExhaustedMessageHistory(Boolean log);
 
+    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message history")
+    Boolean getLogExhaustedMessageBody();
+
+    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message body")
+    void setLogExhaustedMessageBody(Boolean log);
+
     @ManagedAttribute(description = "RedeliveryPolicy for logging handled and continued exceptions")
     Boolean getLogContinued();
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
index 96a408e..b565bfe 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
@@ -208,6 +208,11 @@ public class DefaultErrorHandlerBuilder extends ErrorHandlerBuilderSupport {
         return this;
     }
     
+    public DefaultErrorHandlerBuilder logExhaustedMessageBody(boolean logExhaustedMessageBody) {
+        getRedeliveryPolicy().setLogExhaustedMessageBody(logExhaustedMessageBody);
+        return this;
+    }
+
     public DefaultErrorHandlerBuilder exchangeFormatterRef(String exchangeFormatterRef) {
         getRedeliveryPolicy().setExchangeFormatterRef(exchangeFormatterRef);
         return this;

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
index e7e0aea..314891f 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
@@ -367,6 +367,24 @@ public class ManagedErrorHandler implements ManagedErrorHandlerMBean {
         redelivery.getRedeliveryPolicy().setLogExhaustedMessageHistory(log);
     }
 
+    public Boolean getLogExhaustedMessageBody() {
+        if (!isSupportRedelivery()) {
+            throw new IllegalArgumentException("This error handler does not support redelivery");
+        }
+
+        RedeliveryErrorHandler redelivery = (RedeliveryErrorHandler) errorHandler;
+        return redelivery.getRedeliveryPolicy().isLogExhaustedMessageBody();
+    }
+
+    public void setLogExhaustedMessageBody(Boolean log) {
+        if (!isSupportRedelivery()) {
+            throw new IllegalArgumentException("This error handler does not support redelivery");
+        }
+
+        RedeliveryErrorHandler redelivery = (RedeliveryErrorHandler) errorHandler;
+        redelivery.getRedeliveryPolicy().setLogExhaustedMessageBody(log);
+    }
+
     public Boolean getLogContinued() {
         if (!isSupportRedelivery()) {
             return null;

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java b/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
index 433601b..9070ae0 100644
--- a/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
@@ -624,6 +624,24 @@ public class OnExceptionDefinition extends ProcessorDefinition<OnExceptionDefini
     }
 
     /**
+     * Sets whether to log exhausted message body with message history.
+     * Requires <tt>logExhaustedMessageHistory</tt> to be enabled.
+     */
+    public OnExceptionDefinition logExhaustedMessageBody(boolean logExhaustedMessageBody) {
+        getOrCreateRedeliveryPolicy().logExhaustedMessageBody(logExhaustedMessageBody);
+        return this;
+    }
+
+    /**
+     * Sets whether to log exhausted message body with message history.
+     * Requires <tt>logExhaustedMessageHistory</tt> to be enabled.
+     */
+    public OnExceptionDefinition logExhaustedMessageBody(String logExhaustedMessageBody) {
+        getOrCreateRedeliveryPolicy().logExhaustedMessageBody(logExhaustedMessageBody);
+        return this;
+    }
+
+    /**
      * Sets the maximum redeliveries
      * <ul>
      * <li>5 = default value</li>

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java b/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
index f695d26..e5975d5 100644
--- a/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
@@ -74,6 +74,8 @@ public class RedeliveryPolicyDefinition {
     @XmlAttribute
     private String logExhaustedMessageHistory;
     @XmlAttribute
+    private String logExhaustedMessageBody;
+    @XmlAttribute
     private String disableRedelivery;
     @XmlAttribute
     private String delayPattern;
@@ -150,6 +152,9 @@ public class RedeliveryPolicyDefinition {
             if (logExhaustedMessageHistory != null) {
                 answer.setLogExhaustedMessageHistory(CamelContextHelper.parseBoolean(context, logExhaustedMessageHistory));
             }
+            if (logExhaustedMessageBody != null) {
+                answer.setLogExhaustedMessageBody(CamelContextHelper.parseBoolean(context, logExhaustedMessageBody));
+            }
             if (disableRedelivery != null) {
                 if (CamelContextHelper.parseBoolean(context, disableRedelivery)) {
                     answer.setMaximumRedeliveries(0);
@@ -496,6 +501,30 @@ public class RedeliveryPolicyDefinition {
     }
 
     /**
+     * Sets whether exhausted message body should be logged including message history or not (supports property placeholders).
+     * Can be used to include or reduce verbose. Requires <tt>logExhaustedMessageHistory</tt> to be enabled.
+     *
+     * @param logExhaustedMessageBody  whether exhausted message body should be logged with message history
+     * @return the builder
+     */
+    public RedeliveryPolicyDefinition logExhaustedMessageBody(boolean logExhaustedMessageBody) {
+        setLogExhaustedMessageBody(Boolean.toString(logExhaustedMessageBody));
+        return this;
+    }
+
+    /**
+     * Sets whether exhausted message body should be logged including message history or not (supports property placeholders).
+     * Can be used to include or reduce verbose. Requires <tt>logExhaustedMessageHistory</tt> to be enabled.
+     *
+     * @param logExhaustedMessageBody  whether exhausted message body should be logged with message history
+     * @return the builder
+     */
+    public RedeliveryPolicyDefinition logExhaustedMessageBody(String logExhaustedMessageBody) {
+        setLogExhaustedMessageBody(logExhaustedMessageBody);
+        return this;
+    }
+
+    /**
      * Sets the maximum redeliveries
      * <ul>
      *   <li>x = redeliver at most x times</li>
@@ -748,6 +777,14 @@ public class RedeliveryPolicyDefinition {
         this.logExhaustedMessageHistory = logExhaustedMessageHistory;
     }
 
+    public String getLogExhaustedMessageBody() {
+        return logExhaustedMessageBody;
+    }
+
+    public void setLogExhaustedMessageBody(String logExhaustedMessageBody) {
+        this.logExhaustedMessageBody = logExhaustedMessageBody;
+    }
+
     public String getDisableRedelivery() {
         return disableRedelivery;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index 04784eb..20026f6 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
@@ -1157,7 +1157,9 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
             String msg = message;
             // should we include message history
             if (!shouldRedeliver && data.currentRedeliveryPolicy.isLogExhaustedMessageHistory()) {
-                String routeStackTrace = MessageHelper.dumpMessageHistoryStacktrace(exchange, exchangeFormatter, e != null && logStackTrace);
+                // only use the exchange formatter if we should log exhausted message body
+                ExchangeFormatter formatter = data.currentRedeliveryPolicy.isLogExhaustedMessageBody() ? exchangeFormatter : null;
+                String routeStackTrace = MessageHelper.dumpMessageHistoryStacktrace(exchange, formatter, e != null && logStackTrace);
                 if (routeStackTrace != null) {
                     msg = msg + "\n" + routeStackTrace;
                 }

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
index 4b33a4b..8b835f2 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
@@ -98,6 +98,7 @@ public class RedeliveryPolicy implements Cloneable, Serializable {
     protected boolean logExhausted = true;
     protected boolean logNewException = true;
     protected Boolean logExhaustedMessageHistory;
+    protected Boolean logExhaustedMessageBody;
     protected boolean logRetryAttempted = true;
     protected String delayPattern;
     protected boolean asyncDelayedRedelivery;
@@ -124,6 +125,7 @@ public class RedeliveryPolicy implements Cloneable, Serializable {
             + ", logExhausted=" + logExhausted
             + ", logNewException=" + logNewException
             + ", logExhaustedMessageHistory=" + logExhaustedMessageHistory
+            + ", logExhaustedMessageBody=" + logExhaustedMessageBody
             + ", useExponentialBackOff="  + useExponentialBackOff
             + ", backOffMultiplier=" + backOffMultiplier
             + ", useCollisionAvoidance=" + useCollisionAvoidance
@@ -405,6 +407,14 @@ public class RedeliveryPolicy implements Cloneable, Serializable {
     }
 
     /**
+     * Sets whether to log exhausted errors including message body (requires message history to be enabled)
+     */
+    public RedeliveryPolicy logExhaustedMessageBody(boolean logExhaustedMessageBody) {
+        setLogExhaustedMessageBody(logExhaustedMessageBody);
+        return this;
+    }
+
+    /**
      * Sets the delay pattern with delay intervals.
      */
     public RedeliveryPolicy delayPattern(String delayPattern) {
@@ -708,6 +718,29 @@ public class RedeliveryPolicy implements Cloneable, Serializable {
         this.logExhaustedMessageHistory = logExhaustedMessageHistory;
     }
 
+    public boolean isLogExhaustedMessageBody() {
+        // should default be disabled
+        return logExhaustedMessageBody != null && logExhaustedMessageBody;
+    }
+
+    /**
+     * Whether the option logExhaustedMessageBody has been configured or not
+     *
+     * @return <tt>null</tt> if not configured, or the configured value as true or false
+     * @see #isLogExhaustedMessageBody()
+     */
+    public Boolean getLogExhaustedMessageBody() {
+        return logExhaustedMessageBody;
+    }
+
+    /**
+     * Sets whether exhausted message body/headers should be logged with message history included
+     * (requires logExhaustedMessageHistory to be enabled).
+     */
+    public void setLogExhaustedMessageBody(Boolean logExhaustedMessageBody) {
+        this.logExhaustedMessageBody = logExhaustedMessageBody;
+    }
+
     public boolean isAsyncDelayedRedelivery() {
         return asyncDelayedRedelivery;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1ac13365/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelLogExhaustedMessageHistoryWithBodyTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelLogExhaustedMessageHistoryWithBodyTest.java b/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelLogExhaustedMessageHistoryWithBodyTest.java
new file mode 100644
index 0000000..13403ec
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelLogExhaustedMessageHistoryWithBodyTest.java
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.processor;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+
+public class DeadLetterChannelLogExhaustedMessageHistoryWithBodyTest extends ContextTestSupport {
+
+    public void testLogExhaustedMessageHistory() throws Exception {
+        getMockEndpoint("mock:dead").expectedMessageCount(1);
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                // no delay to speedup test
+                errorHandler(deadLetterChannel("mock:dead").redeliveryDelay(0).maximumRedeliveries(3)
+                        .logExhaustedMessageHistory(true).logExhaustedMessageBody(true));
+
+                from("direct:start")
+                    .log("Incoming ${body}")
+                    .throwException(new IllegalArgumentException("Forced"));
+            }
+        };
+    }
+}


[6/8] camel git commit: Polished

Posted by da...@apache.org.
Polished


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b91b3c44
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b91b3c44
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b91b3c44

Branch: refs/heads/master
Commit: b91b3c44e14c6722b5cbbf9111cf6df580920d3c
Parents: a210053
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 14:44:38 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:15 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/maven/packaging/ReadmeComponentMojo.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b91b3c44/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
index a6ed564..2b4598d 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
@@ -96,6 +96,7 @@ public class ReadmeComponentMojo extends AbstractMojo {
                     File file = new File(docDir, componentName + ".adoc");
                     ComponentModel model = generateComponentModel(componentName, json);
 
+                    boolean exists = file.exists();
                     boolean updated = false;
                     if (model.getComponentOptions() != null) {
                         String options = templateComponentOptions(model);
@@ -107,9 +108,11 @@ public class ReadmeComponentMojo extends AbstractMojo {
                     }
 
                     if (updated) {
-                        getLog().info("Updated file: " + file);
+                        getLog().info("Updated doc file: " + file);
+                    } else if (exists) {
+                        getLog().info("No changes to doc file: " + file);
                     } else {
-                        getLog().info("No changes to file: " + file);
+                        getLog().info("No component doc file: " + file);
                     }
                 }
             }


[2/8] camel git commit: CAMEL-9539: toString of Exchange/Message should only output id

Posted by da...@apache.org.
CAMEL-9539: toString of Exchange/Message should only output id


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/385f2cbe
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/385f2cbe
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/385f2cbe

Branch: refs/heads/master
Commit: 385f2cbe8e620f1f1801a6f3c633692a7e330c06
Parents: d03d267
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 13:20:02 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:14 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/camel/impl/DefaultExchange.java |  3 ++-
 .../main/java/org/apache/camel/impl/DefaultMessage.java  |  6 ------
 .../main/java/org/apache/camel/impl/MessageSupport.java  |  6 ++++++
 .../camel/management/ManagedBrowsableEndpointTest.java   |  6 ++++--
 .../apache/camel/management/ManagedSedaEndpointTest.java |  5 +++++
 .../processor/MulticastParallelStopOnExceptionTest.java  |  4 +++-
 .../processor/SplitterParallelStopOnExceptionTest.java   |  4 +++-
 .../org/apache/camel/processor/ThroughPutLoggerTest.java |  5 ++---
 .../org/apache/camel/processor/ValidateRegExpTest.java   | 11 +++++++----
 9 files changed, 32 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
index 58aa50b..e1f83f6 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
@@ -80,7 +80,8 @@ public final class DefaultExchange implements Exchange {
 
     @Override
     public String toString() {
-        return String.format("Exchange[%s][%s]", exchangeId == null ? "" : exchangeId, out == null ? in : out);
+        // do not output information about the message as it may contain sensitive information
+        return String.format("Exchange[%s]", exchangeId == null ? "" : exchangeId);
     }
 
     public Exchange copy() {

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
index 24ba1ec..0ed2841 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
@@ -25,7 +25,6 @@ import javax.activation.DataHandler;
 import org.apache.camel.Exchange;
 import org.apache.camel.util.CaseInsensitiveMap;
 import org.apache.camel.util.EndpointHelper;
-import org.apache.camel.util.MessageHelper;
 
 /**
  * The default implementation of {@link org.apache.camel.Message}
@@ -42,11 +41,6 @@ public class DefaultMessage extends MessageSupport {
     private Map<String, Object> headers;
     private Map<String, DataHandler> attachments;
 
-    @Override
-    public String toString() {
-        return MessageHelper.extractBodyForLogging(this);
-    }
-
     public boolean isFault() {
         return fault;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java b/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
index 369196c..029c0bf 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
@@ -36,6 +36,12 @@ public abstract class MessageSupport implements Message {
     private Object body;
     private String messageId;
 
+    @Override
+    public String toString() {
+        // do not output information about the message as it may contain sensitive information
+        return String.format("Message[%s]", messageId == null ? "" : messageId);
+    }
+
     public Object getBody() {
         if (body == null) {
             body = createBody();

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointTest.java
index e14367a..394e4af 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointTest.java
@@ -50,11 +50,13 @@ public class ManagedBrowsableEndpointTest extends ManagementTestSupport {
 
         String out = (String) mbeanServer.invoke(name, "browseExchange", new Object[]{0}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
-        assertTrue(out.contains("Hello World"));
+        // message body is not dumped when browsing exchange
+        assertFalse(out.contains("Hello World"));
 
         out = (String) mbeanServer.invoke(name, "browseExchange", new Object[]{1}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
-        assertTrue(out.contains("Bye World"));
+        // message body is not dumped when browsing exchange
+        assertFalse(out.contains("Bye World"));
 
         out = (String) mbeanServer.invoke(name, "browseMessageBody", new Object[]{1}, new String[]{"java.lang.Integer"});
         assertNotNull(out);

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
index 454b3a2..342c26c 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
@@ -68,6 +68,11 @@ public class ManagedSedaEndpointTest extends ManagementTestSupport {
 
         String out = (String) mbeanServer.invoke(name, "browseExchange", new Object[]{0}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
+        // message body is not dumped when browsing exchange
+        assertFalse(out.contains("Hi World"));
+
+        out = (String) mbeanServer.invoke(name, "browseMessageBody", new Object[]{0}, new String[]{"java.lang.Integer"});
+        assertNotNull(out);
         assertTrue(out.contains("Hi World"));
 
         mbeanServer.invoke(name, "purgeQueue", null, null);

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStopOnExceptionTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStopOnExceptionTest.java b/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStopOnExceptionTest.java
index a07832d..298562e 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStopOnExceptionTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStopOnExceptionTest.java
@@ -68,8 +68,10 @@ public class MulticastParallelStopOnExceptionTest extends ContextTestSupport {
         } catch (CamelExecutionException e) {
             CamelExchangeException cause = assertIsInstanceOf(CamelExchangeException.class, e.getCause());
             assertTrue(cause.getMessage().startsWith("Parallel processing failed for number "));
-            assertTrue(cause.getMessage().contains("[Message: Kaboom]"));
             assertEquals("Forced", cause.getCause().getMessage());
+
+            String body = cause.getExchange().getIn().getBody(String.class);
+            assertTrue(body.contains("Kaboom"));
         }
 
         assertMockEndpointsSatisfied();

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/test/java/org/apache/camel/processor/SplitterParallelStopOnExceptionTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/SplitterParallelStopOnExceptionTest.java b/camel-core/src/test/java/org/apache/camel/processor/SplitterParallelStopOnExceptionTest.java
index 13f4c85..c2eb694 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/SplitterParallelStopOnExceptionTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/SplitterParallelStopOnExceptionTest.java
@@ -65,8 +65,10 @@ public class SplitterParallelStopOnExceptionTest extends ContextTestSupport {
         } catch (CamelExecutionException e) {
             CamelExchangeException cause = assertIsInstanceOf(CamelExchangeException.class, e.getCause());
             assertTrue(cause.getMessage().startsWith("Parallel processing failed for number "));
-            assertTrue(cause.getMessage().contains("[Message: Kaboom]"));
             assertEquals("Forced", cause.getCause().getMessage());
+
+            String body = cause.getExchange().getIn().getBody(String.class);
+            assertTrue(body.contains("Kaboom"));
         }
 
         assertMockEndpointsSatisfied();

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java b/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
index 8b6f667..864a0db 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/ThroughPutLoggerTest.java
@@ -23,7 +23,6 @@ import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.util.CamelLogger;
 import org.easymock.EasyMock;
 import org.slf4j.Logger;
-import org.slf4j.Marker;
 
 public class ThroughPutLoggerTest extends TestCase {
 
@@ -34,9 +33,9 @@ public class ThroughPutLoggerTest extends TestCase {
         Logger logger = EasyMock.createMock(Logger.class);
         logger.isInfoEnabled();
         EasyMock.expectLastCall().andReturn(true).atLeastOnce();
-        logger.info(EasyMock.<Marker>isNull(), EasyMock.startsWith("Received: 10"));
+        logger.info(EasyMock.startsWith("Received: 10"));
         EasyMock.expectLastCall().once();
-        logger.info(EasyMock.<Marker>isNull(), EasyMock.startsWith("Received: 20"));
+        logger.info(EasyMock.startsWith("Received: 20"));
         EasyMock.expectLastCall().once();
         EasyMock.replay(logger);
         ThroughputLogger underTest = new ThroughputLogger(new CamelLogger(logger));

http://git-wip-us.apache.org/repos/asf/camel/blob/385f2cbe/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java b/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java
index 0e0211f..8032c27 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java
@@ -55,11 +55,14 @@ public class ValidateRegExpTest extends ContextTestSupport {
             fail("CamelExecutionException expected");
         } catch (CamelExecutionException e) {
             // expected
-            assertIsInstanceOf(PredicateValidationException.class, e.getCause());
+            PredicateValidationException cause = assertIsInstanceOf(PredicateValidationException.class, e.getCause());
+
             // as the Expression could be different between the DSL and simple language, here we just check part of the message 
-            assertTrue("Get a wrong exception message", e.getCause().getMessage().startsWith("Validation failed for Predicate"));
-            assertTrue(e.getCause().getMessage().contains("^\\d{2}\\.\\d{2}\\.\\d{4}$"));
-            assertTrue("Get a wrong exception message", e.getCause().getMessage().endsWith("[Message: 1.1.2010]"));
+            assertTrue("Get a wrong exception message", cause.getMessage().startsWith("Validation failed for Predicate"));
+            assertTrue(cause.getMessage().contains("^\\d{2}\\.\\d{2}\\.\\d{4}$"));
+
+            String body = cause.getExchange().getIn().getBody(String.class);
+            assertEquals("1.1.2010", body);
         }
 
         assertMockEndpointsSatisfied();


[4/8] camel git commit: CAMEL-9539: toString of Exchange/Message should only output id

Posted by da...@apache.org.
CAMEL-9539: toString of Exchange/Message should only output id


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f2e98017
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f2e98017
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f2e98017

Branch: refs/heads/master
Commit: f2e980175aca1b765c3e757623b5f2fefcbafa8f
Parents: b91b3c4
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 15:26:07 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:15 2016 +0100

----------------------------------------------------------------------
 .../test/scala/org/apache/camel/scala/dsl/SValidateTest.scala    | 4 ----
 1 file changed, 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f2e98017/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
index f52c511..8e88932 100644
--- a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
@@ -43,8 +43,6 @@ class SValidateSimpleTest extends ValidateSimpleTest with RouteBuilderSupport {
         // as the Expression could be different between the DSL and simple language, here we just check part of the message
         assertTrue("Get a wrong exception message",
                    e.getCause.getMessage.startsWith("Validation failed for Predicate[org.apache.camel.scala.ScalaPredicate"))
-        assertTrue("Get a wrong exception message",
-                   e.getCause.getMessage.endsWith("[Message: 1.1.2010]"))
       }
     }
 
@@ -81,8 +79,6 @@ class SValidateRegExpTest extends ValidateRegExpTest with RouteBuilderSupport {
         // as the Expression could be different between the DSL and simple language, here we just check part of the message
         assertTrue("Get a wrong exception message",
                    e.getCause.getMessage.startsWith("Validation failed for Predicate[org.apache.camel.scala.ScalaPredicate"))
-        assertTrue("Get a wrong exception message",
-                   e.getCause.getMessage.endsWith("[Message: 1.1.2010]"))
       }
     }
 


[3/8] camel git commit: CamelLogger should only call log with marker if marker is not null

Posted by da...@apache.org.
CamelLogger should only call log with marker if marker is not null


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d03d2674
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d03d2674
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d03d2674

Branch: refs/heads/master
Commit: d03d2674af3b7f46134673fde5e53b5e4e8256f3
Parents: 25540c2
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 13:11:24 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:14 2016 +0100

----------------------------------------------------------------------
 camel-core/src/main/java/org/apache/camel/util/CamelLogger.java | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d03d2674/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java b/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
index 602e062..a2405e9 100644
--- a/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
+++ b/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
@@ -171,6 +171,7 @@ public class CamelLogger {
     public static void log(Logger log, LoggingLevel level, Marker marker, String message) {
         if (marker == null) {
             log(log, level, message);
+            return;
         }
 
         // marker must be provided
@@ -218,6 +219,7 @@ public class CamelLogger {
     public static void log(Logger log, LoggingLevel level, Marker marker, String message, Throwable th) {
         if (marker == null) {
             log(log, level, message, th);
+            return;
         }
 
         // marker must be provided


[5/8] camel git commit: CAMEL-9539: toString of Exchange/Message should only output id

Posted by da...@apache.org.
CAMEL-9539: toString of Exchange/Message should only output id


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a2100536
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a2100536
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a2100536

Branch: refs/heads/master
Commit: a2100536fc44375437c9d0b4429b8601249c9055
Parents: 83004f7
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 14:39:55 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:15 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/impl/LogDebugBodyMaxCharsOffTest.java    |  5 ++---
 .../org/apache/camel/impl/LogDebugBodyMaxCharsTest.java   |  6 +++---
 .../org/apache/camel/impl/LogDebugBodyStreamsTest.java    | 10 +++++++---
 .../spring/management/SpringManagedSedaEndpointTest.java  |  5 +++++
 .../camel/spring/SpringLogDebugBodyMaxCharsTest.xml       |  2 ++
 5 files changed, 19 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a2100536/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
index 09305d9..fb07f0f 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsOffTest.java
@@ -26,8 +26,6 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class LogDebugBodyMaxCharsOffTest extends ContextTestSupport {
 
-    private TraceExchangeFormatter myFormatter = new TraceExchangeFormatter();
-
     @Override
     protected void setUp() throws Exception {
         super.setUp();
@@ -37,7 +35,7 @@ public class LogDebugBodyMaxCharsOffTest extends ContextTestSupport {
     @Override
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry jndi = super.createRegistry();
-        jndi.bind("logFormatter", myFormatter);
+        jndi.bind("logFormatter", new TraceExchangeFormatter());
         return jndi;
     }
 
@@ -58,6 +56,7 @@ public class LogDebugBodyMaxCharsOffTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be empty body as toString on the message will return an empty body
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: [Body is not logged]]"));
 

http://git-wip-us.apache.org/repos/asf/camel/blob/a2100536/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
index 99203e9..721eb43 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyMaxCharsTest.java
@@ -26,8 +26,6 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
 
-    private TraceExchangeFormatter myFormatter = new TraceExchangeFormatter();
-
     @Override
     protected void setUp() throws Exception {
         super.setUp();
@@ -37,7 +35,7 @@ public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
     @Override
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry jndi = super.createRegistry();
-        jndi.bind("logFormatter", myFormatter);
+        jndi.bind("logFormatter", new TraceExchangeFormatter());
         return jndi;
     }
 
@@ -58,6 +56,7 @@ public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be clipped after 20 chars
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: 01234567890123456789... [Body clipped after 20 chars, total length is 1000]]"));
 
@@ -74,6 +73,7 @@ public class LogDebugBodyMaxCharsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should not be clipped as the message is < 20 chars
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: 1234567890]"));
 

http://git-wip-us.apache.org/repos/asf/camel/blob/a2100536/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
index cd27fd9..cb0493a 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
@@ -30,12 +30,10 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class LogDebugBodyStreamsTest extends ContextTestSupport {
 
-    private TraceExchangeFormatter myFormatter = new TraceExchangeFormatter();
-
     @Override
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry jndi = super.createRegistry();
-        jndi.bind("logFormatter", myFormatter);
+        jndi.bind("logFormatter", new TraceExchangeFormatter());
         return jndi;
     }
 
@@ -52,6 +50,7 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged anyway
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: <?xml version=\"1.0\"?><person><name>Claus</name></person>]"));
     }
@@ -69,6 +68,7 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged anyway
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: <?xml version=\"1.0\"?><person><name>Claus</name></person>]"));
     }
@@ -86,6 +86,7 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged anyway
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: <?xml version=\"1.0\"?><person><name>Claus</name></person>]"));
     }
@@ -103,6 +104,7 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should NOT be logged
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: [Body is instance of java.io.InputStream]]"));
     }
@@ -120,6 +122,7 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should NOT be logged
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: [Body is instance of java.io.InputStream]]"));
     }
@@ -137,6 +140,7 @@ public class LogDebugBodyStreamsTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
 
         // should be logged
+        TraceExchangeFormatter myFormatter = context.getRegistry().lookupByNameAndType("logFormatter", TraceExchangeFormatter.class);
         String msg = myFormatter.getMessage();
         assertTrue(msg.endsWith("Body: [Body is instance of java.io.InputStream]]"));
         assertIsInstanceOf(InputStream.class, mock.getReceivedExchanges().get(0).getIn().getBody());

http://git-wip-us.apache.org/repos/asf/camel/blob/a2100536/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedSedaEndpointTest.java
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedSedaEndpointTest.java b/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedSedaEndpointTest.java
index 017c3fc..8849080 100644
--- a/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedSedaEndpointTest.java
+++ b/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedSedaEndpointTest.java
@@ -71,6 +71,11 @@ public class SpringManagedSedaEndpointTest extends SpringTestSupport {
 
         String out = (String) mbeanServer.invoke(name, "browseExchange", new Object[]{0}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
+        // message body is not dumped when browsing exchange
+        assertFalse(out.contains("Hi World"));
+
+        out = (String) mbeanServer.invoke(name, "browseMessageBody", new Object[]{0}, new String[]{"java.lang.Integer"});
+        assertNotNull(out);
         assertTrue(out.contains("Hi World"));
 
         mbeanServer.invoke(name, "purgeQueue", null, null);

http://git-wip-us.apache.org/repos/asf/camel/blob/a2100536/components/camel-spring/src/test/resources/org/apache/camel/spring/SpringLogDebugBodyMaxCharsTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/test/resources/org/apache/camel/spring/SpringLogDebugBodyMaxCharsTest.xml b/components/camel-spring/src/test/resources/org/apache/camel/spring/SpringLogDebugBodyMaxCharsTest.xml
index 70903e0..deb1487 100644
--- a/components/camel-spring/src/test/resources/org/apache/camel/spring/SpringLogDebugBodyMaxCharsTest.xml
+++ b/components/camel-spring/src/test/resources/org/apache/camel/spring/SpringLogDebugBodyMaxCharsTest.xml
@@ -22,6 +22,8 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
     ">
 
+  <bean id="logFormatter" class="org.apache.camel.impl.TraceExchangeFormatter"/>
+
   <camelContext xmlns="http://camel.apache.org/schema/spring">
       <properties>
           <property key="CamelLogDebugBodyMaxChars" value="20"/>


[8/8] camel git commit: CAMEL-9551: ErrorHandler - Should not log message body by default.

Posted by da...@apache.org.
CAMEL-9551: ErrorHandler - Should not log message body by default.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9f66481e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9f66481e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9f66481e

Branch: refs/heads/master
Commit: 9f66481e0e399f89104141f271478adb0e813063
Parents: 1ac1336
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jan 30 16:31:05 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jan 30 17:06:16 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/processor/RedeliveryErrorHandler.java   | 11 ++++++++---
 .../DefaultErrorHandlerExchangeFormatterRefTest.java     |  4 ----
 2 files changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9f66481e/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index 20026f6..8c9a838 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
@@ -77,6 +77,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
     protected boolean redeliveryEnabled;
     protected volatile boolean preparingShutdown;
     protected final ExchangeFormatter exchangeFormatter;
+    protected final boolean customExchangeFormatter;
     protected final Processor onPrepare;
 
     /**
@@ -226,10 +227,12 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
             ExchangeFormatter formatter = camelContext.getRegistry().lookupByNameAndType(redeliveryPolicy.getExchangeFormatterRef(), ExchangeFormatter.class);
             if (formatter != null) {
                 this.exchangeFormatter = formatter;
+                this.customExchangeFormatter = true;
             } else {
                 throw new IllegalArgumentException("Cannot find the exchangeFormatter by using reference id " + redeliveryPolicy.getExchangeFormatterRef());
             }
         } else {
+            this.customExchangeFormatter = false;
             // setup exchange formatter to be used for message history dump
             DefaultExchangeFormatter formatter = new DefaultExchangeFormatter();
             formatter.setShowExchangeId(true);
@@ -1140,7 +1143,9 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
 
             // should we include message history
             if (!shouldRedeliver && data.currentRedeliveryPolicy.isLogExhaustedMessageHistory()) {
-                String routeStackTrace = MessageHelper.dumpMessageHistoryStacktrace(exchange, exchangeFormatter, false);
+                // only use the exchange formatter if we should log exhausted message body (and if using a custom formatter then always use it)
+                ExchangeFormatter formatter = customExchangeFormatter ? exchangeFormatter : (data.currentRedeliveryPolicy.isLogExhaustedMessageBody() ? exchangeFormatter : null);
+                String routeStackTrace = MessageHelper.dumpMessageHistoryStacktrace(exchange, formatter, false);
                 if (routeStackTrace != null) {
                     msg = msg + "\n" + routeStackTrace;
                 }
@@ -1157,8 +1162,8 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
             String msg = message;
             // should we include message history
             if (!shouldRedeliver && data.currentRedeliveryPolicy.isLogExhaustedMessageHistory()) {
-                // only use the exchange formatter if we should log exhausted message body
-                ExchangeFormatter formatter = data.currentRedeliveryPolicy.isLogExhaustedMessageBody() ? exchangeFormatter : null;
+                // only use the exchange formatter if we should log exhausted message body (and if using a custom formatter then always use it)
+                ExchangeFormatter formatter = customExchangeFormatter ? exchangeFormatter : (data.currentRedeliveryPolicy.isLogExhaustedMessageBody() ? exchangeFormatter : null);
                 String routeStackTrace = MessageHelper.dumpMessageHistoryStacktrace(exchange, formatter, e != null && logStackTrace);
                 if (routeStackTrace != null) {
                     msg = msg + "\n" + routeStackTrace;

http://git-wip-us.apache.org/repos/asf/camel/blob/9f66481e/camel-core/src/test/java/org/apache/camel/processor/onexception/DefaultErrorHandlerExchangeFormatterRefTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/onexception/DefaultErrorHandlerExchangeFormatterRefTest.java b/camel-core/src/test/java/org/apache/camel/processor/onexception/DefaultErrorHandlerExchangeFormatterRefTest.java
index 26074bf..7f8650b 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/onexception/DefaultErrorHandlerExchangeFormatterRefTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/onexception/DefaultErrorHandlerExchangeFormatterRefTest.java
@@ -23,7 +23,6 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.camel.spi.ExchangeFormatter;
 
-
 public class DefaultErrorHandlerExchangeFormatterRefTest extends ContextTestSupport {
 
     private static int invoked;
@@ -50,7 +49,6 @@ public class DefaultErrorHandlerExchangeFormatterRefTest extends ContextTestSupp
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-               
                 errorHandler(defaultErrorHandler().exchangeFormatterRef("myExchangeFormatter"));
 
                 from("direct:start").process(new MyProcessor());
@@ -61,9 +59,7 @@ public class DefaultErrorHandlerExchangeFormatterRefTest extends ContextTestSupp
     public static class MyProcessor implements Processor {
 
         public void process(Exchange exchange) throws Exception {
-
             throw new MyFunctionalException("Sorry you cannot do this");
-
         }
     }