You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2019/05/27 13:25:18 UTC

[camel] 02/02: [CAMEL-13371] Isolate more xml stuff in camel-jaxp

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit f15cad8e430510e00b4e8f57664eab56c756317f
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed May 22 20:41:00 2019 +0200

    [CAMEL-13371] Isolate more xml stuff in camel-jaxp
---
 .../component/cxf/converter/CachedCxfPayload.java  |  2 +-
 components/camel-jclouds/pom.xml                   |  5 ++
 .../component/jclouds/JcloudsPayloadConverter.java |  2 +-
 .../jclouds/JcloudsBlobStoreProducerTest.java      |  4 +-
 .../camel/component/jms/JmsXMLRouteTest.java       |  2 +-
 .../component/restlet/DefaultRestletBinding.java   |  2 +-
 .../camel/component/xquery/XQueryBuilder.java      |  5 +-
 .../camel/converter/saxon/SaxonConverterTest.java  |  2 +-
 .../spring/ws/converter/StringSourceConverter.java |  2 +-
 .../spring/ws/ProducerLocalRouteTest.java          |  2 +-
 .../spring/ws/ProducerRemoteRouteTest.java         |  2 +-
 .../processor/XmlSignatureProcessor.java           |  2 +-
 .../apache/camel/converter/StringSourceTest.java   |  2 +-
 .../camel/converter/jaxp/BytesSourceTest.java      |  2 +-
 .../camel/converter/jaxp/XmlConverterTest.java     |  2 +-
 .../camel/converter/stream/SourceCacheTest.java    |  1 +
 .../converter/stream/StreamCacheConverterTest.java |  9 ++--
 .../converter/stream/StreamSourceCacheTest.java    |  1 +
 .../apache/camel/impl/LogDebugBodyStreamsTest.java |  2 +-
 .../MultiCastParallelAndStreamCachingTest.java     |  2 +-
 .../StreamSourceContentBasedRouterTest.java        |  2 +-
 .../ValidatingProcessorFromSourceTest.java         |  2 +-
 .../camel/processor/ValidatingProcessorTest.java   |  2 +-
 .../apache/camel/converter/jaxp/XmlConverter.java  |  4 +-
 .../org/apache/camel/util/xml}/BytesSource.java    |  2 +-
 .../org/apache/camel/util/xml}/SourceCache.java    |  5 +-
 .../apache/camel/util/xml}/StreamSourceCache.java  |  4 +-
 .../camel/util/xml/StreamSourceConverter.java}     | 61 ++--------------------
 .../org/apache/camel/util/xml}/StringSource.java   |  2 +-
 .../converter/stream/StreamCacheConverter.java     | 36 -------------
 .../org/apache/camel/support/MessageHelper.java    | 19 ++++---
 31 files changed, 59 insertions(+), 133 deletions(-)

diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
index 70f63c8..7764cd7 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
@@ -38,7 +38,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
 import org.apache.camel.component.cxf.CxfPayload;
 import org.apache.camel.converter.stream.CachedOutputStream;
-import org.apache.camel.converter.stream.StreamSourceCache;
+import org.apache.camel.util.xml.StreamSourceCache;
 import org.apache.camel.support.builder.xml.StAX2SAXSource;
 import org.apache.camel.support.builder.xml.XMLConverterHelper;
 import org.apache.camel.util.ObjectHelper;
diff --git a/components/camel-jclouds/pom.xml b/components/camel-jclouds/pom.xml
index a21cb50..66a19f5 100644
--- a/components/camel-jclouds/pom.xml
+++ b/components/camel-jclouds/pom.xml
@@ -49,6 +49,11 @@
             <artifactId>camel-support</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-jaxp</artifactId>
+        </dependency>
+
         <!-- jclouds -->
         <dependency>
             <groupId>org.apache.jclouds</groupId>
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
index e7fec3f..398a458 100644
--- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java
@@ -31,10 +31,10 @@ import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.WrappedFile;
-import org.apache.camel.converter.stream.StreamSourceCache;
 import org.apache.camel.spi.TypeConverterRegistry;
 import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.xml.StreamSourceCache;
 import org.jclouds.io.Payload;
 import org.jclouds.io.payloads.ByteSourcePayload;
 import org.jclouds.io.payloads.InputStreamPayload;
