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 2014/08/30 15:06:53 UTC

[1/6] git commit: CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Repository: camel
Updated Branches:
  refs/heads/camel-2.12.x 2776fd555 -> ad8354c4f
  refs/heads/camel-2.13.x 1c6b76ade -> e3993f929


CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Conflicts:
	camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java


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

Branch: refs/heads/camel-2.13.x
Commit: 6f1d422996db779516f0a180eece4eac0f0c6cc2
Parents: 1c6b76a
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 09:57:24 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 15:04:57 2014 +0200

----------------------------------------------------------------------
 .../org/apache/camel/builder/ValueBuilder.java  | 26 ++++---
 .../camel/component/mock/AssertionClause.java   |  6 ++
 .../camel/issues/MockValueBuilderIssueTest.java | 72 ++++++++++++++++++++
 3 files changed, 94 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6f1d4229/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index 31c4b96..08d9fb3 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -174,17 +174,17 @@ public class ValueBuilder implements Expression, Predicate {
 
     public ValueBuilder tokenize(String token) {
         Expression newExp = ExpressionBuilder.tokenizeExpression(expression, token);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder tokenizeXML(String tagName, String inheritNamespaceTagName) {
         Expression newExp = ExpressionBuilder.tokenizeXMLExpression(tagName, inheritNamespaceTagName);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder tokenizePair(String startToken, String endToken, boolean includeTokens) {
         Expression newExp = ExpressionBuilder.tokenizePairExpression(startToken, endToken, includeTokens);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -193,7 +193,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexTokenize(String regex) {
         Expression newExp = ExpressionBuilder.regexTokenizeExpression(expression, regex);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -202,7 +202,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexReplaceAll(String regex, String replacement) {
         Expression newExp = ExpressionBuilder.regexReplaceAll(expression, regex, replacement);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -211,7 +211,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexReplaceAll(String regex, Expression replacement) {
         Expression newExp = ExpressionBuilder.regexReplaceAll(expression, regex, replacement);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -223,7 +223,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder convertTo(Class<?> type) {
         Expression newExp = ExpressionBuilder.convertToExpression(expression, type);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -242,7 +242,8 @@ public class ValueBuilder implements Expression, Predicate {
      * @return the current builder
      */
     public ValueBuilder append(Object value) {
-        return new ValueBuilder(ExpressionBuilder.append(expression, asExpression(value)));
+        Expression newExp = ExpressionBuilder.append(expression, asExpression(value));
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -252,7 +253,8 @@ public class ValueBuilder implements Expression, Predicate {
      * @return the current builder
      */
     public ValueBuilder prepend(Object value) {
-        return new ValueBuilder(ExpressionBuilder.prepend(expression, asExpression(value)));
+        Expression newExp = ExpressionBuilder.prepend(expression, asExpression(value));
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -264,7 +266,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder sort(Comparator<?> comparator) {
         Expression newExp = ExpressionBuilder.sortExpression(expression, comparator);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -299,4 +301,8 @@ public class ValueBuilder implements Expression, Predicate {
             return ExpressionBuilder.constantExpression(value);
         }
     }
+
+    protected ValueBuilder onNewValueBuilder(Expression exp) {
+        return new ValueBuilder(exp);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/6f1d4229/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java b/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
index 805c3f3..435851c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
@@ -142,10 +142,16 @@ public abstract class AssertionClause extends ExpressionClauseSupport<ValueBuild
             super(expression);
         }
 
+        @Override
         protected Predicate onNewPredicate(Predicate predicate) {
             predicate = super.onNewPredicate(predicate);
             addPredicate(predicate);
             return predicate;
         }
+
+        @Override
+        protected ValueBuilder onNewValueBuilder(Expression exp) {
+            return new PredicateValueBuilder(exp);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/6f1d4229/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
new file mode 100644
index 0000000..920c312
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
@@ -0,0 +1,72 @@
+/**
+ * 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.issues;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+public class MockValueBuilderIssueTest extends ContextTestSupport {
+
+    public void testMockValueBuilder() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("2");
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testMockValueBuilderFail() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("4");
+
+        template.sendBody("direct:start", "Hello World");
+
+        try {
+            assertMockEndpointsSatisfied();
+            fail("Should fail");
+        } catch (Throwable e) {
+            assertEquals("Assertion error at index 0 on mock mock://result with predicate: property(foo) contains 4"
+                    + " evaluated as: 123 contains 4 on Exchange[Message: Hello World]", e.getMessage());
+        }
+    }
+
+    public void testMockValueBuilderNotSatisfied() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("4");
+
+        template.sendBody("direct:start", "Hello World");
+
+        mock.assertIsNotSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .setProperty("foo", constant(123))
+                    .to("mock:result");
+            }
+        };
+    }
+}


[2/6] git commit: CAMEL-7768: Handle fault - Should convert the payload to String using type converter

Posted by da...@apache.org.
CAMEL-7768: Handle fault - Should convert the payload to String using type converter


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

Branch: refs/heads/camel-2.13.x
Commit: c521f5c8ee7df960b1c5a3e9a9fb1c7d8c612f25
Parents: 6f1d422
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 09:58:46 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 15:05:14 2014 +0200

----------------------------------------------------------------------
 .../camel/processor/interceptor/HandleFaultInterceptor.java       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c521f5c8/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
index cc6bbe5..538fe88 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
@@ -65,7 +65,8 @@ public class HandleFaultInterceptor extends DelegateAsyncProcessor {
                     exchange.setException((Throwable) faultBody);
                 } else {
                     // wrap it in an exception
-                    exchange.setException(new CamelException(faultBody.toString()));
+                    String data = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, faultBody);
+                    exchange.setException(new CamelException(data));
                 }
             }
         }


[3/6] git commit: CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Posted by da...@apache.org.
CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo


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

Branch: refs/heads/camel-2.13.x
Commit: e3993f92993e688847f4ab669dfec6b089e4cd03
Parents: c521f5c
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 11:07:57 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 15:05:22 2014 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/util/MessageHelper.java   | 16 +++++++++++++---
 .../camel/issues/TryCatchWithSplitIssueTest.java    |  4 ++--
 .../onexception/OnExceptionHandledTest.java         |  2 +-
 3 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e3993f92/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java b/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
index e2f59ec..0182594 100644
--- a/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
@@ -17,6 +17,7 @@
 package org.apache.camel.util;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Reader;
@@ -235,12 +236,15 @@ public final class MessageHelper {
             }
         }
 
-        // is the body a stream cache
-        StreamCache cache;
+        // is the body a stream cache or input stream
+        StreamCache cache = null;
+        InputStream is = null;
         if (obj instanceof StreamCache) {
             cache = (StreamCache)obj;
-        } else {
+            is = null;
+        } else if (obj instanceof InputStream) {
             cache = null;
+            is = (InputStream) obj;
         }
 
         // grab the message body as a string
@@ -259,6 +263,12 @@ public final class MessageHelper {
         // reset stream cache after use
         if (cache != null) {
             cache.reset();
+        } else if (is != null && is.markSupported()) {
+            try {
+                is.reset();
+            } catch (IOException e) {
+                // ignore
+            }
         }
 
         if (body == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/e3993f92/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
index 3818190..2dd5e3f 100644
--- a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
+++ b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
@@ -31,7 +31,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
 
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedBodiesReceived("Hi Claus", "Hi Willem");
@@ -45,7 +45,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
 
         template.sendBody("direct:start", "James");
 

http://git-wip-us.apache.org/repos/asf/camel/blob/e3993f92/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
index 565b942..3254244 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
@@ -31,7 +31,7 @@ public class OnExceptionHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Hello World");
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isInstanceOf(IllegalArgumentException.class);
-        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("Forced");
+        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("Forced");
 
         template.sendBody("direct:start", "Hello World");
 


[4/6] git commit: CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Posted by da...@apache.org.
CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Conflicts:
	camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java


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

Branch: refs/heads/camel-2.12.x
Commit: c6b189b7de145876fde668310f719000cc40141a
Parents: 2776fd5
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 09:57:24 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 15:06:32 2014 +0200

----------------------------------------------------------------------
 .../org/apache/camel/builder/ValueBuilder.java  | 26 ++++---
 .../camel/component/mock/AssertionClause.java   |  6 ++
 .../camel/issues/MockValueBuilderIssueTest.java | 72 ++++++++++++++++++++
 3 files changed, 94 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c6b189b7/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index 31c4b96..08d9fb3 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -174,17 +174,17 @@ public class ValueBuilder implements Expression, Predicate {
 
     public ValueBuilder tokenize(String token) {
         Expression newExp = ExpressionBuilder.tokenizeExpression(expression, token);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder tokenizeXML(String tagName, String inheritNamespaceTagName) {
         Expression newExp = ExpressionBuilder.tokenizeXMLExpression(tagName, inheritNamespaceTagName);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder tokenizePair(String startToken, String endToken, boolean includeTokens) {
         Expression newExp = ExpressionBuilder.tokenizePairExpression(startToken, endToken, includeTokens);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -193,7 +193,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexTokenize(String regex) {
         Expression newExp = ExpressionBuilder.regexTokenizeExpression(expression, regex);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -202,7 +202,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexReplaceAll(String regex, String replacement) {
         Expression newExp = ExpressionBuilder.regexReplaceAll(expression, regex, replacement);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -211,7 +211,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexReplaceAll(String regex, Expression replacement) {
         Expression newExp = ExpressionBuilder.regexReplaceAll(expression, regex, replacement);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -223,7 +223,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder convertTo(Class<?> type) {
         Expression newExp = ExpressionBuilder.convertToExpression(expression, type);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -242,7 +242,8 @@ public class ValueBuilder implements Expression, Predicate {
      * @return the current builder
      */
     public ValueBuilder append(Object value) {
-        return new ValueBuilder(ExpressionBuilder.append(expression, asExpression(value)));
+        Expression newExp = ExpressionBuilder.append(expression, asExpression(value));
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -252,7 +253,8 @@ public class ValueBuilder implements Expression, Predicate {
      * @return the current builder
      */
     public ValueBuilder prepend(Object value) {
-        return new ValueBuilder(ExpressionBuilder.prepend(expression, asExpression(value)));
+        Expression newExp = ExpressionBuilder.prepend(expression, asExpression(value));
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -264,7 +266,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder sort(Comparator<?> comparator) {
         Expression newExp = ExpressionBuilder.sortExpression(expression, comparator);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -299,4 +301,8 @@ public class ValueBuilder implements Expression, Predicate {
             return ExpressionBuilder.constantExpression(value);
         }
     }
+
+    protected ValueBuilder onNewValueBuilder(Expression exp) {
+        return new ValueBuilder(exp);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/c6b189b7/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java b/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
index 805c3f3..435851c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
@@ -142,10 +142,16 @@ public abstract class AssertionClause extends ExpressionClauseSupport<ValueBuild
             super(expression);
         }
 
+        @Override
         protected Predicate onNewPredicate(Predicate predicate) {
             predicate = super.onNewPredicate(predicate);
             addPredicate(predicate);
             return predicate;
         }
+
+        @Override
+        protected ValueBuilder onNewValueBuilder(Expression exp) {
+            return new PredicateValueBuilder(exp);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/c6b189b7/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
new file mode 100644
index 0000000..920c312
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
@@ -0,0 +1,72 @@
+/**
+ * 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.issues;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+public class MockValueBuilderIssueTest extends ContextTestSupport {
+
+    public void testMockValueBuilder() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("2");
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testMockValueBuilderFail() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("4");
+
+        template.sendBody("direct:start", "Hello World");
+
+        try {
+            assertMockEndpointsSatisfied();
+            fail("Should fail");
+        } catch (Throwable e) {
+            assertEquals("Assertion error at index 0 on mock mock://result with predicate: property(foo) contains 4"
+                    + " evaluated as: 123 contains 4 on Exchange[Message: Hello World]", e.getMessage());
+        }
+    }
+
+    public void testMockValueBuilderNotSatisfied() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("4");
+
+        template.sendBody("direct:start", "Hello World");
+
+        mock.assertIsNotSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .setProperty("foo", constant(123))
+                    .to("mock:result");
+            }
+        };
+    }
+}


[5/6] git commit: CAMEL-7768: Handle fault - Should convert the payload to String using type converter

Posted by da...@apache.org.
CAMEL-7768: Handle fault - Should convert the payload to String using type converter


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

Branch: refs/heads/camel-2.12.x
Commit: ddeddac3990897f2fc83b3cb63490e69c162ad72
Parents: c6b189b
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 09:58:46 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 15:06:37 2014 +0200

----------------------------------------------------------------------
 .../camel/processor/interceptor/HandleFaultInterceptor.java       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ddeddac3/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
index cc6bbe5..538fe88 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
@@ -65,7 +65,8 @@ public class HandleFaultInterceptor extends DelegateAsyncProcessor {
                     exchange.setException((Throwable) faultBody);
                 } else {
                     // wrap it in an exception
-                    exchange.setException(new CamelException(faultBody.toString()));
+                    String data = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, faultBody);
+                    exchange.setException(new CamelException(data));
                 }
             }
         }


[6/6] git commit: CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Posted by da...@apache.org.
CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo


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

Branch: refs/heads/camel-2.12.x
Commit: ad8354c4f82c515595a454e3800993613d8a3db2
Parents: ddeddac
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 11:07:57 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 15:06:41 2014 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/util/MessageHelper.java   | 16 +++++++++++++---
 .../camel/issues/TryCatchWithSplitIssueTest.java    |  4 ++--
 .../onexception/OnExceptionHandledTest.java         |  2 +-
 3 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ad8354c4/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java b/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
index e2f59ec..0182594 100644
--- a/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
@@ -17,6 +17,7 @@
 package org.apache.camel.util;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Reader;
@@ -235,12 +236,15 @@ public final class MessageHelper {
             }
         }
 
-        // is the body a stream cache
-        StreamCache cache;
+        // is the body a stream cache or input stream
+        StreamCache cache = null;
+        InputStream is = null;
         if (obj instanceof StreamCache) {
             cache = (StreamCache)obj;
-        } else {
+            is = null;
+        } else if (obj instanceof InputStream) {
             cache = null;
+            is = (InputStream) obj;
         }
 
         // grab the message body as a string
@@ -259,6 +263,12 @@ public final class MessageHelper {
         // reset stream cache after use
         if (cache != null) {
             cache.reset();
+        } else if (is != null && is.markSupported()) {
+            try {
+                is.reset();
+            } catch (IOException e) {
+                // ignore
+            }
         }
 
         if (body == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/ad8354c4/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
index 3818190..2dd5e3f 100644
--- a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
+++ b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
@@ -31,7 +31,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
 
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedBodiesReceived("Hi Claus", "Hi Willem");
@@ -45,7 +45,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
 
         template.sendBody("direct:start", "James");
 

http://git-wip-us.apache.org/repos/asf/camel/blob/ad8354c4/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
index 565b942..3254244 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
@@ -31,7 +31,7 @@ public class OnExceptionHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Hello World");
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isInstanceOf(IllegalArgumentException.class);
-        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("Forced");
+        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("Forced");
 
         template.sendBody("direct:start", "Hello World");