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
The following commit(s) were added to refs/heads/main by this push:
new cd3268d3cab CAMEL-213670: Upgrade to smooks 2.0.1
cd3268d3cab is described below
commit cd3268d3cab381172428df472f7262d9343bdd6c
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Oct 22 09:40:28 2024 +0200
CAMEL-213670: Upgrade to smooks 2.0.1
---
...nverterLoader.java => SinkConverterLoader.java} | 30 ++++++------
.../smooks/converter/SourceConverterLoader.java | 18 ++++----
.../services/org/apache/camel/TypeConverterLoader | 2 +-
.../camel/component/smooks/SmooksProcessor.java | 41 ++++++++++------
.../{ResultConverter.java => SinkConverter.java} | 54 +++++++++-------------
.../smooks/converter/SourceConverter.java | 45 ++++++++++--------
.../component/smooks/SmooksProcessorTest.java | 21 ++++-----
...ltConverterTest.java => SinkConverterTest.java} | 20 ++++----
.../smooks/converter/SourceConverterTest.java | 2 +-
.../test/resources/edi-to-xml-smooks-config.xml | 2 +-
.../ROOT/pages/camel-4x-upgrade-guide-4_9.adoc | 11 ++---
parent/pom.xml | 2 +-
12 files changed, 127 insertions(+), 121 deletions(-)
diff --git
a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/ResultConverterLoader.java
b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SinkConverterLoader.java
similarity index 70%
rename from
components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/ResultConverterLoader.java
rename to
components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SinkConverterLoader.java
index 2280a868479..244eb11a9a2 100644
---
a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/ResultConverterLoader.java
+++
b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SinkConverterLoader.java
@@ -21,11 +21,11 @@ import org.apache.camel.util.DoubleMap;
@Generated("org.apache.camel.maven.packaging.TypeConverterLoaderGeneratorMojo")
@SuppressWarnings("unchecked")
@DeferredContextBinding
-public final class ResultConverterLoader implements TypeConverterLoader,
CamelContextAware {
+public final class SinkConverterLoader implements TypeConverterLoader,
CamelContextAware {
private CamelContext camelContext;
- public ResultConverterLoader() {
+ public SinkConverterLoader() {
}
@Override
@@ -45,18 +45,18 @@ public final class ResultConverterLoader implements
TypeConverterLoader, CamelCo
}
private void registerConverters(TypeConverterRegistry registry) {
- addTypeConverter(registry, java.lang.Double.class,
org.smooks.io.payload.JavaResult.ResultMap.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.ResultConverter.toDouble((org.smooks.io.payload.JavaResult.ResultMap)
value));
- addTypeConverter(registry, java.lang.Integer.class,
org.smooks.io.payload.JavaResult.ResultMap.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.ResultConverter.toInteger((org.smooks.io.payload.JavaResult.ResultMap)
value));
- addTypeConverter(registry, java.lang.String.class,
org.smooks.io.payload.StringResult.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.ResultConverter.toString((org.smooks.io.payload.StringResult)
value));
- addTypeConverter(registry, java.util.List.class,
org.smooks.io.payload.JavaResult.ResultMap.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.ResultConverter.toList((org.smooks.io.payload.JavaResult.ResultMap)
value, exchange));
- addTypeConverter(registry,
javax.xml.transform.stream.StreamSource.class,
org.smooks.io.payload.StringResult.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.ResultConverter.toStreamSource((org.smooks.io.payload.StringResult)
value));
- addTypeConverter(registry, org.w3c.dom.Node.class,
javax.xml.transform.dom.DOMResult.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.ResultConverter.toDocument((javax.xml.transform.dom.DOMResult)
value));
+ addTypeConverter(registry, java.lang.Double.class,
org.smooks.io.sink.JavaSink.ResultMap.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SinkConverter.toDouble((org.smooks.io.sink.JavaSink.ResultMap)
value));
+ addTypeConverter(registry, java.lang.Integer.class,
org.smooks.io.sink.JavaSink.ResultMap.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SinkConverter.toInteger((org.smooks.io.sink.JavaSink.ResultMap)
value));
+ addTypeConverter(registry, java.lang.String.class,
org.smooks.io.sink.StringSink.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SinkConverter.toString((org.smooks.io.sink.StringSink)
value));
+ addTypeConverter(registry, java.util.List.class,
org.smooks.io.sink.JavaSink.ResultMap.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SinkConverter.toList((org.smooks.io.sink.JavaSink.ResultMap)
value, exchange));
+ addTypeConverter(registry, org.smooks.io.source.StringSource.class,
org.smooks.io.sink.StringSink.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SinkConverter.toStringSource((org.smooks.io.sink.StringSink)
value));
+ addTypeConverter(registry, org.w3c.dom.Node.class,
org.smooks.io.sink.DOMSink.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SinkConverter.toDocument((org.smooks.io.sink.DOMSink)
value));
}
private static void addTypeConverter(TypeConverterRegistry registry,
Class<?> toType, Class<?> fromType, boolean allowNull,
SimpleTypeConverter.ConversionMethod method) {
@@ -64,7 +64,7 @@ public final class ResultConverterLoader implements
TypeConverterLoader, CamelCo
}
private void registerFallbackConverters(TypeConverterRegistry registry) {
- addFallbackTypeConverter(registry, false, false, (type, exchange,
value) ->
org.apache.camel.component.smooks.converter.ResultConverter.convertTo(type,
exchange, value, registry));
+ addFallbackTypeConverter(registry, false, false, (type, exchange,
value) ->
org.apache.camel.component.smooks.converter.SinkConverter.convertTo(type,
exchange, value, registry));
}
private static void addFallbackTypeConverter(TypeConverterRegistry
registry, boolean allowNull, boolean canPromote,
SimpleTypeConverter.ConversionMethod method) {
diff --git
a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SourceConverterLoader.java
b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SourceConverterLoader.java
index ab1c69772f8..16504fb65cb 100644
---
a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SourceConverterLoader.java
+++
b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/converter/SourceConverterLoader.java
@@ -44,16 +44,18 @@ public final class SourceConverterLoader implements
TypeConverterLoader, CamelCo
}
private void registerConverters(TypeConverterRegistry registry) {
- addTypeConverter(registry, javax.xml.transform.Source.class,
java.io.InputStream.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toStreamSource((java.io.InputStream)
value));
- addTypeConverter(registry, javax.xml.transform.Source.class,
org.apache.camel.WrappedFile.class, true,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toStreamSource((org.apache.camel.WrappedFile)
value, exchange));
- addTypeConverter(registry, org.smooks.io.payload.JavaSource.class,
java.lang.Object.class, false,
+ addTypeConverter(registry, org.smooks.api.io.Source.class,
org.apache.camel.WrappedFile.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toURISource((org.apache.camel.WrappedFile)
value));
+ addTypeConverter(registry, org.smooks.io.source.JavaSource.class,
java.lang.Object.class, false,
(type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toJavaSource(value));
- addTypeConverter(registry, org.smooks.io.payload.JavaSource.class,
org.smooks.io.payload.JavaResult.class, false,
- (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toJavaSource((org.smooks.io.payload.JavaResult)
value));
- addTypeConverter(registry,
org.smooks.io.payload.JavaSourceWithoutEventStream.class,
java.lang.Object.class, false,
+ addTypeConverter(registry, org.smooks.io.source.JavaSource.class,
org.smooks.io.sink.JavaSink.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toJavaSource((org.smooks.io.sink.JavaSink)
value));
+ addTypeConverter(registry,
org.smooks.io.source.JavaSourceWithoutEventStream.class,
java.lang.Object.class, false,
(type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toJavaSourceWithoutEventStream(value));
+ addTypeConverter(registry, org.smooks.io.source.StreamSource.class,
java.io.InputStream.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toStreamSource((java.io.InputStream)
value));
+ addTypeConverter(registry, org.smooks.io.source.StringSource.class,
java.lang.String.class, false,
+ (type, exchange, value) ->
org.apache.camel.component.smooks.converter.SourceConverter.toStringSource((java.lang.String)
value));
}
private static void addTypeConverter(TypeConverterRegistry registry,
Class<?> toType, Class<?> fromType, boolean allowNull,
SimpleTypeConverter.ConversionMethod method) {
diff --git
a/components/camel-smooks/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
b/components/camel-smooks/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
index 5b76f723f6b..507592d2816 100644
---
a/components/camel-smooks/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
+++
b/components/camel-smooks/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
@@ -1,3 +1,3 @@
# Generated by camel build tools - do NOT edit this file!
-org.apache.camel.component.smooks.converter.ResultConverterLoader
+org.apache.camel.component.smooks.converter.SinkConverterLoader
org.apache.camel.component.smooks.converter.SourceConverterLoader
diff --git
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
index 1464347362a..94e5aa7128a 100644
---
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
+++
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
@@ -20,14 +20,12 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.*;
import java.util.Map.Entry;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamSource;
import org.w3c.dom.Node;
@@ -50,10 +48,16 @@ import org.smooks.api.ExecutionContext;
import org.smooks.api.SmooksException;
import org.smooks.api.TypedKey;
import org.smooks.api.delivery.VisitorAppender;
+import org.smooks.api.io.Sink;
+import org.smooks.api.io.Source;
import org.smooks.api.resource.visitor.Visitor;
import org.smooks.engine.lookup.ExportsLookup;
import org.smooks.engine.report.HtmlReportGenerator;
import org.smooks.io.payload.Exports;
+import org.smooks.io.source.DOMSource;
+import org.smooks.io.source.ReaderSource;
+import org.smooks.io.source.StreamSource;
+import org.smooks.io.source.URLSource;
/**
* Smooks {@link Processor} for Camel.
@@ -109,20 +113,20 @@ public class SmooksProcessor extends ServiceSupport
implements Processor, CamelC
final Exports exports =
smooks.getApplicationContext().getRegistry().lookup(new ExportsLookup());
if (exports.hasExports()) {
- final Result[] results = exports.createResults();
- smooks.filterSource(executionContext, getSource(exchange),
results);
- setResultOnBody(exports, results, exchange);
+ final Sink[] sinks = exports.createSinks();
+ smooks.filterSource(executionContext, getSource(exchange,
executionContext), sinks);
+ setResultOnBody(exports, sinks, exchange);
} else {
- smooks.filterSource(executionContext, getSource(exchange));
+ smooks.filterSource(executionContext, getSource(exchange,
executionContext));
}
} finally {
executionContext.remove(EXCHANGE_TYPED_KEY);
}
}
- protected void setResultOnBody(final Exports exports, final Result[]
results, final Exchange exchange) {
+ protected void setResultOnBody(final Exports exports, final Sink[] sinks,
final Exchange exchange) {
final Message message = exchange.getMessage();
- final List<Object> objects = Exports.extractResults(results, exports);
+ final List<Object> objects = Exports.extractSinks(sinks, exports);
if (objects.size() == 1) {
Object value = objects.get(0);
message.setBody(value);
@@ -144,11 +148,11 @@ public class SmooksProcessor extends ServiceSupport
implements Processor, CamelC
}
}
- private Source getSource(final Exchange exchange) {
+ private Source getSource(final Exchange exchange, ExecutionContext
executionContext) {
Object payload = exchange.getIn().getBody();
if (payload instanceof SAXSource) {
- return new StreamSource((Reader) ((SAXSource)
payload).getXMLReader());
+ return new ReaderSource<>((Reader) ((SAXSource)
payload).getXMLReader());
}
if (payload instanceof Source) {
@@ -160,15 +164,22 @@ public class SmooksProcessor extends ServiceSupport
implements Processor, CamelC
}
if (payload instanceof InputStream) {
- return new StreamSource((InputStream) payload);
+ return new StreamSource<>((InputStream) payload);
}
if (payload instanceof Reader) {
- return new StreamSource((Reader) payload);
+ return new ReaderSource<>((Reader) payload);
}
if (payload instanceof WrappedFile) {
- return new StreamSource((File)
exchange.getIn().getBody(WrappedFile.class).getFile());
+ String systemId
+ = new javax.xml.transform.stream.StreamSource((File)
exchange.getIn().getBody(WrappedFile.class).getFile())
+ .getSystemId();
+ try {
+ return new URLSource(new URL(systemId));
+ } catch (MalformedURLException e) {
+ throw new SmooksException(e);
+ }
}
return exchange.getIn().getBody(Source.class);
diff --git
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/ResultConverter.java
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SinkConverter.java
similarity index 63%
rename from
components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/ResultConverter.java
rename to
components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SinkConverter.java
index c467e81333b..beb66fbd1fe 100644
---
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/ResultConverter.java
+++
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SinkConverter.java
@@ -16,71 +16,68 @@
*/
package org.apache.camel.component.smooks.converter;
-import java.io.StringReader;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import javax.xml.transform.Result;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.stream.StreamSource;
-
import org.w3c.dom.Node;
import org.apache.camel.Converter;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.spi.TypeConverterRegistry;
-import org.smooks.io.payload.JavaResult;
-import org.smooks.io.payload.StringResult;
+import org.smooks.io.sink.DOMSink;
+import org.smooks.io.sink.JavaSink;
+import org.smooks.io.sink.StringSink;
+import org.smooks.io.source.StringSource;
/**
- * ResultConverter converts from different {@link Result} types.
+ * Converts from different {@link org.smooks.api.io.Sink} types.
*/
@Converter(generateLoader = true)
-public class ResultConverter {
+public class SinkConverter {
public static final String SMOOKS_RESULT_KEY = "SmooksResultKeys";
- private ResultConverter() {
+ private SinkConverter() {
}
@Converter
- public static Node toDocument(DOMResult domResult) {
- return domResult.getNode();
+ public static Node toDocument(DOMSink domSink) {
+ return domSink.getNode();
}
@SuppressWarnings("rawtypes")
@Converter
- public static List toList(JavaResult.ResultMap javaResult, Exchange
exchange) {
+ public static List toList(JavaSink.ResultMap javaResult, Exchange
exchange) {
String resultKey = (String) exchange.getProperty(SMOOKS_RESULT_KEY);
if (resultKey != null) {
- return (List) getResultsFromJavaResult(javaResult, resultKey);
+ return (List) getResultsFromJavaSink(javaResult, resultKey);
} else {
- return (List) getSingleObjectFromJavaResult(javaResult);
+ return (List) getSingleObjectFromJavaSink(javaResult);
}
}
@SuppressWarnings("rawtypes")
@Converter
- public static Integer toInteger(JavaResult.ResultMap result) {
- return (Integer) getSingleObjectFromJavaResult(result);
+ public static Integer toInteger(JavaSink.ResultMap result) {
+ return (Integer) getSingleObjectFromJavaSink(result);
}
@SuppressWarnings("rawtypes")
@Converter
- public static Double toDouble(JavaResult.ResultMap result) {
- return (Double) getSingleObjectFromJavaResult(result);
+ public static Double toDouble(JavaSink.ResultMap result) {
+ return (Double) getSingleObjectFromJavaSink(result);
}
@Converter
- public static String toString(StringResult result) {
+ public static String toString(StringSink result) {
return result.getResult();
}
@SuppressWarnings("rawtypes")
- public static Map toMap(JavaResult.ResultMap resultBeans, Exchange
exchange) {
+ public static Map toMap(JavaSink.ResultMap resultBeans, Exchange exchange)
{
Message outMessage = exchange.getOut();
outMessage.setBody(resultBeans);
@@ -93,11 +90,11 @@ public class ResultConverter {
}
@SuppressWarnings("rawtypes")
- private static Object getResultsFromJavaResult(JavaResult.ResultMap
resultMap, String resultKey) {
+ private static Object getResultsFromJavaSink(JavaSink.ResultMap resultMap,
String resultKey) {
return resultMap.get(resultKey);
}
- private static Object
getSingleObjectFromJavaResult(@SuppressWarnings("rawtypes")
JavaResult.ResultMap resultMap) {
+ private static Object
getSingleObjectFromJavaSink(@SuppressWarnings("rawtypes") JavaSink.ResultMap
resultMap) {
if (resultMap.size() == 1) {
return resultMap.values().iterator().next();
}
@@ -105,20 +102,15 @@ public class ResultConverter {
}
@Converter
- public static StreamSource toStreamSource(StringResult stringResult) {
+ public static StringSource toStringSource(StringSink stringResult) {
String result = stringResult.getResult();
- if (result != null) {
- StringReader stringReader = new StringReader(result);
- return new StreamSource(stringReader);
- }
-
- return null;
+ return new StringSource(result);
}
@SuppressWarnings("rawtypes")
@Converter(fallback = true)
public static <T> T convertTo(Class<T> type, Exchange exchange, Object
value, TypeConverterRegistry registry) {
- if (value instanceof JavaResult.ResultMap) {
+ if (value instanceof JavaSink.ResultMap) {
for (Object mapValue : ((Map) value).values()) {
if (type.isInstance(mapValue)) {
return type.cast(mapValue);
diff --git
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
index 47333c9b63b..773bf4127ed 100644
---
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
+++
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
@@ -18,16 +18,19 @@ package org.apache.camel.component.smooks.converter;
import java.io.File;
import java.io.InputStream;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
+import java.net.MalformedURLException;
+import java.net.URL;
import org.apache.camel.Converter;
-import org.apache.camel.Exchange;
import org.apache.camel.WrappedFile;
-import org.smooks.io.payload.JavaResult;
-import org.smooks.io.payload.JavaSource;
-import org.smooks.io.payload.JavaSourceWithoutEventStream;
+import org.smooks.api.SmooksException;
+import org.smooks.api.io.Source;
+import org.smooks.io.sink.JavaSink;
+import org.smooks.io.source.JavaSource;
+import org.smooks.io.source.JavaSourceWithoutEventStream;
+import org.smooks.io.source.StreamSource;
+import org.smooks.io.source.StringSource;
+import org.smooks.io.source.URLSource;
/**
* SourceConverter is a Camel {@link Converter} that converts from different
formats to {@link Source} instances.
@@ -35,6 +38,7 @@ import org.smooks.io.payload.JavaSourceWithoutEventStream;
*/
@Converter(generateLoader = true)
public class SourceConverter {
+
private SourceConverter() {
}
@@ -49,24 +53,27 @@ public class SourceConverter {
}
@Converter
- public static Source toStreamSource(InputStream in) {
- return new StreamSource(in);
+ public static StreamSource toStreamSource(InputStream in) {
+ return new StreamSource<>(in);
}
@Converter
- public static JavaSource toJavaSource(JavaResult result) {
+ public static JavaSource toJavaSource(JavaSink result) {
return new JavaSource(result.getResultMap().values());
}
- @Converter(allowNull = true)
- public static Source toStreamSource(WrappedFile<?> file, Exchange
exchange) throws Exception {
- Object obj = file.getFile();
- if (obj instanceof File f) {
- return new StreamSource(f);
- } else {
- InputStream is =
exchange.getContext().getTypeConverter().mandatoryConvertTo(InputStream.class,
file.getBody());
- return new StreamSource(is);
- }
+ @Converter
+ public static StringSource toStringSource(String string) {
+ return new StringSource(string);
}
+ @Converter
+ public static Source toURISource(WrappedFile<File> genericFile) {
+ String systemId = new javax.xml.transform.stream.StreamSource((File)
genericFile.getBody()).getSystemId();
+ try {
+ return new URLSource(new URL(systemId));
+ } catch (MalformedURLException e) {
+ throw new SmooksException(e);
+ }
+ }
}
diff --git
a/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/SmooksProcessorTest.java
b/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/SmooksProcessorTest.java
index 503728f1e7f..30fc5ad4cf7 100644
---
a/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/SmooksProcessorTest.java
+++
b/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/SmooksProcessorTest.java
@@ -27,8 +27,6 @@ import java.util.Map;
import jakarta.activation.DataHandler;
import jakarta.activation.DataSource;
-import javax.xml.transform.stream.StreamSource;
-
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -45,9 +43,10 @@ import org.smooks.Smooks;
import org.smooks.cartridges.javabean.Bean;
import org.smooks.cartridges.javabean.Value;
import org.smooks.io.payload.Exports;
-import org.smooks.io.payload.JavaResult;
-import org.smooks.io.payload.StringResult;
-import org.smooks.io.payload.StringSource;
+import org.smooks.io.sink.JavaSink;
+import org.smooks.io.sink.StringSink;
+import org.smooks.io.source.StreamSource;
+import org.smooks.io.source.StringSource;
import org.smooks.support.StreamUtils;
import org.xmlunit.builder.DiffBuilder;
@@ -134,7 +133,7 @@ public class SmooksProcessorTest extends CamelTestSupport {
context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
- Smooks smooks = new Smooks().setExports(new
Exports(JavaResult.class));
+ Smooks smooks = new Smooks().setExports(new
Exports(JavaSink.class));
from("direct:a")
.process(new SmooksProcessor(smooks, context)
.addVisitor(new Value(
@@ -161,7 +160,7 @@ public class SmooksProcessorTest extends CamelTestSupport {
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file://target/smooks")
- .process(new SmooksProcessor(new
Smooks().setExports(new Exports(StringResult.class)), context))
+ .process(new SmooksProcessor(new
Smooks().setExports(new Exports(StringSink.class)), context))
.to("mock:a");
}
});
@@ -178,7 +177,7 @@ public class SmooksProcessorTest extends CamelTestSupport {
@Test
public void
testProcessWhenSmooksExportIsJavaResultAndBodyIsVisitedByJavaBeanValue() throws
Exception {
- Smooks smooks = new Smooks().setExports(new Exports(JavaResult.class));
+ Smooks smooks = new Smooks().setExports(new Exports(JavaSink.class));
context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
@@ -197,7 +196,7 @@ public class SmooksProcessorTest extends CamelTestSupport {
@Test
public void
testProcessWhenSmooksExportIsJavaResultAndBodyIsVisitedByMultipleJavaBeanValues()
throws Exception {
- Smooks smooks = new Smooks().setExports(new Exports(JavaResult.class));
+ Smooks smooks = new Smooks().setExports(new Exports(JavaSink.class));
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
@@ -218,7 +217,7 @@ public class SmooksProcessorTest extends CamelTestSupport {
@Test
public void
testProcessWhenSmooksExportIsJavaResultAndBodyIsVisitedByBean() throws
Exception {
- Smooks smooks = new Smooks().setExports(new Exports(JavaResult.class));
+ Smooks smooks = new Smooks().setExports(new Exports(JavaSink.class));
context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
@@ -242,7 +241,7 @@ public class SmooksProcessorTest extends CamelTestSupport {
context.addRoutes(new RouteBuilder() {
public void configure() {
from("direct:a")
- .process(new SmooksProcessor(new
Smooks().setExports(new Exports(StringResult.class)), context))
+ .process(new SmooksProcessor(new
Smooks().setExports(new Exports(StringSink.class)), context))
.to("direct:b");
from("direct:b").convertBodyTo(String.class).process(new
DirectBProcessor());
diff --git
a/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/ResultConverterTest.java
b/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SinkConverterTest.java
similarity index 73%
rename from
components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/ResultConverterTest.java
rename to
components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SinkConverterTest.java
index 08d3e52cb9d..ebb673f9354 100644
---
a/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/ResultConverterTest.java
+++
b/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SinkConverterTest.java
@@ -17,19 +17,17 @@
package org.apache.camel.component.smooks.converter;
import java.io.BufferedReader;
-import java.io.StringWriter;
-
-import javax.xml.transform.stream.StreamSource;
import org.apache.camel.TypeConverter;
import org.apache.camel.impl.DefaultCamelContext;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.smooks.io.payload.StringResult;
+import org.smooks.io.sink.StringSink;
+import org.smooks.io.source.ReaderSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
-public class ResultConverterTest {
+public class SinkConverterTest {
private TypeConverter typeConverter;
@@ -41,19 +39,17 @@ public class ResultConverterTest {
@Test
public void convertStringResultToStreamSource() throws Exception {
- StringResult stringResult = createStringResult("Bajja");
+ StringSink stringResult = createStringSink("Bajja");
- StreamSource streamSource =
typeConverter.convertTo(StreamSource.class, stringResult);
+ ReaderSource<?> streamSource =
typeConverter.convertTo(ReaderSource.class, stringResult);
BufferedReader reader = new BufferedReader(streamSource.getReader());
assertEquals("Bajja", reader.readLine());
}
- private StringResult createStringResult(String string) {
- StringWriter stringWriter = new StringWriter();
- stringWriter.write(string);
- StringResult stringResult = new StringResult();
- stringResult.setWriter(stringWriter);
+ private StringSink createStringSink(String string) {
+ StringSink stringResult = new StringSink();
+ stringResult.getStringWriter().write(string);
return stringResult;
}
diff --git
a/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SourceConverterTest.java
b/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SourceConverterTest.java
index fdc52368d11..ba93c5b2ce8 100644
---
a/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SourceConverterTest.java
+++
b/components/camel-smooks/src/test/java/org/apache/camel/component/smooks/converter/SourceConverterTest.java
@@ -23,7 +23,7 @@ import org.apache.camel.TypeConverter;
import org.apache.camel.impl.DefaultCamelContext;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.smooks.io.payload.JavaSourceWithoutEventStream;
+import org.smooks.io.source.JavaSourceWithoutEventStream;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git
a/components/camel-smooks/src/test/resources/edi-to-xml-smooks-config.xml
b/components/camel-smooks/src/test/resources/edi-to-xml-smooks-config.xml
index 82a5641a4e2..6d7e90daaa9 100644
--- a/components/camel-smooks/src/test/resources/edi-to-xml-smooks-config.xml
+++ b/components/camel-smooks/src/test/resources/edi-to-xml-smooks-config.xml
@@ -29,7 +29,7 @@
compositeDataElementSeparator="^"/>
<core:exports>
- <core:result type="javax.xml.transform.dom.DOMResult"/>
+ <core:result type="org.smooks.io.sink.DOMSink"/>
</core:exports>
</smooks-resource-list>
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc
index 7f63a78c87d..45ba2b3da35 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_9.adoc
@@ -34,6 +34,11 @@ The `camel-opentelemetry` component has had significant bug
fixes to handle span
better when Camel route messages synchronously and asynchronously. This
component should also work better
on Spring Boot.
+=== camel-smooks
+
+Upgraded Smooks from 2.0.0-RC4 to 2.0.1 which has
+https://www.smooks.org/documentation/#migrating_from_smooks_1_7_to_2_0[API
breaking changes] in Smooks.
+
=== camel-hashicorp-vault properties function
The syntax for retrieving a single field of a secret has been changed.
@@ -133,9 +138,3 @@ The following modules has been removed:
* camel-kotlin-dsl
* camel-kotlin-api
-
-=== Deprecated Components
-
-The following components that were marked as deprecated:
-
-*
diff --git a/parent/pom.xml b/parent/pom.xml
index 0c4a85ad172..91ce169e991 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -450,7 +450,7 @@
<smallrye-health-version>4.1.0</smallrye-health-version>
<smallrye-fault-tolerance-version>6.5.0</smallrye-fault-tolerance-version>
<smbj-version>0.13.0</smbj-version>
- <smooks-version>2.0.0-RC4</smooks-version>
+ <smooks-version>2.0.1</smooks-version>
<snakeyaml-version>2.3</snakeyaml-version>
<snakeyaml-engine-version>2.8</snakeyaml-engine-version>
<snmp4j-version>3.8.2</snmp4j-version>