diff --git a/core/camel-base/src/generated/java/org/apache/camel/converter/NIOConverterLoader.java b/core/camel-base/src/generated/java/org/apache/camel/converter/NIOConverterLoader.java index 4806ace488aeb..70e4f16dc90c6 100644 --- a/core/camel-base/src/generated/java/org/apache/camel/converter/NIOConverterLoader.java +++ b/core/camel-base/src/generated/java/org/apache/camel/converter/NIOConverterLoader.java @@ -33,6 +33,8 @@ private void registerConverters(TypeConverterRegistry registry) { (type, exchange, value) -> org.apache.camel.converter.NIOConverter.toString((java.nio.ByteBuffer) value, exchange)); addTypeConverter(registry, java.nio.ByteBuffer.class, byte[].class, false, (type, exchange, value) -> org.apache.camel.converter.NIOConverter.toByteBuffer((byte[]) value)); + addTypeConverter(registry, java.nio.ByteBuffer.class, java.io.ByteArrayOutputStream.class, false, + (type, exchange, value) -> org.apache.camel.converter.NIOConverter.toByteBuffer((java.io.ByteArrayOutputStream) value)); addTypeConverter(registry, java.nio.ByteBuffer.class, java.io.File.class, false, (type, exchange, value) -> org.apache.camel.converter.NIOConverter.toByteBuffer((java.io.File) value)); addTypeConverter(registry, java.nio.ByteBuffer.class, java.lang.Double.class, false, diff --git a/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java b/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java index aabc83ddcb0ea..c3279f94a9672 100644 --- a/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java +++ b/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java @@ -16,6 +16,7 @@ */ package org.apache.camel.converter; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -63,6 +64,11 @@ public static ByteBuffer toByteBuffer(byte[] data) { return ByteBuffer.wrap(data); } + @Converter + public static ByteBuffer toByteBuffer(ByteArrayOutputStream baos) { + return ByteBuffer.wrap(baos.toByteArray()); + } + @Converter public static ByteBuffer toByteBuffer(File file) throws IOException { InputStream in = null; diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java index 988b9442d4e08..907b76b8f5e5d 100644 --- a/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java @@ -16,6 +16,7 @@ */ package org.apache.camel.converter; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.InputStream; import java.nio.ByteBuffer; @@ -79,6 +80,13 @@ public void testToByteBuffer() { assertNotNull(bb); } + @Test + public void testToByteBufferByteArrayOutputStream() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + baos.write(72); + assertEquals(72, NIOConverter.toByteBuffer(baos).get()); + } + @Test public void testToByteBufferString() { ByteBuffer bb = NIOConverter.toByteBuffer("Hello", null);