You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/05/11 12:29:56 UTC
[camel] 01/03: CAMEL-18087: camel-core - Enable stream caching by default. (#7586)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 86be33a15d9520128aacc15172ff1f072808c743
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed May 11 13:44:19 2022 +0200
CAMEL-18087: camel-core - Enable stream caching by default. (#7586)
---
...1DataFormatWithStreamIteratorByteArrayTest.java | 6 ++---
.../ASN1DataFormatWithStreamIteratorClassTest.java | 1 -
.../asn1/ASN1DataFormatWithStreamTest.java | 1 -
.../s3/integration/S3CopyObjectCustomerKeyIT.java | 27 ++++------------------
.../storage/blob/integration/BlobConsumerIT.java | 27 +++++-----------------
.../dataformat/barcode/BarcodeUnmarshalTest.java | 4 ++--
.../component/cxf/transport/CamelConduitTest.java | 14 ++++-------
.../cxf/transport/CamelDestinationTest.java | 11 ++++-----
.../FtpSimpleConsumeStreamingPartialReadIT.java | 7 +++---
.../FtpSimpleConsumeStreamingStepwiseFalseIT.java | 7 +++---
.../FtpSimpleConsumeStreamingStepwiseIT.java | 8 +++----
...pSimpleConsumeStreamingWithMultipleFilesIT.java | 11 ++++-----
.../remote/integration/FtpStreamingMoveIT.java | 6 ++---
.../integration/SftpSimpleConsumeStreamingIT.java | 8 +++----
.../SftpSimpleConsumeStreamingPartialReadIT.java | 7 +++---
...pSimpleConsumeStreamingWithMultipleFilesIT.java | 11 ++++-----
.../camel/component/hl7/HL7MLLPNettyEncoder.java | 11 ++++++++-
.../camel/component/hl7/HL7DataFormatTest.java | 9 ++++----
.../avro/JacksonAvroLookupResolverTest.java | 1 -
.../JacksonAvroMarshalUnmarshalJsonNodeTest.java | 2 --
.../JacksonAvroMarshalUnmarshalPojoListTest.java | 1 -
.../avro/JacksonAvroMarshalUnmarshalPojoTest.java | 1 -
.../JacksonProtobufLookupResolverTest.java | 3 ++-
...acksonProtobufMarshalUnmarshalJsonNodeTest.java | 1 -
.../JacksonProtobufMarshalUnmarshalPojoTest.java | 1 -
...> JmsStreamMessageTypeNoStreamCachingTest.java} | 12 +++++-----
.../component/jms/JmsStreamMessageTypeTest.java | 11 +++------
.../camel/dataformat/lzf/LZFDataFormatTest.java | 2 +-
.../camel/component/mina/MinaConverterLoader.java | 2 ++
.../apache/camel/component/mina/MinaConverter.java | 10 ++++++++
.../apache/camel/component/mina/MinaHelper.java | 15 ++++++++++++
.../dataformat/soap/SoapToSoapDontIgnoreTest.java | 2 +-
.../dataformat/soap/SoapToSoapIgnoreTest.java | 2 +-
.../soap/SoapToSoapSingleDataFormatterTest.java | 2 +-
.../tarfile/TarElementInputStreamWrapper.java | 17 ++++++++++++++
.../tarfile/SpringTarFileDataFormatTest.java | 6 ++---
.../dataformat/tarfile/TarFileDataFormatTest.java | 10 ++++----
.../dataformat/deflater/GzipDataFormatTest.java | 2 +-
.../deflater/ZipDeflaterDataFormatTest.java | 3 ++-
.../dataformat/zipfile/ZipFileDataFormatTest.java | 4 ++--
.../jaxp/CamelXmlJaxpBulkConverterLoader.java | 14 ++++++++++-
.../apache/camel/converter/jaxp/XmlConverter.java | 14 +++++++++++
42 files changed, 172 insertions(+), 142 deletions(-)
diff --git a/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorByteArrayTest.java b/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorByteArrayTest.java
index 32a60560a29..de700bbab88 100644
--- a/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorByteArrayTest.java
+++ b/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorByteArrayTest.java
@@ -50,9 +50,9 @@ public class ASN1DataFormatWithStreamIteratorByteArrayTest extends CamelTestSupp
assertEquals(1, exchanges.size());
for (Exchange exchange : exchanges) {
- assertTrue(exchange.getIn().getBody() instanceof byte[]);
- assertTrue(Arrays.equals(FileUtils.readFileToByteArray(testFile), exchange.getIn().getBody(byte[].class)));
- assertTrue(ASN1Primitive.fromByteArray(exchange.getIn().getBody(byte[].class)) instanceof ASN1Primitive);
+ byte[] arr = exchange.getIn().getBody(byte[].class);
+ assertTrue(Arrays.equals(FileUtils.readFileToByteArray(testFile), arr));
+ assertTrue(ASN1Primitive.fromByteArray(arr) instanceof ASN1Primitive);
}
assertMockEndpointsSatisfied();
diff --git a/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorClassTest.java b/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorClassTest.java
index c7e4eb2cfe9..f8df0a29afa 100644
--- a/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorClassTest.java
+++ b/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamIteratorClassTest.java
@@ -77,7 +77,6 @@ public class ASN1DataFormatWithStreamIteratorClassTest extends CamelTestSupport
assertEquals(1, exchanges.size());
for (Exchange exchange : exchanges) {
- assertTrue(exchange.getIn().getBody() instanceof byte[]);
// assertTrue(Arrays.equals(FileUtils.readFileToByteArray(testFile),
// exchange.getIn().getBody(byte[].class)));
diff --git a/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamTest.java b/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamTest.java
index 8f66982bce7..183662d7a5e 100644
--- a/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamTest.java
+++ b/components/camel-asn1/src/test/java/org/apache/camel/dataformat/asn1/ASN1DataFormatWithStreamTest.java
@@ -47,7 +47,6 @@ public class ASN1DataFormatWithStreamTest extends CamelTestSupport {
assertEquals(1, exchanges.size());
for (Exchange exchange : exchanges) {
- assertTrue(exchange.getIn().getBody() instanceof byte[]);
assertTrue(Arrays.equals(FileUtils.readFileToByteArray(testFile), exchange.getIn().getBody(byte[].class)));
}
diff --git a/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3CopyObjectCustomerKeyIT.java b/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3CopyObjectCustomerKeyIT.java
index 7424a8368e0..d5140e4826a 100644
--- a/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3CopyObjectCustomerKeyIT.java
+++ b/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/integration/S3CopyObjectCustomerKeyIT.java
@@ -16,12 +16,7 @@
*/
package org.apache.camel.component.aws2.s3.integration;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
+import java.io.InputStream;
import java.security.SecureRandom;
import java.util.Base64;
import java.util.List;
@@ -37,10 +32,9 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.aws2.s3.AWS2S3Constants;
import org.apache.camel.component.aws2.s3.AWS2S3Operations;
import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import software.amazon.awssdk.core.ResponseInputStream;
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
-import software.amazon.awssdk.services.s3.model.GetObjectResponse;
import software.amazon.awssdk.utils.Md5Utils;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -100,9 +94,9 @@ public class S3CopyObjectCustomerKeyIT extends Aws2S3Base {
}
});
- ResponseInputStream<GetObjectResponse> s3 = res.getIn().getBody(ResponseInputStream.class);
-
- assertEquals("Test", readInputStream(s3));
+ InputStream is = res.getIn().getBody(InputStream.class);
+ Assertions.assertNotNull(is);
+ assertEquals("Test", context.getTypeConverter().convertTo(String.class, is));
Exchange res1 = template.request("direct:listObject", new Processor() {
@@ -153,15 +147,4 @@ public class S3CopyObjectCustomerKeyIT extends Aws2S3Base {
}
}
- private String readInputStream(ResponseInputStream<GetObjectResponse> s3Object) throws IOException {
- StringBuilder textBuilder = new StringBuilder();
- try (Reader reader
- = new BufferedReader(new InputStreamReader(s3Object, Charset.forName(StandardCharsets.UTF_8.name())))) {
- int c = 0;
- while ((c = reader.read()) != -1) {
- textBuilder.append((char) c);
- }
- }
- return textBuilder.toString();
- }
}
diff --git a/components/camel-azure/camel-azure-storage-blob/src/test/java/org/apache/camel/component/azure/storage/blob/integration/BlobConsumerIT.java b/components/camel-azure/camel-azure-storage-blob/src/test/java/org/apache/camel/component/azure/storage/blob/integration/BlobConsumerIT.java
index 17b74f84d35..9fc9e8c1b85 100644
--- a/components/camel-azure/camel-azure-storage-blob/src/test/java/org/apache/camel/component/azure/storage/blob/integration/BlobConsumerIT.java
+++ b/components/camel-azure/camel-azure-storage-blob/src/test/java/org/apache/camel/component/azure/storage/blob/integration/BlobConsumerIT.java
@@ -16,9 +16,7 @@
*/
package org.apache.camel.component.azure.storage.blob.integration;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.InputStreamReader;
import java.nio.file.Path;
import java.util.regex.Pattern;
@@ -100,12 +98,8 @@ class BlobConsumerIT extends Base {
mockEndpoint.expectedMessageCount(1);
mockEndpoint.assertIsSatisfied();
- final BlobInputStream blobInputStream = mockEndpoint.getExchanges().get(0).getIn().getBody(BlobInputStream.class);
- assertNotNull(blobInputStream, "BlobInputStream must be set");
-
- final String bufferedText = new BufferedReader(new InputStreamReader(blobInputStream)).readLine();
-
- assertEquals("Block Blob", bufferedText);
+ String text = mockEndpoint.getExchanges().get(0).getIn().getBody(String.class);
+ assertEquals("Block Blob", text);
}
@Test
@@ -132,24 +126,15 @@ class BlobConsumerIT extends Base {
MockEndpoint.assertIsSatisfied(context());
- final BlobInputStream blobInputStream = mockEndpoint.getExchanges().get(0).getIn().getBody(BlobInputStream.class);
- final BlobInputStream blobInputStream2 = mockEndpoint.getExchanges().get(1).getIn().getBody(BlobInputStream.class);
-
- assertNotNull(blobInputStream, "BlobInputStream must be set");
- assertNotNull(blobInputStream2, "BlobInputStream must be set");
-
- final String bufferedText = context().getTypeConverter().convertTo(String.class, blobInputStream);
- final String bufferedText2 = context().getTypeConverter().convertTo(String.class, blobInputStream2);
-
- assertEquals("Block Batch Blob 1", bufferedText);
- assertEquals("Block Batch Blob 2", bufferedText2);
+ String text = mockEndpoint.getExchanges().get(0).getIn().getBody(String.class);
+ String text2 = mockEndpoint.getExchanges().get(1).getIn().getBody(String.class);
+ assertEquals("Block Batch Blob 1", text);
+ assertEquals("Block Batch Blob 2", text2);
final File file = mockEndpointFile.getExchanges().get(0).getIn().getBody(File.class);
final File file2 = mockEndpointFile.getExchanges().get(1).getIn().getBody(File.class);
-
assertNotNull(file, "File must be set");
assertNotNull(file2, "File must be set");
-
assertEquals("Block Batch Blob 1", context().getTypeConverter().convertTo(String.class, file));
assertEquals("Block Batch Blob 2", context().getTypeConverter().convertTo(String.class, file2));
}
diff --git a/components/camel-barcode/src/test/java/org/apache/camel/dataformat/barcode/BarcodeUnmarshalTest.java b/components/camel-barcode/src/test/java/org/apache/camel/dataformat/barcode/BarcodeUnmarshalTest.java
index 6a6f204957f..fec6d63c5c1 100644
--- a/components/camel-barcode/src/test/java/org/apache/camel/dataformat/barcode/BarcodeUnmarshalTest.java
+++ b/components/camel-barcode/src/test/java/org/apache/camel/dataformat/barcode/BarcodeUnmarshalTest.java
@@ -46,7 +46,7 @@ public class BarcodeUnmarshalTest extends BarcodeTestBase {
}
});
- assertEquals(180, exchange.getOut().getHeader("ORIENTATION"));
+ assertEquals(180, exchange.getMessage().getHeader("ORIENTATION"));
}
@@ -63,7 +63,7 @@ public class BarcodeUnmarshalTest extends BarcodeTestBase {
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
- ByteArrayInputStream bis = new ByteArrayInputStream((byte[]) exchange.getIn().getBody());
+ InputStream bis = exchange.getIn().getBody(InputStream.class);
BinaryBitmap bitmap = new BinaryBitmap(
new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(bis))));
BitMatrix blackMatrix = bitmap.getBlackMatrix();
diff --git a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java
index bdcab1cd6b2..30e67b90ac6 100644
--- a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java
+++ b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java
@@ -28,6 +28,7 @@ import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.util.IOHelper;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.spring.SpringBusFactory;
@@ -154,15 +155,10 @@ public class CamelConduitTest extends CamelTransportTestSupport {
}
public void verifyReceivedMessage(String content) {
- ByteArrayInputStream bis = (ByteArrayInputStream) inMessage.getContent(InputStream.class);
- byte bytes[] = new byte[bis.available()];
- try {
- bis.read(bytes);
- } catch (IOException ex) {
- LOG.warn("I/O error receiving messages: {}", ex.getMessage(), ex);
- }
- String reponse = new String(bytes);
- assertEquals(content, reponse, "The reponse date should be equals");
+ InputStream is = inMessage.getContent(InputStream.class);
+ byte[] bytes = context().getTypeConverter().convertTo(byte[].class, is);
+ String response = new String(bytes);
+ assertEquals(content, response, "The response date should be equals");
}
}
diff --git a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelDestinationTest.java b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelDestinationTest.java
index a5428e0cdb7..85c88ebbb33 100644
--- a/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelDestinationTest.java
+++ b/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelDestinationTest.java
@@ -151,12 +151,11 @@ public class CamelDestinationTest extends CamelTransportTestSupport {
destination.shutdown();
}
- private void verifyReceivedMessage(Message inMessage, String content) throws IOException {
- ByteArrayInputStream bis = (ByteArrayInputStream) inMessage.getContent(InputStream.class);
- byte bytes[] = new byte[bis.available()];
- bis.read(bytes);
- String reponse = new String(bytes);
- assertEquals(content, reponse, "The reponse date should be equals");
+ private void verifyReceivedMessage(Message inMessage, String content) {
+ InputStream is = inMessage.getContent(InputStream.class);
+ byte[] bytes = context().getTypeConverter().convertTo(byte[].class, is);
+ String response = new String(bytes);
+ assertEquals(content, response, "The response date should be equals");
}
@Test
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingPartialReadIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingPartialReadIT.java
index 435f8c3e165..d82a5d7db02 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingPartialReadIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingPartialReadIT.java
@@ -23,12 +23,12 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
import static org.awaitility.Awaitility.await;
import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class FtpSimpleConsumeStreamingPartialReadIT extends FtpServerTestSupport {
@@ -50,8 +50,9 @@ public class FtpSimpleConsumeStreamingPartialReadIT extends FtpServerTestSupport
context.getRouteController().startRoute("foo");
assertMockEndpointsSatisfied();
- GenericFile<?> remoteFile1 = (GenericFile<?>) mock.getExchanges().get(0).getIn().getBody();
- assertTrue(remoteFile1.getBody() instanceof InputStream);
+
+ InputStream is = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
// Wait a little bit for the move to finish.
File resultFile = new File(path + File.separator + "failed", "hello.txt");
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseFalseIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseFalseIT.java
index e7b13a36871..64eb0f47d83 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseFalseIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseFalseIT.java
@@ -20,11 +20,10 @@ import java.io.InputStream;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
public class FtpSimpleConsumeStreamingStepwiseFalseIT extends FtpServerTestSupport {
@@ -51,8 +50,8 @@ public class FtpSimpleConsumeStreamingStepwiseFalseIT extends FtpServerTestSuppo
}
void assertMore(MockEndpoint mock) {
- GenericFile<?> remoteFile = (GenericFile<?>) mock.getExchanges().get(0).getIn().getBody();
- assertTrue(remoteFile.getBody() instanceof InputStream);
+ InputStream is = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
}
MockEndpoint getMockEndpoint() {
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseIT.java
index ca6ae8638b5..cfb56bc4a97 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingStepwiseIT.java
@@ -22,13 +22,12 @@ import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.Producer;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.converter.IOConverter;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
// README (informative only, to be removed in final version):
// The filesize at which this test fails is arbitrary, I suppose it depends on the FTP we are using and Java
@@ -54,10 +53,11 @@ public class FtpSimpleConsumeStreamingStepwiseIT extends FtpServerTestSupport {
public void testFtpRoute() throws Exception {
MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
resultEndpoint.expectedMessageCount(1);
+
resultEndpoint.assertIsSatisfied();
- GenericFile<?> remoteFile = (GenericFile<?>) resultEndpoint.getExchanges().get(0).getIn().getBody();
- assertTrue(remoteFile.getBody() instanceof InputStream);
+ InputStream is = resultEndpoint.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
}
private void prepareFtpServer() throws Exception {
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingWithMultipleFilesIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingWithMultipleFilesIT.java
index 7f2638b347c..635ae0599ee 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingWithMultipleFilesIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpSimpleConsumeStreamingWithMultipleFilesIT.java
@@ -20,11 +20,10 @@ import java.io.InputStream;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
public class FtpSimpleConsumeStreamingWithMultipleFilesIT extends FtpServerTestSupport {
@@ -48,10 +47,10 @@ public class FtpSimpleConsumeStreamingWithMultipleFilesIT extends FtpServerTestS
assertMockEndpointsSatisfied();
- GenericFile<?> remoteFile1 = mock.getExchanges().get(0).getIn().getBody(GenericFile.class);
- GenericFile<?> remoteFile2 = mock.getExchanges().get(1).getIn().getBody(GenericFile.class);
- assertTrue(remoteFile1.getBody() instanceof InputStream);
- assertTrue(remoteFile2.getBody() instanceof InputStream);
+ InputStream remoteFile1 = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(remoteFile1);
+ InputStream remoteFile2 = mock.getExchanges().get(1).getIn().getBody(InputStream.class);
+ assertNotNull(remoteFile2);
}
@Override
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpStreamingMoveIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpStreamingMoveIT.java
index 9fe34d2b9e9..5bea940f506 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpStreamingMoveIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/integration/FtpStreamingMoveIT.java
@@ -21,11 +21,11 @@ import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
import static org.awaitility.Awaitility.await;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class FtpStreamingMoveIT extends FtpServerTestSupport {
@@ -46,8 +46,8 @@ public class FtpStreamingMoveIT extends FtpServerTestSupport {
assertMockEndpointsSatisfied();
- GenericFile<?> remoteFile = (GenericFile<?>) mock.getExchanges().get(0).getIn().getBody();
- assertTrue(remoteFile.getBody() instanceof InputStream);
+ InputStream is = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
// give time for consumer to rename file
File file = ftpFile("mymove/done/hello.txt").toFile();
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingIT.java
index 4ea829dc781..7acbca115dc 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingIT.java
@@ -20,12 +20,11 @@ import java.io.InputStream;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIf;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
@EnabledIf(value = "org.apache.camel.component.file.remote.services.SftpEmbeddedService#hasRequiredAlgorithms")
public class SftpSimpleConsumeStreamingIT extends SftpServerTestSupport {
@@ -45,8 +44,9 @@ public class SftpSimpleConsumeStreamingIT extends SftpServerTestSupport {
context.getRouteController().startRoute("foo");
assertMockEndpointsSatisfied();
- GenericFile<?> remoteFile = mock.getExchanges().get(0).getIn().getBody(GenericFile.class);
- assertTrue(remoteFile.getBody() instanceof InputStream);
+
+ InputStream is = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
}
@Override
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingPartialReadIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingPartialReadIT.java
index f3c66d1cec9..edfb3688539 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingPartialReadIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingPartialReadIT.java
@@ -23,13 +23,13 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIf;
import static org.awaitility.Awaitility.await;
import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -52,8 +52,9 @@ public class SftpSimpleConsumeStreamingPartialReadIT extends SftpServerTestSuppo
context.getRouteController().startRoute("foo");
assertMockEndpointsSatisfied();
- GenericFile<?> remoteFile1 = (GenericFile<?>) mock.getExchanges().get(0).getIn().getBody();
- assertTrue(remoteFile1.getBody() instanceof InputStream);
+
+ InputStream is = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
// Wait a little bit for the move to finish.
File resultFile = new File(service.getFtpRootDir() + File.separator + "failed", "hello.txt");
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingWithMultipleFilesIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingWithMultipleFilesIT.java
index cc7392505ae..eb5e2480bf6 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingWithMultipleFilesIT.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeStreamingWithMultipleFilesIT.java
@@ -20,12 +20,11 @@ import java.io.InputStream;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIf;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
@EnabledIf(value = "org.apache.camel.component.file.remote.services.SftpEmbeddedService#hasRequiredAlgorithms")
public class SftpSimpleConsumeStreamingWithMultipleFilesIT extends SftpServerTestSupport {
@@ -47,10 +46,10 @@ public class SftpSimpleConsumeStreamingWithMultipleFilesIT extends SftpServerTes
assertMockEndpointsSatisfied();
- GenericFile<?> remoteFile1 = mock.getExchanges().get(0).getIn().getBody(GenericFile.class);
- GenericFile<?> remoteFile2 = mock.getExchanges().get(1).getIn().getBody(GenericFile.class);
- assertTrue(remoteFile1.getBody() instanceof InputStream);
- assertTrue(remoteFile2.getBody() instanceof InputStream);
+ InputStream is = mock.getExchanges().get(0).getIn().getBody(InputStream.class);
+ assertNotNull(is);
+ InputStream is2 = mock.getExchanges().get(1).getIn().getBody(InputStream.class);
+ assertNotNull(is2);
}
@Override
diff --git a/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7MLLPNettyEncoder.java b/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7MLLPNettyEncoder.java
index 5fb3b3f4607..231fcf7a3c9 100644
--- a/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7MLLPNettyEncoder.java
+++ b/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7MLLPNettyEncoder.java
@@ -20,6 +20,9 @@ import ca.uhn.hl7v2.model.Message;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
+import org.apache.camel.StreamCache;
+
+import java.io.ByteArrayOutputStream;
/**
* HL7 MLLP Encoder for Netty
@@ -46,7 +49,13 @@ class HL7MLLPNettyEncoder extends MessageToByteEncoder<Object> {
}
byte[] body;
- if (message instanceof Message) {
+ if (message instanceof StreamCache) {
+ // need to convert to byte array for the encoder
+ StreamCache sc = (StreamCache) message;
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ sc.writeTo(bos);
+ body = bos.toByteArray();
+ } else if (message instanceof Message) {
body = ((Message) message).encode().getBytes(config.getCharset());
} else if (message instanceof String) {
body = ((String) message).getBytes(config.getCharset());
diff --git a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java
index 430f09e2153..1e23335e509 100644
--- a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java
+++ b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.hl7;
import java.io.ByteArrayInputStream;
+import java.io.InputStream;
import java.nio.charset.Charset;
import ca.uhn.hl7v2.model.Message;
@@ -51,7 +52,7 @@ public class HL7DataFormatTest extends CamelTestSupport {
public void testMarshal() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:marshal");
mock.expectedMessageCount(1);
- mock.message(0).body().isInstanceOf(byte[].class);
+ mock.message(0).body().isInstanceOf(InputStream.class);
mock.message(0).body(String.class).contains("MSA|AA|123");
mock.message(0).body(String.class).contains("QRD|20080805120000");
@@ -65,7 +66,7 @@ public class HL7DataFormatTest extends CamelTestSupport {
public void testMarshalISO8859() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:marshal");
mock.expectedMessageCount(1);
- mock.message(0).body().isInstanceOf(byte[].class);
+ mock.message(0).body().isInstanceOf(InputStream.class);
mock.message(0).body(String.class).contains("MSA|AA|123");
mock.message(0).body(String.class).contains("QRD|20080805120000");
mock.message(0).body(String.class).not().contains(NONE_ISO_8859_1);
@@ -84,7 +85,7 @@ public class HL7DataFormatTest extends CamelTestSupport {
template.sendBodyAndProperty("direct:marshal", message, Exchange.CHARSET_NAME, charsetName);
assertMockEndpointsSatisfied();
- byte[] body = (byte[]) mock.getExchanges().get(0).getIn().getBody();
+ byte[] body = mock.getExchanges().get(0).getIn().getBody(byte[].class);
String msg = new String(body, Charset.forName(charsetName));
assertTrue(msg.contains("MSA|AA|123"));
assertTrue(msg.contains("QRD|20080805120000"));
@@ -94,7 +95,7 @@ public class HL7DataFormatTest extends CamelTestSupport {
public void testMarshalUTF8() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:marshal");
mock.expectedMessageCount(1);
- mock.message(0).body().isInstanceOf(byte[].class);
+ mock.message(0).body().isInstanceOf(InputStream.class);
mock.message(0).body(String.class).contains("MSA|AA|123");
mock.message(0).body(String.class).contains("QRD|20080805120000");
mock.message(0).body(String.class).contains(NONE_ISO_8859_1);
diff --git a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroLookupResolverTest.java b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroLookupResolverTest.java
index bfb565a6103..aeebe04da45 100644
--- a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroLookupResolverTest.java
+++ b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroLookupResolverTest.java
@@ -36,7 +36,6 @@ public class JacksonAvroLookupResolverTest extends CamelTestSupport {
public void testMarshalUnmarshalPojo() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
Pojo pojo = new Pojo("Hello");
template.sendBody("direct:pojo", pojo);
diff --git a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalJsonNodeTest.java b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalJsonNodeTest.java
index aaebba0bcb0..e7a231ec2fa 100644
--- a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalJsonNodeTest.java
+++ b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalJsonNodeTest.java
@@ -40,7 +40,6 @@ public class JacksonAvroMarshalUnmarshalJsonNodeTest extends CamelTestSupport {
public void testMarshalUnmarshalJsonNode() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
Pojo pojo = new Pojo("Hello");
template.sendBody("direct:pojo", pojo);
@@ -67,7 +66,6 @@ public class JacksonAvroMarshalUnmarshalJsonNodeTest extends CamelTestSupport {
public void testMarshalUnmarshalJsonNodeList() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
List<JacksonAvroMarshalUnmarshalPojoListTest.Pojo> pojos = new ArrayList<>();
pojos.add(new JacksonAvroMarshalUnmarshalPojoListTest.Pojo("Hello"));
diff --git a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoListTest.java b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoListTest.java
index 7522e6e383f..544005da201 100644
--- a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoListTest.java
+++ b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoListTest.java
@@ -38,7 +38,6 @@ public class JacksonAvroMarshalUnmarshalPojoListTest extends CamelTestSupport {
public void testMarshalUnmarshalPojoList() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
List<Pojo> pojos = new ArrayList<>();
pojos.add(new Pojo("Hello"));
diff --git a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoTest.java b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoTest.java
index a45d81d37dd..12e6ea53480 100644
--- a/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoTest.java
+++ b/components/camel-jackson-avro/src/test/java/org/apache/camel/component/jackson/avro/JacksonAvroMarshalUnmarshalPojoTest.java
@@ -35,7 +35,6 @@ public class JacksonAvroMarshalUnmarshalPojoTest extends CamelTestSupport {
public void testMarshalUnmarshalPojo() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
Pojo pojo = new Pojo("Hello");
template.sendBody("direct:pojo", pojo);
diff --git a/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufLookupResolverTest.java b/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufLookupResolverTest.java
index 3e30db3e2fb..c57504c553b 100644
--- a/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufLookupResolverTest.java
+++ b/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufLookupResolverTest.java
@@ -27,6 +27,8 @@ import org.apache.camel.spi.Registry;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
+import java.io.InputStream;
+
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -36,7 +38,6 @@ public class JacksonProtobufLookupResolverTest extends CamelTestSupport {
public void testMarshalUnmarshalPojo() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
Pojo pojo = new Pojo("Hello");
template.sendBody("direct:pojo", pojo);
diff --git a/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalJsonNodeTest.java b/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalJsonNodeTest.java
index f2089246c1e..9da127a25e1 100644
--- a/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalJsonNodeTest.java
+++ b/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalJsonNodeTest.java
@@ -36,7 +36,6 @@ public class JacksonProtobufMarshalUnmarshalJsonNodeTest extends CamelTestSuppor
public void testMarshalUnmarshalJsonNode() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
Pojo pojo = new Pojo("Hello");
template.sendBody("direct:pojo", pojo);
diff --git a/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalPojoTest.java b/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalPojoTest.java
index d5c7afc1080..8debd701b10 100644
--- a/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalPojoTest.java
+++ b/components/camel-jackson-protobuf/src/test/java/org/apache/camel/component/jackson/protobuf/JacksonProtobufMarshalUnmarshalPojoTest.java
@@ -35,7 +35,6 @@ public class JacksonProtobufMarshalUnmarshalPojoTest extends CamelTestSupport {
public void testMarshalUnmarshalPojo() throws Exception {
MockEndpoint mock1 = getMockEndpoint("mock:serialized");
mock1.expectedMessageCount(1);
- mock1.message(0).body().isInstanceOf(byte[].class);
Pojo pojo = new Pojo("Hello");
template.sendBody("direct:pojo", pojo);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java
similarity index 96%
copy from components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
copy to components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java
index 212ef6c9917..e3690fff555 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java
@@ -16,10 +16,6 @@
*/
package org.apache.camel.component.jms;
-import java.io.File;
-
-import javax.jms.ConnectionFactory;
-
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.junit5.CamelTestSupport;
@@ -27,23 +23,27 @@ import org.apache.camel.util.FileUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import javax.jms.ConnectionFactory;
+import java.io.File;
+
import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
import static org.junit.jupiter.api.Assertions.assertEquals;
-public class JmsStreamMessageTypeTest extends CamelTestSupport {
+public class JmsStreamMessageTypeNoStreamCachingTest extends CamelTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
- deleteDirectory("target/stream");
+ deleteDirectory("target/nostream");
super.setUp();
}
@Override
protected CamelContext createCamelContext() throws Exception {
CamelContext camelContext = super.createCamelContext();
+ camelContext.setStreamCaching(false);
ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
index 212ef6c9917..c68d6db8c8d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.jms;
import java.io.File;
+import java.io.InputStream;
import javax.jms.ConnectionFactory;
@@ -62,10 +63,7 @@ public class JmsStreamMessageTypeTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Object body = getMockEndpoint("mock:result").getReceivedExchanges().get(0).getIn().getBody();
- StreamMessageInputStream is = assertIsInstanceOf(StreamMessageInputStream.class, body);
-
- // no more bytes should be available on the inputstream
- assertEquals(0, is.available());
+ InputStream is = assertIsInstanceOf(InputStream.class, body);
// assert on the content of input versus output file
String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, new File("src/test/data/message1.xml"));
@@ -84,10 +82,7 @@ public class JmsStreamMessageTypeTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Object body = getMockEndpoint("mock:result").getReceivedExchanges().get(0).getIn().getBody();
- StreamMessageInputStream is = assertIsInstanceOf(StreamMessageInputStream.class, body);
-
- // no more bytes should be available on the inputstream
- assertEquals(0, is.available());
+ InputStream is = assertIsInstanceOf(InputStream.class, body);
// assert on the content of input versus output file
String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, new File("src/test/data/message1.txt"));
diff --git a/components/camel-lzf/src/test/java/org/apache/camel/dataformat/lzf/LZFDataFormatTest.java b/components/camel-lzf/src/test/java/org/apache/camel/dataformat/lzf/LZFDataFormatTest.java
index a334e1c9c54..41631af898e 100644
--- a/components/camel-lzf/src/test/java/org/apache/camel/dataformat/lzf/LZFDataFormatTest.java
+++ b/components/camel-lzf/src/test/java/org/apache/camel/dataformat/lzf/LZFDataFormatTest.java
@@ -89,6 +89,6 @@ public class LZFDataFormatTest extends CamelTestSupport {
}
private byte[] sendText(String destination) throws Exception {
- return (byte[]) template.requestBody(destination, TEXT.getBytes("UTF-8"));
+ return template.requestBody(destination, TEXT.getBytes("UTF-8"), byte[].class);
}
}
diff --git a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaConverterLoader.java b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaConverterLoader.java
index 3e876dbf800..811d109bc65 100644
--- a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaConverterLoader.java
+++ b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaConverterLoader.java
@@ -51,6 +51,8 @@ public final class MinaConverterLoader implements TypeConverterLoader, CamelCont
(type, exchange, value) -> org.apache.camel.component.mina.MinaConverter.toString((org.apache.mina.core.buffer.IoBuffer) value, exchange));
addTypeConverter(registry, org.apache.mina.core.buffer.IoBuffer.class, byte[].class, false,
(type, exchange, value) -> org.apache.camel.component.mina.MinaConverter.toIoBuffer((byte[]) value));
+ addTypeConverter(registry, org.apache.mina.core.buffer.IoBuffer.class, org.apache.camel.StreamCache.class, false,
+ (type, exchange, value) -> org.apache.camel.component.mina.MinaConverter.toIoBuffer((org.apache.camel.StreamCache) value, exchange));
}
private static void addTypeConverter(TypeConverterRegistry registry, Class<?> toType, Class<?> fromType, boolean allowNull, SimpleTypeConverter.ConversionMethod method) {
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java
index 8f7b2735c45..73548c81271 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConverter.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.mina;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInput;
@@ -23,6 +24,9 @@ import java.io.ObjectInputStream;
import org.apache.camel.Converter;
import org.apache.camel.Exchange;
+import org.apache.camel.StreamCache;
+import org.apache.camel.TypeConverter;
+import org.apache.camel.converter.stream.ByteArrayInputStreamCache;
import org.apache.mina.core.buffer.IoBuffer;
/**
@@ -67,4 +71,10 @@ public final class MinaConverter {
buf.put(bytes);
return buf;
}
+
+ @Converter
+ public static IoBuffer toIoBuffer(StreamCache cache, Exchange exchange) throws Exception {
+ byte[] arr = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, exchange, cache);
+ return toIoBuffer(arr);
+ }
}
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaHelper.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaHelper.java
index 683eacddcbc..12d31002121 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaHelper.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaHelper.java
@@ -18,11 +18,16 @@ package org.apache.camel.component.mina;
import org.apache.camel.CamelExchangeException;
import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.StreamCache;
+import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.future.WriteFuture;
import org.apache.mina.core.session.IoSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+
/**
* Helper class used internally by camel-mina using Apache MINA.
*/
@@ -47,6 +52,16 @@ public final class MinaHelper {
*/
public static void writeBody(IoSession session, Object body, Exchange exchange, long writeTimeout)
throws CamelExchangeException {
+
+ // if stream cached then mina needs to use byte array instead
+ if (body instanceof StreamCache) {
+ try {
+ body = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, exchange, body);
+ } catch (NoTypeConversionAvailableException e) {
+ throw new CamelExchangeException("Error converting body to byte[]", exchange, e);
+ }
+ }
+
// the write operation is asynchronous. Use WriteFuture to wait until the session has been written
WriteFuture future = session.write(body);
// must use a timeout as in some very high performance scenarios a write can cause thread hanging forever
diff --git a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapDontIgnoreTest.java b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapDontIgnoreTest.java
index 74bbfb2ccb6..cd613e4d218 100644
--- a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapDontIgnoreTest.java
+++ b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapDontIgnoreTest.java
@@ -78,7 +78,7 @@ public class SoapToSoapDontIgnoreTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Exchange result = endpoint.assertExchangeReceived(0);
- byte[] body = (byte[]) result.getIn().getBody();
+ byte[] body = result.getIn().getBody(byte[].class);
InputStream stream = new ByteArrayInputStream(body);
SOAPMessage request = MessageFactory.newInstance().createMessage(null, stream);
assertTrue(null != request.getSOAPHeader()
diff --git a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapIgnoreTest.java b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapIgnoreTest.java
index 89c12fdb80d..6c02360ac76 100644
--- a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapIgnoreTest.java
+++ b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapIgnoreTest.java
@@ -78,7 +78,7 @@ public class SoapToSoapIgnoreTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Exchange result = endpoint.assertExchangeReceived(0);
- byte[] body = (byte[]) result.getIn().getBody();
+ byte[] body = result.getIn().getBody(byte[].class);
InputStream stream = new ByteArrayInputStream(body);
SOAPMessage request = MessageFactory.newInstance().createMessage(null, stream);
assertTrue(null == request.getSOAPHeader()
diff --git a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapSingleDataFormatterTest.java b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapSingleDataFormatterTest.java
index 848a367546b..f2bf9bda5a5 100644
--- a/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapSingleDataFormatterTest.java
+++ b/components/camel-soap/src/test/java/org/apache/camel/dataformat/soap/SoapToSoapSingleDataFormatterTest.java
@@ -71,7 +71,7 @@ public class SoapToSoapSingleDataFormatterTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Exchange result = endpoint.assertExchangeReceived(0);
- byte[] body = (byte[]) result.getIn().getBody();
+ byte[] body = result.getIn().getBody(byte[].class);
InputStream stream = new ByteArrayInputStream(body);
SOAPMessage request = MessageFactory.newInstance().createMessage(null, stream);
assertTrue(null != request.getSOAPHeader()
diff --git a/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarElementInputStreamWrapper.java b/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarElementInputStreamWrapper.java
index 90a271d45ea..d6a8db2be98 100644
--- a/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarElementInputStreamWrapper.java
+++ b/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarElementInputStreamWrapper.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.dataformat.tarfile;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -43,4 +45,19 @@ public class TarElementInputStreamWrapper extends BufferedInputStream {
in = input;
}
}
+
+ @Override
+ public synchronized int available() throws IOException {
+ if (in instanceof TarArchiveInputStream) {
+ TarArchiveInputStream tai = (TarArchiveInputStream) in;
+ if (tai.getCurrentEntry() != null) {
+ // avoid NPE in TarArchiveInputStream.available which
+ // only works if there is a current entry
+ return tai.available();
+ } else {
+ return 0;
+ }
+ }
+ return super.available();
+ }
}
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java
index 261c7e12b0d..3819b9039d9 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java
@@ -53,7 +53,7 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertEquals(exchange.getIn().getMessageId() + ".tar", exchange.getIn().getHeader(FILE_NAME));
- assertArrayEquals(getTaredText(exchange.getIn().getMessageId()), (byte[]) exchange.getIn().getBody());
+ assertArrayEquals(getTaredText(exchange.getIn().getMessageId()), exchange.getIn().getBody(byte[].class));
}
@Test
@@ -67,7 +67,7 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
assertMockEndpointsSatisfied();
Exchange exchange = mock.getReceivedExchanges().get(0);
- assertArrayEquals(getTaredText("poem.txt"), (byte[]) exchange.getIn().getBody());
+ assertArrayEquals(getTaredText("poem.txt"), exchange.getIn().getBody(byte[].class));
}
@Test
@@ -91,7 +91,7 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertEquals(exchange.getIn().getMessageId(), exchange.getIn().getHeader(FILE_NAME));
- assertArrayEquals(TEXT.getBytes(UTF_8), (byte[]) exchange.getIn().getBody());
+ assertArrayEquals(TEXT.getBytes(UTF_8), exchange.getIn().getBody(byte[].class));
}
@Test
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java
index 2ea3f3b1485..c614277eab3 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java
@@ -73,7 +73,7 @@ public class TarFileDataFormatTest extends CamelTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertEquals(exchange.getIn().getMessageId() + ".tar", exchange.getIn().getHeader(FILE_NAME));
assertTrue(ObjectHelper.equalByteArray(getTaredText(exchange.getIn().getMessageId()),
- (byte[]) exchange.getIn().getBody()));
+ exchange.getIn().getBody(byte[].class)));
}
@Test
@@ -87,7 +87,7 @@ public class TarFileDataFormatTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Exchange exchange = mock.getReceivedExchanges().get(0);
- assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), (byte[]) exchange.getIn().getBody()));
+ assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), exchange.getIn().getBody(byte[].class)));
}
@Test
@@ -101,7 +101,7 @@ public class TarFileDataFormatTest extends CamelTestSupport {
assertMockEndpointsSatisfied();
Exchange exchange = mock.getReceivedExchanges().get(0);
- assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), (byte[]) exchange.getIn().getBody()));
+ assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), exchange.getIn().getBody(byte[].class)));
}
@Test
@@ -118,7 +118,7 @@ public class TarFileDataFormatTest extends CamelTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertTrue(ObjectHelper.equalByteArray(getTaredTextInFolder("poems/", "poems/poem.txt"),
- (byte[]) exchange.getIn().getBody()));
+ exchange.getIn().getBody(byte[].class)));
}
@Test
@@ -150,7 +150,7 @@ public class TarFileDataFormatTest extends CamelTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertEquals(exchange.getIn().getMessageId(), exchange.getIn().getHeader(FILE_NAME));
- assertEquals(TEXT, new String((byte[]) exchange.getIn().getBody(), StandardCharsets.UTF_8));
+ assertEquals(TEXT, new String(exchange.getIn().getBody(byte[].class), StandardCharsets.UTF_8));
}
@Test
diff --git a/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/GzipDataFormatTest.java b/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/GzipDataFormatTest.java
index 4cf1118905d..09e5684f07b 100644
--- a/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/GzipDataFormatTest.java
+++ b/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/GzipDataFormatTest.java
@@ -45,7 +45,7 @@ public class GzipDataFormatTest extends CamelTestSupport {
}
private byte[] sendText() {
- return (byte[]) template.requestBody("direct:start", TEXT.getBytes(StandardCharsets.UTF_8));
+ return template.requestBody("direct:start", TEXT.getBytes(StandardCharsets.UTF_8), byte[].class);
}
@Test
diff --git a/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/ZipDeflaterDataFormatTest.java b/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/ZipDeflaterDataFormatTest.java
index 27098a8bb61..ab14f844c14 100644
--- a/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/ZipDeflaterDataFormatTest.java
+++ b/components/camel-zip-deflater/src/test/java/org/apache/camel/dataformat/deflater/ZipDeflaterDataFormatTest.java
@@ -33,6 +33,7 @@ import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -131,7 +132,7 @@ public class ZipDeflaterDataFormatTest extends CamelTestSupport {
sendText();
result.assertIsSatisfied();
List<Exchange> exchangeList = result.getExchanges();
- assertTrue(exchangeList.get(0).getIn().getBody() instanceof byte[]);
+ exchangeList.get(0).getIn().getBody(byte[].class);
}
@Test
diff --git a/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java b/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java
index a36044f6ab2..635515bae3c 100644
--- a/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java
+++ b/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java
@@ -99,7 +99,7 @@ public class ZipFileDataFormatTest extends CamelTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertEquals(exchange.getIn().getMessageId() + ".zip", exchange.getIn().getHeader(FILE_NAME));
- assertArrayEquals(getZippedText(exchange.getIn().getMessageId()), (byte[]) exchange.getIn().getBody());
+ assertArrayEquals(getZippedText(exchange.getIn().getMessageId()), exchange.getIn().getBody(byte[].class));
}
@Test
@@ -183,7 +183,7 @@ public class ZipFileDataFormatTest extends CamelTestSupport {
Exchange exchange = mock.getReceivedExchanges().get(0);
assertEquals(exchange.getIn().getMessageId(), exchange.getIn().getHeader(FILE_NAME));
- assertEquals(TEXT, new String((byte[]) exchange.getIn().getBody(), "UTF-8"));
+ assertEquals(TEXT, new String(exchange.getIn().getBody(byte[].class), "UTF-8"));
}
@Test
diff --git a/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java b/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java
index ed9d0cbc853..16d305f247e 100644
--- a/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java
+++ b/core/camel-xml-jaxp/src/generated/java/org/apache/camel/converter/jaxp/CamelXmlJaxpBulkConverterLoader.java
@@ -37,7 +37,7 @@ public final class CamelXmlJaxpBulkConverterLoader implements TypeConverterLoade
@Override
public int size() {
- return 92;
+ return 94;
}
@Override
@@ -191,6 +191,9 @@ public final class CamelXmlJaxpBulkConverterLoader implements TypeConverterLoade
if (value instanceof org.w3c.dom.Document) {
return getXmlConverter().toSource((org.w3c.dom.Document) value);
}
+ if (value instanceof org.apache.camel.StreamCache) {
+ return getXmlConverter().toSource((org.apache.camel.StreamCache) value, exchange);
+ }
} else if (to == javax.xml.transform.dom.DOMSource.class) {
if (value instanceof org.w3c.dom.Document) {
return getXmlConverter().toDOMSource((org.w3c.dom.Document) value);
@@ -342,6 +345,9 @@ public final class CamelXmlJaxpBulkConverterLoader implements TypeConverterLoade
return obj;
}
}
+ if (value instanceof org.apache.camel.StreamCache) {
+ return getXmlConverter().toDOMDocument((org.apache.camel.StreamCache) value, exchange);
+ }
} else if (to == org.w3c.dom.Element.class) {
if (value instanceof javax.xml.transform.Source) {
return getXmlConverter().toDOMElement((javax.xml.transform.Source) value);
@@ -513,6 +519,9 @@ public final class CamelXmlJaxpBulkConverterLoader implements TypeConverterLoade
if (from == org.w3c.dom.Document.class) {
return this;
}
+ if (from == org.apache.camel.StreamCache.class) {
+ return this;
+ }
} else if (to == javax.xml.transform.dom.DOMSource.class) {
if (from == org.w3c.dom.Document.class) {
return this;
@@ -659,6 +668,9 @@ public final class CamelXmlJaxpBulkConverterLoader implements TypeConverterLoade
if (from == org.w3c.dom.NodeList.class) {
return this;
}
+ if (from == org.apache.camel.StreamCache.class) {
+ return this;
+ }
} else if (to == org.w3c.dom.Element.class) {
if (from == javax.xml.transform.Source.class) {
return this;
diff --git a/core/camel-xml-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java b/core/camel-xml-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
index 750b4e20e20..6fd77812f48 100644
--- a/core/camel-xml-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
+++ b/core/camel-xml-jaxp/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
@@ -56,6 +56,7 @@ import javax.xml.transform.stax.StAXSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import org.apache.camel.StreamCache;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -854,6 +855,19 @@ public class XmlConverter {
return is;
}
+ @Converter(order = 64)
+ public Source toSource(StreamCache cache, Exchange exchange) {
+ byte[] arr = exchange.getContext().getTypeConverter().convertTo(byte[].class, exchange, cache);
+ return toSource(arr);
+ }
+
+ @Converter(order = 65)
+ public Document toDOMDocument(StreamCache cache, Exchange exchange)
+ throws IOException, SAXException, ParserConfigurationException {
+ byte[] arr = exchange.getContext().getTypeConverter().convertTo(byte[].class, exchange, cache);
+ return toDOMDocument(arr, exchange);
+ }
+
/**
* Converts the given Document to into text
*