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/300ecab4 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/300ecab4 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/300ecab4 Branch: refs/heads/camel-2.11.x Commit: 300ecab4fa18c8988335a393eeb0b2302ff6f1c9 Parents: c685694 Author: Willem Jiang <willem.ji...@gmail.com> Authored: Wed Dec 4 12:51:50 2013 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Wed Dec 4 13:03:37 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/300ecab4/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 6c325d9..ee15fb4 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 @@ -113,13 +113,12 @@ public class ValidatingProcessor implements Processor { } } + //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/300ecab4/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");