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 <[email protected]> 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. *
