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 2b8b47d70c7 CAMEL-21398: Smooks autowire SmooksFactory.
2b8b47d70c7 is described below
commit 2b8b47d70c7d0bf396a2a05f77435b602d44865c
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Oct 30 10:11:17 2024 +0100
CAMEL-21398: Smooks autowire SmooksFactory.
---
.../org/apache/camel/catalog/components/smooks.json | 3 ++-
.../component/smooks/SmooksComponentConfigurer.java | 11 +++++++++++
.../org/apache/camel/component/smooks/smooks.json | 3 ++-
.../apache/camel/component/smooks/SmooksComponent.java | 17 +++++++++++++++++
.../apache/camel/component/smooks/SmooksProcessor.java | 11 +++++++++--
.../camel/dataformat/smooks/SmooksDataFormat.java | 5 +++--
.../component/dsl/SmooksComponentBuilderFactory.java | 17 +++++++++++++++++
7 files changed, 61 insertions(+), 6 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smooks.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smooks.json
index 29535b928ee..3eeb420617c 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smooks.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smooks.json
@@ -25,7 +25,8 @@
},
"componentProperties": {
"lazyStartProducer": { "index": 0, "kind": "property", "displayName":
"Lazy Start Producer", "group": "producer", "label": "producer", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": false, "description":
"Whether the producer should be started lazy (on the first message). By
starting lazy you can use this to allow CamelContext and routes to startup in
situations where a producer may otherwise fail [...]
- "autowiredEnabled": { "index": 1, "kind": "property", "displayName":
"Autowired Enabled", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Whether autowiring is enabled. This is used for automatic autowiring options
(the option must be marked as autowired) by looking up in the registry to find
if there is a single instance of matching t [...]
+ "autowiredEnabled": { "index": 1, "kind": "property", "displayName":
"Autowired Enabled", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Whether autowiring is enabled. This is used for automatic autowiring options
(the option must be marked as autowired) by looking up in the registry to find
if there is a single instance of matching t [...]
+ "smooksFactory": { "index": 2, "kind": "property", "displayName": "Smooks
Factory", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "org.smooks.SmooksFactory", "deprecated": false,
"autowired": true, "secret": false, "description": "To use a custom factory for
creating Smooks." }
},
"properties": {
"smooksConfig": { "index": 0, "kind": "path", "displayName": "Smooks
Config", "group": "producer", "label": "", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"description": "Path to the Smooks configuration file" },
diff --git
a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksComponentConfigurer.java
b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksComponentConfigurer.java
index 5ab86eb2b31..a84d7fb1e0b 100644
---
a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksComponentConfigurer.java
+++
b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksComponentConfigurer.java
@@ -27,10 +27,17 @@ public class SmooksComponentConfigurer extends
PropertyConfigurerSupport impleme
case "autowiredEnabled":
target.setAutowiredEnabled(property(camelContext, boolean.class, value));
return true;
case "lazystartproducer":
case "lazyStartProducer":
target.setLazyStartProducer(property(camelContext, boolean.class, value));
return true;
+ case "smooksfactory":
+ case "smooksFactory": target.setSmooksFactory(property(camelContext,
org.smooks.SmooksFactory.class, value)); return true;
default: return false;
}
}
+ @Override
+ public String[] getAutowiredNames() {
+ return new String[]{"smooksFactory"};
+ }
+
@Override
public Class<?> getOptionType(String name, boolean ignoreCase) {
switch (ignoreCase ? name.toLowerCase() : name) {
@@ -38,6 +45,8 @@ public class SmooksComponentConfigurer extends
PropertyConfigurerSupport impleme
case "autowiredEnabled": return boolean.class;
case "lazystartproducer":
case "lazyStartProducer": return boolean.class;
+ case "smooksfactory":
+ case "smooksFactory": return org.smooks.SmooksFactory.class;
default: return null;
}
}
@@ -50,6 +59,8 @@ public class SmooksComponentConfigurer extends
PropertyConfigurerSupport impleme
case "autowiredEnabled": return target.isAutowiredEnabled();
case "lazystartproducer":
case "lazyStartProducer": return target.isLazyStartProducer();
+ case "smooksfactory":
+ case "smooksFactory": return target.getSmooksFactory();
default: return null;
}
}
diff --git
a/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/component/smooks/smooks.json
b/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/component/smooks/smooks.json
index 29535b928ee..3eeb420617c 100644
---
a/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/component/smooks/smooks.json
+++
b/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/component/smooks/smooks.json
@@ -25,7 +25,8 @@
},
"componentProperties": {
"lazyStartProducer": { "index": 0, "kind": "property", "displayName":
"Lazy Start Producer", "group": "producer", "label": "producer", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": false, "description":
"Whether the producer should be started lazy (on the first message). By
starting lazy you can use this to allow CamelContext and routes to startup in
situations where a producer may otherwise fail [...]
- "autowiredEnabled": { "index": 1, "kind": "property", "displayName":
"Autowired Enabled", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Whether autowiring is enabled. This is used for automatic autowiring options
(the option must be marked as autowired) by looking up in the registry to find
if there is a single instance of matching t [...]
+ "autowiredEnabled": { "index": 1, "kind": "property", "displayName":
"Autowired Enabled", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Whether autowiring is enabled. This is used for automatic autowiring options
(the option must be marked as autowired) by looking up in the registry to find
if there is a single instance of matching t [...]
+ "smooksFactory": { "index": 2, "kind": "property", "displayName": "Smooks
Factory", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "org.smooks.SmooksFactory", "deprecated": false,
"autowired": true, "secret": false, "description": "To use a custom factory for
creating Smooks." }
},
"properties": {
"smooksConfig": { "index": 0, "kind": "path", "displayName": "Smooks
Config", "group": "producer", "label": "", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"description": "Path to the Smooks configuration file" },
diff --git
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksComponent.java
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksComponent.java
index 1de22821c99..f7c9697b846 100644
---
a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksComponent.java
+++
b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksComponent.java
@@ -19,12 +19,17 @@ package org.apache.camel.component.smooks;
import java.util.Map;
import org.apache.camel.Endpoint;
+import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;
+import org.smooks.SmooksFactory;
@Component("smooks")
public class SmooksComponent extends DefaultComponent {
+ @Metadata(label = "advanced", autowired = true)
+ private SmooksFactory smooksFactory;
+
protected Endpoint createEndpoint(String uri, String remaining,
Map<String, Object> parameters) throws Exception {
SmooksProcessor smooksProcessor = new SmooksProcessor(remaining,
getCamelContext());
configureSmooksProcessor(smooksProcessor, uri, remaining, parameters);
@@ -39,7 +44,19 @@ public class SmooksComponent extends DefaultComponent {
SmooksProcessor smooksProcessor, String uri, String remaining,
Map<String, Object> parameters)
throws Exception {
+ smooksProcessor.setSmooksFactory(smooksFactory);
setProperties(smooksProcessor, parameters);
+
}
+ public SmooksFactory getSmooksFactory() {
+ return smooksFactory;
+ }
+
+ /**
+ * To use a custom factory for creating Smooks.
+ */
+ public void setSmooksFactory(SmooksFactory smooksFactory) {
+ this.smooksFactory = smooksFactory;
+ }
}
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 36c298b9325..1a318ac6f17 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
@@ -78,6 +78,7 @@ public class SmooksProcessor extends ServiceSupport
implements Processor, CamelC
private static final TypedKey<Exchange> EXCHANGE_TYPED_KEY = TypedKey.of();
private static final Logger LOG =
LoggerFactory.getLogger(SmooksProcessor.class);
+ private SmooksFactory smooksFactory;
private Smooks smooks;
private String configUri;
private String reportPath;
@@ -234,9 +235,15 @@ public class SmooksProcessor extends ServiceSupport
implements Processor, CamelC
this.reportPath = reportPath;
}
+ public SmooksFactory getSmooksFactory() {
+ return smooksFactory;
+ }
+
+ public void setSmooksFactory(SmooksFactory smooksFactory) {
+ this.smooksFactory = smooksFactory;
+ }
+
private Smooks createSmooks() {
- final SmooksFactory smooksFactory
- = (SmooksFactory)
camelContext.getRegistry().lookupByName(SmooksFactory.class.getName());
return smooksFactory != null ? smooksFactory.createInstance() : new
Smooks();
}
diff --git
a/components/camel-smooks/src/main/java/org/apache/camel/dataformat/smooks/SmooksDataFormat.java
b/components/camel-smooks/src/main/java/org/apache/camel/dataformat/smooks/SmooksDataFormat.java
index e3ff53e1235..fe9728725b5 100644
---
a/components/camel-smooks/src/main/java/org/apache/camel/dataformat/smooks/SmooksDataFormat.java
+++
b/components/camel-smooks/src/main/java/org/apache/camel/dataformat/smooks/SmooksDataFormat.java
@@ -31,6 +31,7 @@ import org.apache.camel.component.smooks.SmooksComponent;
import org.apache.camel.component.smooks.SmooksProcessor;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.annotations.Dataformat;
+import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.processor.MarshalProcessor;
import org.apache.camel.support.processor.UnmarshalProcessor;
import org.apache.camel.support.service.ServiceSupport;
@@ -58,6 +59,7 @@ import org.smooks.io.source.StreamSource;
*/
@Dataformat("smooks")
public class SmooksDataFormat extends ServiceSupport implements DataFormat,
CamelContextAware {
+
private Smooks smooks;
private CamelContext camelContext;
private String smooksConfig;
@@ -123,8 +125,7 @@ public class SmooksDataFormat extends ServiceSupport
implements DataFormat, Came
@Override
public void doStart() {
- final SmooksFactory smooksFactory
- = (SmooksFactory)
camelContext.getRegistry().lookupByName(SmooksFactory.class.getName());
+ final SmooksFactory smooksFactory =
CamelContextHelper.findSingleByType(camelContext, SmooksFactory.class);
try {
if (smooksFactory != null) {
smooks = smooksFactory.createInstance(smooksConfig);
diff --git
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmooksComponentBuilderFactory.java
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmooksComponentBuilderFactory.java
index 6de19d7fcf4..0f8b56b98e2 100644
---
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmooksComponentBuilderFactory.java
+++
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmooksComponentBuilderFactory.java
@@ -98,6 +98,22 @@ public interface SmooksComponentBuilderFactory {
doSetProperty("autowiredEnabled", autowiredEnabled);
return this;
}
+
+ /**
+ * To use a custom factory for creating Smooks.
+ *
+ * The option is a: <code>org.smooks.SmooksFactory</code>
+ * type.
+ *
+ * Group: advanced
+ *
+ * @param smooksFactory the value to set
+ * @return the dsl builder
+ */
+ default SmooksComponentBuilder smooksFactory(org.smooks.SmooksFactory
smooksFactory) {
+ doSetProperty("smooksFactory", smooksFactory);
+ return this;
+ }
}
class SmooksComponentBuilderImpl
@@ -115,6 +131,7 @@ public interface SmooksComponentBuilderFactory {
switch (name) {
case "lazyStartProducer": ((SmooksComponent)
component).setLazyStartProducer((boolean) value); return true;
case "autowiredEnabled": ((SmooksComponent)
component).setAutowiredEnabled((boolean) value); return true;
+ case "smooksFactory": ((SmooksComponent)
component).setSmooksFactory((org.smooks.SmooksFactory) value); return true;
default: return false;
}
}