You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2013/12/04 06:02:29 UTC

git commit: CAMEL-7036 Fixed the issue of Camel XSD validation not working with apache xerces

Updated Branches:
  refs/heads/master 1c1d3a883 -> f5dafb149


CAMEL-7036 Fixed the issue of Camel XSD validation not working with apache xerces


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

Branch: refs/heads/master
Commit: f5dafb1495fe307f6a5aeb4a4adbc85d478d77a9
Parents: 1c1d3a8
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed Dec 4 12:51:50 2013 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed Dec 4 12:52:18 2013 +0800

----------------------------------------------------------------------
 .../processor/validation/ValidatingProcessor.java   |  5 ++---
 .../camel/processor/ValidatingProcessorTest.java    | 16 ++++++++++++++++
 2 files changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f5dafb14/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java
index bd9f783..200d0fe 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/validation/ValidatingProcessor.java
@@ -130,13 +130,12 @@ public class ValidatingProcessor implements AsyncProcessor {
                 }
             }
 
+            //CAMEL-7036 We don't need to set the result if the source is an instance of StreamSource
             if (source instanceof DOMSource) {
                 result = new DOMResult();
-            } else if (source instanceof StreamSource) {
-                result = new StreamResult(new StringWriter());
             } else if (source instanceof SAXSource) {
                 result = new SAXResult();
-            } else if (source instanceof StAXSource) {
+            } else if (source instanceof StAXSource || source instanceof StreamSource) {
                 result = null;
             }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/f5dafb14/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java b/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
index 2b2175e..0726e2b 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
@@ -20,6 +20,7 @@ import java.io.File;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.StringSource;
 import org.apache.camel.ValidationException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -56,6 +57,21 @@ public class ValidatingProcessorTest extends ContextTestSupport {
 
         assertMockEndpointsSatisfied();
     }
+    
+    public void testStringSourceMessage() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:valid");
+        mock.expectedMessageCount(1);
+
+        String xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>"
+            + "<user xmlns=\"http://foo.com/bar\">"
+            + "  <id>1</id>"
+            + "  <username>davsclaus</username>"
+            + "</user>";
+
+        template.sendBody("direct:start", new StringSource(xml));
+
+        assertMockEndpointsSatisfied();
+    }
 
     public void testValidMessageTwice() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:valid");