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 7f3433f6506 CAMEL-19985: Smooks component
7f3433f6506 is described below

commit 7f3433f65061b07e7234d50e1e271e79a29435f1
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Jun 3 12:40:39 2024 +0200

    CAMEL-19985: Smooks component
---
 components/camel-smooks/pom.xml                           |  4 ----
 .../component/smooks/converter/SourceConverterLoader.java |  4 ++--
 .../camel/component/smooks/converter/SourceConverter.java | 15 +++++++++++----
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/components/camel-smooks/pom.xml b/components/camel-smooks/pom.xml
index fe2c481934c..37ef48a763f 100644
--- a/components/camel-smooks/pom.xml
+++ b/components/camel-smooks/pom.xml
@@ -52,10 +52,6 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-support</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-file</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.smooks</groupId>
             <artifactId>smooks-core</artifactId>
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 72cbcb7b288..ab1c69772f8 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
@@ -46,8 +46,8 @@ 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.component.file.GenericFile.class, false,
-            (type, exchange, value) -> 
org.apache.camel.component.smooks.converter.SourceConverter.toStreamSource((org.apache.camel.component.file.GenericFile)
 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,
             (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,
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 a411b4a784a..d44bf129246 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
@@ -23,7 +23,8 @@ import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.camel.Converter;
-import org.apache.camel.component.file.GenericFile;
+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;
@@ -57,9 +58,15 @@ public class SourceConverter {
         return new JavaSource(result.getResultMap().values());
     }
 
-    @Converter
-    public static Source toStreamSource(GenericFile<File> genericFile) {
-        return new StreamSource(genericFile.getFile());
+    @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);
+        }
     }
 
 }

Reply via email to