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.
*