diff --git a/components/camel-jclouds/src/test/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducerTest.java b/components/camel-jclouds/src/test/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducerTest.java
index 1a2cda8..7c55b80 100644
--- a/components/camel-jclouds/src/test/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducerTest.java
+++ b/components/camel-jclouds/src/test/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducerTest.java
@@ -32,9 +32,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.converter.stream.StreamCacheConverter;
 import org.apache.camel.support.DefaultExchange;
 import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.util.xml.StreamSourceConverter;
 import org.jclouds.ContextBuilder;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.BlobStoreContext;
@@ -69,7 +69,7 @@ public class JcloudsBlobStoreProducerTest extends CamelTestSupport {
     public void testBlobStorePutWithStreamAndGet() throws InterruptedException, TransformerException {
         ByteArrayInputStream inputStream = new ByteArrayInputStream(MESSAGE.getBytes());
         Exchange exchange = new DefaultExchange(context);
-        StreamCache streamCache = StreamCacheConverter.convertToStreamCache(new SAXSource(new InputSource(inputStream)), exchange);
+        StreamCache streamCache = StreamSourceConverter.convertToStreamCache(new SAXSource(new InputSource(inputStream)), exchange);
         template.sendBody("direct:put-and-get", streamCache);
         Object result = template.requestBodyAndHeader("direct:put-and-get", null, JcloudsConstants.OPERATION, JcloudsConstants.GET, String.class);
         assertEquals(MESSAGE, result);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java
index 239ce7e..71eed49 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java
@@ -25,7 +25,7 @@ import javax.xml.transform.stream.StreamSource;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
index b150768..37c9076 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
@@ -38,7 +38,7 @@ import javax.xml.transform.dom.DOMSource;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.WrappedFile;
 import org.apache.camel.component.file.GenericFile;
diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
index 5ac3761..6bbdb39 100644
--- a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
+++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.xquery;
 
 import java.io.ByteArrayOutputStream;
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
@@ -62,7 +61,7 @@ import net.sf.saxon.value.Int64Value;
 import net.sf.saxon.value.IntegerValue;
 import net.sf.saxon.value.ObjectValue;
 import net.sf.saxon.value.StringValue;
-import org.apache.camel.BytesSource;
+import org.apache.camel.util.xml.BytesSource;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Message;
@@ -70,7 +69,7 @@ import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeExpressionException;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.support.MessageHelper;
 import org.apache.camel.util.IOHelper;
diff --git a/components/camel-saxon/src/test/java/org/apache/camel/converter/saxon/SaxonConverterTest.java b/components/camel-saxon/src/test/java/org/apache/camel/converter/saxon/SaxonConverterTest.java
index 25bf285..d903112 100644
--- a/components/camel-saxon/src/test/java/org/apache/camel/converter/saxon/SaxonConverterTest.java
+++ b/components/camel-saxon/src/test/java/org/apache/camel/converter/saxon/SaxonConverterTest.java
@@ -33,7 +33,7 @@ import net.sf.saxon.om.NodeInfo;
 import net.sf.saxon.trans.XPathException;
 import net.sf.saxon.xpath.XPathEvaluator;
 import org.apache.camel.Exchange;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.language.xpath.DefaultNamespaceContext;
 import org.apache.camel.support.DefaultExchange;
 import org.apache.camel.test.junit4.CamelTestSupport;
diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/converter/StringSourceConverter.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/converter/StringSourceConverter.java
index 4bc8b06..b534dd6 100644
--- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/converter/StringSourceConverter.java
+++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/converter/StringSourceConverter.java
@@ -17,7 +17,7 @@
 package org.apache.camel.component.spring.ws.converter;
 
 import org.apache.camel.Converter;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 
 /**
  * A helper class to transform to and from {@link org.springframework.xml.transform.StringSource} implementations
diff --git a/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerLocalRouteTest.java b/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerLocalRouteTest.java
index 301e69d..504eb11 100644
--- a/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerLocalRouteTest.java
+++ b/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerLocalRouteTest.java
@@ -23,7 +23,7 @@ import org.apache.camel.ExchangePattern;
 import org.apache.camel.Message;
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.Test;
 import org.springframework.test.context.ContextConfiguration;
diff --git a/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerRemoteRouteTest.java b/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerRemoteRouteTest.java
index 2b581c0..116e372 100644
--- a/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerRemoteRouteTest.java
+++ b/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ProducerRemoteRouteTest.java
@@ -20,7 +20,7 @@ import javax.xml.transform.Source;
 
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.springframework.test.context.ContextConfiguration;
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/XmlSignatureProcessor.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/XmlSignatureProcessor.java
index 39cc89d..1ade0e6 100644
--- a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/XmlSignatureProcessor.java
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/XmlSignatureProcessor.java
@@ -27,7 +27,7 @@ import javax.xml.validation.Schema;
 import javax.xml.validation.SchemaFactory;
 
 import org.xml.sax.SAXException;
-import org.apache.camel.BytesSource;
+import org.apache.camel.util.xml.BytesSource;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.component.validator.DefaultLSResourceResolver;
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
index 28e8731..e78c464 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/StringSourceTest.java
@@ -21,7 +21,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.impl.converter.DefaultTypeConverter;
 import org.apache.camel.impl.engine.DefaultClassResolver;
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/BytesSourceTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/BytesSourceTest.java
index 129486d..f7003e6 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/BytesSourceTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/BytesSourceTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.converter.jaxp;
 
-import org.apache.camel.BytesSource;
+import org.apache.camel.util.xml.BytesSource;
 import org.apache.camel.ContextTestSupport;
 import org.junit.Test;
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/XmlConverterTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/XmlConverterTest.java
index db4b814..2ef19c3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/XmlConverterTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/jaxp/XmlConverterTest.java
@@ -35,7 +35,7 @@ import org.w3c.dom.NodeList;
 
 import org.xml.sax.InputSource;
 
-import org.apache.camel.BytesSource;
+import org.apache.camel.util.xml.BytesSource;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/stream/SourceCacheTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/stream/SourceCacheTest.java
index 3ee8f14..8593e04 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/stream/SourceCacheTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/stream/SourceCacheTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.converter.stream;
 import java.io.ByteArrayOutputStream;
 
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.util.xml.SourceCache;
 import org.junit.Test;
 
 public class SourceCacheTest extends ContextTestSupport {
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java
index 0a8440d..a72a218 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java
@@ -31,6 +31,7 @@ import org.apache.camel.StreamCache;
 import org.apache.camel.converter.IOConverter;
 import org.apache.camel.converter.jaxp.XmlConverter;
 import org.apache.camel.support.DefaultExchange;
+import org.apache.camel.util.xml.StreamSourceConverter;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -55,7 +56,7 @@ public class StreamCacheConverterTest extends ContextTestSupport {
         context.start();
 
         ByteArrayInputStream inputStream = new ByteArrayInputStream(MESSAGE.getBytes());
-        StreamCache streamCache = StreamCacheConverter.convertToStreamCache(new SAXSource(new InputSource(inputStream)), exchange);
+        StreamCache streamCache = StreamSourceConverter.convertToStreamCache(new SAXSource(new InputSource(inputStream)), exchange);
         String message = exchange.getContext().getTypeConverter().convertTo(String.class, streamCache);
         assertNotNull(message);
         assertEquals("The converted message is wrong", MESSAGE, message);
@@ -66,7 +67,7 @@ public class StreamCacheConverterTest extends ContextTestSupport {
         context.start();
 
         StreamSource source = new StreamSource(getTestFileStream());
-        StreamCache cache = StreamCacheConverter.convertToStreamCache(source, exchange);
+        StreamCache cache = StreamSourceConverter.convertToStreamCache(source, exchange);
         //assert re-readability of the cached StreamSource
         XmlConverter converter = new XmlConverter();
         assertNotNull(converter.toString((Source)cache, null));
@@ -94,7 +95,7 @@ public class StreamCacheConverterTest extends ContextTestSupport {
         context.start();
 
         InputStream is = getTestFileStream();
-        InputStream cache = (InputStream)StreamCacheConverter.convertToStreamCache(is, exchange);
+        InputStream cache = (InputStream) StreamCacheConverter.convertToStreamCache(is, exchange);
         assertNotNull(IOConverter.toString(cache, null));
         try {
             // since the stream is closed you delete the temp file
@@ -113,7 +114,7 @@ public class StreamCacheConverterTest extends ContextTestSupport {
 
         InputStream is = getTestFileStream();
         StreamCache cache = StreamCacheConverter.convertToStreamCache(is, exchange);
-        Serializable ser = StreamCacheConverter.convertToSerializable(cache, exchange);
+        Serializable ser = StreamSourceConverter.convertToSerializable(cache, exchange);
         assertNotNull(ser);
     }
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamSourceCacheTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamSourceCacheTest.java
index d183392..89088f2 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamSourceCacheTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/stream/StreamSourceCacheTest.java
@@ -23,6 +23,7 @@ import javax.xml.transform.stream.StreamSource;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.support.DefaultExchange;
+import org.apache.camel.util.xml.StreamSourceCache;
 import org.junit.Test;
 
 public class StreamSourceCacheTest extends ContextTestSupport {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
index 94e2681..7c52965 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/LogDebugBodyStreamsTest.java
@@ -21,7 +21,7 @@ import java.io.InputStream;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.Test;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/MultiCastParallelAndStreamCachingTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/MultiCastParallelAndStreamCachingTest.java
index 5f16b91..679ed26 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/MultiCastParallelAndStreamCachingTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/MultiCastParallelAndStreamCachingTest.java
@@ -28,7 +28,7 @@ import javax.xml.transform.stream.StreamSource;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.util.IOHelper;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/StreamSourceContentBasedRouterTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/StreamSourceContentBasedRouterTest.java
index 743bb84..cf969dd 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/StreamSourceContentBasedRouterTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/StreamSourceContentBasedRouterTest.java
@@ -20,7 +20,7 @@ import java.io.StringReader;
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.camel.ContextTestSupport;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.Before;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorFromSourceTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorFromSourceTest.java
index 0665466..3889613 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorFromSourceTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorFromSourceTest.java
@@ -17,7 +17,7 @@
 package org.apache.camel.processor;
 import java.io.File;
 
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.support.processor.validation.ValidatingProcessor;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
index f689c40..cd4f26a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/ValidatingProcessorTest.java
@@ -19,7 +19,7 @@ import java.io.File;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.ValidationException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
diff --git a/core/camel-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java b/core/camel-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
index ef2baef..6d848ee 100644
--- a/core/camel-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
+++ b/core/camel-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
@@ -66,10 +66,10 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 
-import org.apache.camel.BytesSource;
+import org.apache.camel.util.xml.BytesSource;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
-import org.apache.camel.StringSource;
+import org.apache.camel.util.xml.StringSource;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.builder.xml.StAX2SAXSource;
 import org.apache.camel.util.IOHelper;
diff --git a/core/camel-api/src/main/java/org/apache/camel/BytesSource.java b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/BytesSource.java
similarity index 98%
rename from core/camel-api/src/main/java/org/apache/camel/BytesSource.java
rename to core/camel-jaxp/src/main/java/org/apache/camel/util/xml/BytesSource.java
index bd986de..3f2135a 100644
--- a/core/camel-api/src/main/java/org/apache/camel/BytesSource.java
+++ b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/BytesSource.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel;
+package org.apache.camel.util.xml;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
diff --git a/core/camel-support/src/main/java/org/apache/camel/converter/stream/SourceCache.java b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/SourceCache.java
similarity index 93%
rename from core/camel-support/src/main/java/org/apache/camel/converter/stream/SourceCache.java
rename to core/camel-jaxp/src/main/java/org/apache/camel/util/xml/SourceCache.java
index 5447b9d..dc15acd 100644
--- a/core/camel-support/src/main/java/org/apache/camel/converter/stream/SourceCache.java
+++ b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/SourceCache.java
@@ -14,18 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.converter.stream;
+package org.apache.camel.util.xml;
 
 import java.io.IOException;
 import java.io.OutputStream;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
-import org.apache.camel.StringSource;
 import org.apache.camel.util.IOHelper;
 
 /**
- * {@link org.apache.camel.StreamCache} implementation for {@link org.apache.camel.StringSource}s
+ * {@link org.apache.camel.StreamCache} implementation for {@link StringSource}s
  */
 public final class SourceCache extends StringSource implements StreamCache {
 
diff --git a/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StreamSourceCache.java
similarity index 96%
rename from core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java
rename to core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StreamSourceCache.java
index 8bb9f6f..3ee8a2b 100644
--- a/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamSourceCache.java
+++ b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StreamSourceCache.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.converter.stream;
+package org.apache.camel.util.xml;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -24,6 +24,8 @@ import javax.xml.transform.stream.StreamSource;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
+import org.apache.camel.converter.stream.CachedOutputStream;
+import org.apache.camel.converter.stream.ReaderCache;
 import org.apache.camel.util.IOHelper;
 
 /**
diff --git a/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StreamSourceConverter.java
similarity index 50%
copy from core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
copy to core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StreamSourceConverter.java
index 3ebbc5f..d08e2a8 100644
--- a/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
+++ b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StreamSourceConverter.java
@@ -14,38 +14,32 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.converter.stream;
+package org.apache.camel.util.xml;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
 import java.io.Serializable;
-import java.nio.ByteBuffer;
 
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.sax.SAXSource;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.camel.BytesSource;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
-import org.apache.camel.StringSource;
-import org.apache.camel.util.IOHelper;
+
+import static org.apache.camel.converter.stream.StreamCacheConverter.convertToByteArray;
 
 /**
  * A set of {@link Converter} methods for wrapping stream-based messages in a {@link StreamCache}
  * implementation to ensure message re-readability (eg multicasting, retrying)
  */
 @Converter(loader = true)
-public final class StreamCacheConverter {
+public final class StreamSourceConverter {
 
     /**
      * Utility classes should not have a public constructor.
      */
-    private StreamCacheConverter() {
+    private StreamSourceConverter() {
     }
 
     @Converter
@@ -54,12 +48,6 @@ public final class StreamCacheConverter {
     }
 
     @Converter
-    public static StreamCache convertToStreamCache(StringSource source) {
-        //no need to do stream caching for a StringSource
-        return null;
-    }
-
-    @Converter
     public static StreamCache convertToStreamCache(BytesSource source) {
         //no need to do stream caching for a BytesSource
         return null;
@@ -72,48 +60,9 @@ public final class StreamCacheConverter {
     }
 
     @Converter
-    public static StreamCache convertToStreamCache(ByteArrayInputStream stream, Exchange exchange) throws IOException {
-        return new ByteArrayInputStreamCache(stream);
-    }
-
-    @Converter
-    public static StreamCache convertToStreamCache(InputStream stream, Exchange exchange) throws IOException {
-        // transfer the input stream to a cached output stream, and then creates a new stream cache view
-        // of the data, which ensures the input stream is cached and re-readable.
-        CachedOutputStream cos = new CachedOutputStream(exchange);
-        IOHelper.copyAndCloseInput(stream, cos);
-        return cos.newStreamCache();
-    }
-
-    @Converter
-    public static StreamCache convertToStreamCache(CachedOutputStream cos, Exchange exchange) throws IOException {
-        return cos.newStreamCache();
-    }
-
-    @Converter
-    public static StreamCache convertToStreamCache(Reader reader, Exchange exchange) throws IOException {
-        String data = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, reader);
-        return new ReaderCache(data);
-    }
-
-    @Converter
     public static Serializable convertToSerializable(StreamCache cache, Exchange exchange) throws IOException {
         byte[] data = convertToByteArray(cache, exchange);
         return new BytesSource(data);
     }
 
-    @Converter
-    public static byte[] convertToByteArray(StreamCache cache, Exchange exchange) throws IOException {
-        // lets serialize it as a byte array
-        ByteArrayOutputStream os = new ByteArrayOutputStream();
-        cache.writeTo(os);
-        return os.toByteArray();
-    }
-
-    @Converter
-    public static ByteBuffer convertToByteBuffer(StreamCache cache, Exchange exchange) throws IOException {
-        byte[] array = convertToByteArray(cache, exchange);
-        return ByteBuffer.wrap(array);
-    }
-
 }
diff --git a/core/camel-api/src/main/java/org/apache/camel/StringSource.java b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StringSource.java
similarity index 99%
rename from core/camel-api/src/main/java/org/apache/camel/StringSource.java
rename to core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StringSource.java
index 64b9c20..b79155b 100644
--- a/core/camel-api/src/main/java/org/apache/camel/StringSource.java
+++ b/core/camel-jaxp/src/main/java/org/apache/camel/util/xml/StringSource.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel;
+package org.apache.camel.util.xml;
 
 import java.io.ByteArrayInputStream;
 import java.io.Externalizable;
diff --git a/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java b/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
index 3ebbc5f..c2fa65f 100644
--- a/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
+++ b/core/camel-support/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
@@ -21,18 +21,11 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
-import java.io.Serializable;
 import java.nio.ByteBuffer;
 
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.camel.BytesSource;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
 import org.apache.camel.StreamCache;
-import org.apache.camel.StringSource;
 import org.apache.camel.util.IOHelper;
 
 /**
@@ -49,29 +42,6 @@ public final class StreamCacheConverter {
     }
 
     @Converter
-    public static StreamCache convertToStreamCache(StreamSource source, Exchange exchange) throws IOException {
-        return new StreamSourceCache(source, exchange);
-    }
-
-    @Converter
-    public static StreamCache convertToStreamCache(StringSource source) {
-        //no need to do stream caching for a StringSource
-        return null;
-    }
-
-    @Converter
-    public static StreamCache convertToStreamCache(BytesSource source) {
-        //no need to do stream caching for a BytesSource
-        return null;
-    }
-
-    @Converter
-    public static StreamCache convertToStreamCache(SAXSource source, Exchange exchange) throws TransformerException {
-        String data = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, source);
-        return new SourceCache(data);
-    }
-
-    @Converter
     public static StreamCache convertToStreamCache(ByteArrayInputStream stream, Exchange exchange) throws IOException {
         return new ByteArrayInputStreamCache(stream);
     }
@@ -97,12 +67,6 @@ public final class StreamCacheConverter {
     }
 
     @Converter
-    public static Serializable convertToSerializable(StreamCache cache, Exchange exchange) throws IOException {
-        byte[] data = convertToByteArray(cache, exchange);
-        return new BytesSource(data);
-    }
-
-    @Converter
     public static byte[] convertToByteArray(StreamCache cache, Exchange exchange) throws IOException {
         // lets serialize it as a byte array
         ByteArrayOutputStream os = new ByteArrayOutputStream();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
index 5b94cfe..4608256 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
@@ -26,15 +26,12 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+import java.util.stream.Stream;
 
-import javax.xml.transform.Source;
-
-import org.apache.camel.BytesSource;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.MessageHistory;
 import org.apache.camel.StreamCache;
-import org.apache.camel.StringSource;
 import org.apache.camel.WrappedFile;
 import org.apache.camel.spi.ExchangeFormatter;
 import org.apache.camel.spi.HeaderFilterStrategy;
@@ -286,9 +283,7 @@ public final class MessageHelper {
         }
 
         if (!allowStreams) {
-            if (obj instanceof Source && !(obj instanceof StringSource || obj instanceof BytesSource)) {
-                // for Source its only StringSource or BytesSource that is okay as they are memory based
-                // all other kinds we should not touch the body
+            if (instanceOf(obj, "java.xml.transform.Source")) {
                 return prepend + "[Body is instance of java.xml.transform.Source]";
             } else if (obj instanceof StreamCache) {
                 return prepend + "[Body is instance of org.apache.camel.StreamCache]";
@@ -364,6 +359,16 @@ public final class MessageHelper {
         return prepend + body;
     }
 
+    private static boolean instanceOf(Object obj, String interfaceName) {
+        return interfaces(obj.getClass()).anyMatch(cl -> cl.getName().equals(interfaceName));
+    }
+
+    private static Stream<Class<?>> interfaces(Class<?> clazz) {
+        return clazz == null ? Stream.empty() : Stream.concat(
+                Stream.concat(Stream.of(clazz), interfaces(clazz.getSuperclass())),
+                Stream.of(clazz.getInterfaces()).flatMap(MessageHelper::interfaces));
+    }
+
     /**
      * Dumps the message as a generic XML structure.
      *