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 58584f7f6d616a251f7462c20cd567c600146bd7 Author: Claus Ibsen <[email protected]> AuthorDate: Wed Oct 30 10:03:48 2024 +0100 CAMEL-21398: Smooks is only a producer. --- .../apache/camel/catalog/components/smooks.json | 32 +- .../apache/camel/catalog/dataformats/smooks.json | 4 +- .../org/apache/camel/catalog/models/smooks.json | 4 +- components/camel-smooks/pom.xml | 1 + .../smooks/SmooksComponentConfigurer.java | 6 - .../smooks/SmooksDataFormatConfigurer.java | 27 - .../component/smooks/SmooksEndpointConfigurer.java | 114 ---- .../component/smooks/SmooksEndpointUriFactory.java | 25 +- .../org/apache/camel/component/smooks/smooks.json | 32 +- .../org/apache/camel/dataformat/smooks/smooks.json | 4 +- .../src/main/docs/smooks-component.adoc | 4 +- .../src/main/docs/smooks-dataformat.adoc | 2 +- .../camel/component/smooks/SmooksEndpoint.java | 21 +- .../camel/component/smooks/SmooksProcessor.java | 8 +- .../camel/component/smooks/SmooksProducer.java | 36 + .../org/apache/camel/model/dataformat/smooks.json | 4 +- .../camel/model/dataformat/SmooksDataFormat.java | 4 +- .../dsl/SmooksComponentBuilderFactory.java | 29 - .../endpoint/dsl/SmooksEndpointBuilderFactory.java | 748 +-------------------- .../dsl/yaml/deserializers/ModelDeserializers.java | 2 +- .../generated/resources/schema/camelYamlDsl.json | 2 +- 21 files changed, 102 insertions(+), 1007 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 b105f895b02..29535b928ee 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 @@ -18,38 +18,18 @@ "async": false, "api": false, "consumerOnly": false, - "producerOnly": false, + "producerOnly": true, "lenientProperties": false, "browsable": false, "remote": true }, "componentProperties": { - "bridgeErrorHandler": { "index": 0, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] - "lazyStartProducer": { "index": 1, "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": 2, "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 [...] + "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 [...] }, "properties": { - "smooksConfig": { "index": 0, "kind": "path", "displayName": "Smooks Config", "group": "common", "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" }, - "reportPath": { "index": 1, "kind": "parameter", "displayName": "Report Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "File path to place the generated HTML execution report. The report is a useful tool in the developers arsenal for diagnosing issues or comprehending a transformation. Do not set in production since this is a major performance drain" }, - "sendEmptyMessageWhenIdle": { "index": 2, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, - "bridgeErrorHandler": { "index": 3, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] - "exceptionHandler": { "index": 4, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By def [...] - "exchangePattern": { "index": 5, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, - "pollStrategy": { "index": 6, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the pol [...] - "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "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 produc [...] - "backoffErrorThreshold": { "index": 8, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." }, - "backoffIdleThreshold": { "index": 9, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." }, - "backoffMultiplier": { "index": 10, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...] - "delay": { "index": 11, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." }, - "greedy": { "index": 12, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." }, - "initialDelay": { "index": 13, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." }, - "repeatCount": { "index": 14, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." }, - "runLoggingLevel": { "index": 15, "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the l [...] - "scheduledExecutorService": { "index": 16, "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." }, - "scheduler": { "index": 17, "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" }, - "schedulerProperties": { "index": 18, "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler." }, - "startScheduler": { "index": 19, "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." }, - "timeUnit": { "index": 20, "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." }, - "useFixedDelay": { "index": 21, "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." } + "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" }, + "reportPath": { "index": 1, "kind": "parameter", "displayName": "Report Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "File path to place the generated HTML execution report. The report is a useful tool in the developers arsenal for diagnosing issues or comprehending a transformation. Do not set in production since this is a major performance drain" }, + "lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "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 produc [...] } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/smooks.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/smooks.json index cb0c68a58c0..6aa58317f06 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/smooks.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/smooks.json @@ -3,10 +3,10 @@ "kind": "dataformat", "name": "smooks", "title": "Smooks", - "description": "Transform and bind XML as well as non-XML data using Smooks.", + "description": "Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.", "deprecated": false, "firstVersion": "4.9.0", - "label": "dataformat,transformation,smooks", + "label": "dataformat,transformation", "javaType": "org.apache.camel.dataformat.smooks.SmooksDataFormat", "supportLevel": "Preview", "groupId": "org.apache.camel", diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/smooks.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/smooks.json index 841de6ce94d..ac742e3e8f8 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/smooks.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/smooks.json @@ -3,10 +3,10 @@ "kind": "model", "name": "smooks", "title": "Smooks", - "description": "Transform and bind XML as well as non-XML data using Smooks.", + "description": "Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.", "deprecated": false, "firstVersion": "4.9.0", - "label": "dataformat,transformation,smooks", + "label": "dataformat,transformation", "javaType": "org.apache.camel.model.dataformat.SmooksDataFormat", "abstract": false, "input": false, diff --git a/components/camel-smooks/pom.xml b/components/camel-smooks/pom.xml index d4d5d7709ca..e1706f16aa2 100644 --- a/components/camel-smooks/pom.xml +++ b/components/camel-smooks/pom.xml @@ -55,6 +55,7 @@ <groupId>org.smooks</groupId> <artifactId>smooks-core</artifactId> </dependency> + <dependency> <groupId>org.smooks.cartridges.edi</groupId> <artifactId>smooks-edi-cartridge</artifactId> 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 dcc652ca67c..5ab86eb2b31 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 @@ -25,8 +25,6 @@ public class SmooksComponentConfigurer extends PropertyConfigurerSupport impleme switch (ignoreCase ? name.toLowerCase() : name) { case "autowiredenabled": case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true; - case "bridgeerrorhandler": - case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true; case "lazystartproducer": case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; default: return false; @@ -38,8 +36,6 @@ public class SmooksComponentConfigurer extends PropertyConfigurerSupport impleme switch (ignoreCase ? name.toLowerCase() : name) { case "autowiredenabled": case "autowiredEnabled": return boolean.class; - case "bridgeerrorhandler": - case "bridgeErrorHandler": return boolean.class; case "lazystartproducer": case "lazyStartProducer": return boolean.class; default: return null; @@ -52,8 +48,6 @@ public class SmooksComponentConfigurer extends PropertyConfigurerSupport impleme switch (ignoreCase ? name.toLowerCase() : name) { case "autowiredenabled": case "autowiredEnabled": return target.isAutowiredEnabled(); - case "bridgeerrorhandler": - case "bridgeErrorHandler": return target.isBridgeErrorHandler(); case "lazystartproducer": case "lazyStartProducer": return target.isLazyStartProducer(); default: return null; diff --git a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksDataFormatConfigurer.java b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksDataFormatConfigurer.java deleted file mode 100644 index 439af9d6e16..00000000000 --- a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksDataFormatConfigurer.java +++ /dev/null @@ -1,27 +0,0 @@ -/* Generated by camel build tools - do NOT edit this file! */ -package org.apache.camel.component.smooks; - -import javax.annotation.processing.Generated; - -import org.apache.camel.CamelContext; -import org.apache.camel.dataformat.smooks.SmooksDataFormat; -import org.apache.camel.spi.GeneratedPropertyConfigurer; -import org.apache.camel.support.component.PropertyConfigurerSupport; - -/** - * Generated by camel build tools - do NOT edit this file! - */ -@Generated("org.apache.camel.maven.packaging.PackageDataFormatMojo") -@SuppressWarnings("unchecked") -public class SmooksDataFormatConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer { - - @Override - public boolean configure(CamelContext camelContext, Object target, String name, Object value, boolean ignoreCase) { - SmooksDataFormat dataformat = (SmooksDataFormat) target; - switch (ignoreCase ? name.toLowerCase() : name) { - default: return false; - } - } - -} - diff --git a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointConfigurer.java b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointConfigurer.java index 65cd72d838f..74e8088e31d 100644 --- a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointConfigurer.java +++ b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointConfigurer.java @@ -23,45 +23,10 @@ public class SmooksEndpointConfigurer extends PropertyConfigurerSupport implemen public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { SmooksEndpoint target = (SmooksEndpoint) obj; switch (ignoreCase ? name.toLowerCase() : name) { - case "backofferrorthreshold": - case "backoffErrorThreshold": target.setBackoffErrorThreshold(property(camelContext, int.class, value)); return true; - case "backoffidlethreshold": - case "backoffIdleThreshold": target.setBackoffIdleThreshold(property(camelContext, int.class, value)); return true; - case "backoffmultiplier": - case "backoffMultiplier": target.setBackoffMultiplier(property(camelContext, int.class, value)); return true; - case "bridgeerrorhandler": - case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true; - case "delay": target.setDelay(property(camelContext, long.class, value)); return true; - case "exceptionhandler": - case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true; - case "exchangepattern": - case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true; - case "greedy": target.setGreedy(property(camelContext, boolean.class, value)); return true; - case "initialdelay": - case "initialDelay": target.setInitialDelay(property(camelContext, long.class, value)); return true; case "lazystartproducer": case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; - case "pollstrategy": - case "pollStrategy": target.setPollStrategy(property(camelContext, org.apache.camel.spi.PollingConsumerPollStrategy.class, value)); return true; - case "repeatcount": - case "repeatCount": target.setRepeatCount(property(camelContext, long.class, value)); return true; case "reportpath": case "reportPath": target.setReportPath(property(camelContext, java.lang.String.class, value)); return true; - case "runlogginglevel": - case "runLoggingLevel": target.setRunLoggingLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true; - case "scheduledexecutorservice": - case "scheduledExecutorService": target.setScheduledExecutorService(property(camelContext, java.util.concurrent.ScheduledExecutorService.class, value)); return true; - case "scheduler": target.setScheduler(property(camelContext, java.lang.Object.class, value)); return true; - case "schedulerproperties": - case "schedulerProperties": target.setSchedulerProperties(property(camelContext, java.util.Map.class, value)); return true; - case "sendemptymessagewhenidle": - case "sendEmptyMessageWhenIdle": target.setSendEmptyMessageWhenIdle(property(camelContext, boolean.class, value)); return true; - case "startscheduler": - case "startScheduler": target.setStartScheduler(property(camelContext, boolean.class, value)); return true; - case "timeunit": - case "timeUnit": target.setTimeUnit(property(camelContext, java.util.concurrent.TimeUnit.class, value)); return true; - case "usefixeddelay": - case "useFixedDelay": target.setUseFixedDelay(property(camelContext, boolean.class, value)); return true; default: return false; } } @@ -69,45 +34,10 @@ public class SmooksEndpointConfigurer extends PropertyConfigurerSupport implemen @Override public Class<?> getOptionType(String name, boolean ignoreCase) { switch (ignoreCase ? name.toLowerCase() : name) { - case "backofferrorthreshold": - case "backoffErrorThreshold": return int.class; - case "backoffidlethreshold": - case "backoffIdleThreshold": return int.class; - case "backoffmultiplier": - case "backoffMultiplier": return int.class; - case "bridgeerrorhandler": - case "bridgeErrorHandler": return boolean.class; - case "delay": return long.class; - case "exceptionhandler": - case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class; - case "exchangepattern": - case "exchangePattern": return org.apache.camel.ExchangePattern.class; - case "greedy": return boolean.class; - case "initialdelay": - case "initialDelay": return long.class; case "lazystartproducer": case "lazyStartProducer": return boolean.class; - case "pollstrategy": - case "pollStrategy": return org.apache.camel.spi.PollingConsumerPollStrategy.class; - case "repeatcount": - case "repeatCount": return long.class; case "reportpath": case "reportPath": return java.lang.String.class; - case "runlogginglevel": - case "runLoggingLevel": return org.apache.camel.LoggingLevel.class; - case "scheduledexecutorservice": - case "scheduledExecutorService": return java.util.concurrent.ScheduledExecutorService.class; - case "scheduler": return java.lang.Object.class; - case "schedulerproperties": - case "schedulerProperties": return java.util.Map.class; - case "sendemptymessagewhenidle": - case "sendEmptyMessageWhenIdle": return boolean.class; - case "startscheduler": - case "startScheduler": return boolean.class; - case "timeunit": - case "timeUnit": return java.util.concurrent.TimeUnit.class; - case "usefixeddelay": - case "useFixedDelay": return boolean.class; default: return null; } } @@ -116,54 +46,10 @@ public class SmooksEndpointConfigurer extends PropertyConfigurerSupport implemen public Object getOptionValue(Object obj, String name, boolean ignoreCase) { SmooksEndpoint target = (SmooksEndpoint) obj; switch (ignoreCase ? name.toLowerCase() : name) { - case "backofferrorthreshold": - case "backoffErrorThreshold": return target.getBackoffErrorThreshold(); - case "backoffidlethreshold": - case "backoffIdleThreshold": return target.getBackoffIdleThreshold(); - case "backoffmultiplier": - case "backoffMultiplier": return target.getBackoffMultiplier(); - case "bridgeerrorhandler": - case "bridgeErrorHandler": return target.isBridgeErrorHandler(); - case "delay": return target.getDelay(); - case "exceptionhandler": - case "exceptionHandler": return target.getExceptionHandler(); - case "exchangepattern": - case "exchangePattern": return target.getExchangePattern(); - case "greedy": return target.isGreedy(); - case "initialdelay": - case "initialDelay": return target.getInitialDelay(); case "lazystartproducer": case "lazyStartProducer": return target.isLazyStartProducer(); - case "pollstrategy": - case "pollStrategy": return target.getPollStrategy(); - case "repeatcount": - case "repeatCount": return target.getRepeatCount(); case "reportpath": case "reportPath": return target.getReportPath(); - case "runlogginglevel": - case "runLoggingLevel": return target.getRunLoggingLevel(); - case "scheduledexecutorservice": - case "scheduledExecutorService": return target.getScheduledExecutorService(); - case "scheduler": return target.getScheduler(); - case "schedulerproperties": - case "schedulerProperties": return target.getSchedulerProperties(); - case "sendemptymessagewhenidle": - case "sendEmptyMessageWhenIdle": return target.isSendEmptyMessageWhenIdle(); - case "startscheduler": - case "startScheduler": return target.isStartScheduler(); - case "timeunit": - case "timeUnit": return target.getTimeUnit(); - case "usefixeddelay": - case "useFixedDelay": return target.isUseFixedDelay(); - default: return null; - } - } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "schedulerproperties": - case "schedulerProperties": return java.lang.Object.class; default: return null; } } diff --git a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointUriFactory.java b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointUriFactory.java index 7d0d8f80e25..f1d0e702ae0 100644 --- a/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointUriFactory.java +++ b/components/camel-smooks/src/generated/java/org/apache/camel/component/smooks/SmooksEndpointUriFactory.java @@ -23,34 +23,13 @@ public class SmooksEndpointUriFactory extends org.apache.camel.support.component private static final Set<String> SECRET_PROPERTY_NAMES; private static final Set<String> MULTI_VALUE_PREFIXES; static { - Set<String> props = new HashSet<>(22); - props.add("backoffErrorThreshold"); - props.add("backoffIdleThreshold"); - props.add("backoffMultiplier"); - props.add("bridgeErrorHandler"); - props.add("delay"); - props.add("exceptionHandler"); - props.add("exchangePattern"); - props.add("greedy"); - props.add("initialDelay"); + Set<String> props = new HashSet<>(3); props.add("lazyStartProducer"); - props.add("pollStrategy"); - props.add("repeatCount"); props.add("reportPath"); - props.add("runLoggingLevel"); - props.add("scheduledExecutorService"); - props.add("scheduler"); - props.add("schedulerProperties"); - props.add("sendEmptyMessageWhenIdle"); props.add("smooksConfig"); - props.add("startScheduler"); - props.add("timeUnit"); - props.add("useFixedDelay"); PROPERTY_NAMES = Collections.unmodifiableSet(props); SECRET_PROPERTY_NAMES = Collections.emptySet(); - Set<String> prefixes = new HashSet<>(1); - prefixes.add("scheduler."); - MULTI_VALUE_PREFIXES = Collections.unmodifiableSet(prefixes); + MULTI_VALUE_PREFIXES = Collections.emptySet(); } @Override 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 b105f895b02..29535b928ee 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 @@ -18,38 +18,18 @@ "async": false, "api": false, "consumerOnly": false, - "producerOnly": false, + "producerOnly": true, "lenientProperties": false, "browsable": false, "remote": true }, "componentProperties": { - "bridgeErrorHandler": { "index": 0, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] - "lazyStartProducer": { "index": 1, "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": 2, "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 [...] + "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 [...] }, "properties": { - "smooksConfig": { "index": 0, "kind": "path", "displayName": "Smooks Config", "group": "common", "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" }, - "reportPath": { "index": 1, "kind": "parameter", "displayName": "Report Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "File path to place the generated HTML execution report. The report is a useful tool in the developers arsenal for diagnosing issues or comprehending a transformation. Do not set in production since this is a major performance drain" }, - "sendEmptyMessageWhenIdle": { "index": 2, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, - "bridgeErrorHandler": { "index": 3, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] - "exceptionHandler": { "index": 4, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By def [...] - "exchangePattern": { "index": 5, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, - "pollStrategy": { "index": 6, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the pol [...] - "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "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 produc [...] - "backoffErrorThreshold": { "index": 8, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." }, - "backoffIdleThreshold": { "index": 9, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." }, - "backoffMultiplier": { "index": 10, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...] - "delay": { "index": 11, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." }, - "greedy": { "index": 12, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." }, - "initialDelay": { "index": 13, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." }, - "repeatCount": { "index": 14, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." }, - "runLoggingLevel": { "index": 15, "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the l [...] - "scheduledExecutorService": { "index": 16, "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." }, - "scheduler": { "index": 17, "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" }, - "schedulerProperties": { "index": 18, "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler." }, - "startScheduler": { "index": 19, "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." }, - "timeUnit": { "index": 20, "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." }, - "useFixedDelay": { "index": 21, "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." } + "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" }, + "reportPath": { "index": 1, "kind": "parameter", "displayName": "Report Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "File path to place the generated HTML execution report. The report is a useful tool in the developers arsenal for diagnosing issues or comprehending a transformation. Do not set in production since this is a major performance drain" }, + "lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "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 produc [...] } } diff --git a/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/dataformat/smooks/smooks.json b/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/dataformat/smooks/smooks.json index cb0c68a58c0..6aa58317f06 100644 --- a/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/dataformat/smooks/smooks.json +++ b/components/camel-smooks/src/generated/resources/META-INF/org/apache/camel/dataformat/smooks/smooks.json @@ -3,10 +3,10 @@ "kind": "dataformat", "name": "smooks", "title": "Smooks", - "description": "Transform and bind XML as well as non-XML data using Smooks.", + "description": "Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.", "deprecated": false, "firstVersion": "4.9.0", - "label": "dataformat,transformation,smooks", + "label": "dataformat,transformation", "javaType": "org.apache.camel.dataformat.smooks.SmooksDataFormat", "supportLevel": "Preview", "groupId": "org.apache.camel", diff --git a/components/camel-smooks/src/main/docs/smooks-component.adoc b/components/camel-smooks/src/main/docs/smooks-component.adoc index f1e5465ddc6..93f917a6e85 100644 --- a/components/camel-smooks/src/main/docs/smooks-component.adoc +++ b/components/camel-smooks/src/main/docs/smooks-component.adoc @@ -6,7 +6,7 @@ :since: 4.7 :supportlevel: Stable :tabs-sync-option: -:component-header: Both producer and consumer are supported +:component-header: Only producer is supported //Manually maintained attributes :camel-spring-boot-name: smooks @@ -102,4 +102,4 @@ The Smooks component is configured with a mandatory configuration file, which is </smooks-resource-list> ---- -The example `<core:exports>` configures Smooks to export the execution result to Camel as a string. Keep in mind that exporting the result as string means that the whole result will be kept in-memory which could cause unexpected performance issues for large payloads. \ No newline at end of file +The example `<core:exports>` configures Smooks to export the execution result to Camel as a string. Keep in mind that exporting the result as string means that the whole result will be kept in-memory which could cause unexpected performance issues for large payloads. diff --git a/components/camel-smooks/src/main/docs/smooks-dataformat.adoc b/components/camel-smooks/src/main/docs/smooks-dataformat.adoc index d1b538f74b6..667bee73142 100644 --- a/components/camel-smooks/src/main/docs/smooks-dataformat.adoc +++ b/components/camel-smooks/src/main/docs/smooks-dataformat.adoc @@ -2,7 +2,7 @@ :doctitle: Smooks :shortname: smooks :artifactid: camel-smooks -:description: Transform and bind XML as well as non-XML data using Smooks. +:description: Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks. :since: 4.9 :supportlevel: Preview :tabs-sync-option: diff --git a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksEndpoint.java b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksEndpoint.java index 0a854ca1702..f001a506774 100644 --- a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksEndpoint.java +++ b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksEndpoint.java @@ -18,34 +18,47 @@ package org.apache.camel.component.smooks; import org.apache.camel.Category; import org.apache.camel.Component; +import org.apache.camel.Consumer; +import org.apache.camel.Processor; +import org.apache.camel.Producer; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriPath; -import org.apache.camel.support.ProcessorEndpoint; +import org.apache.camel.support.DefaultEndpoint; import org.apache.camel.support.service.ServiceHelper; /** * Use Smooks to transform, route, and bind both XML and non-XML data, including EDI, CSV, JSON, and YAML. */ @UriEndpoint(firstVersion = "4.7.0", scheme = "smooks", title = "Smooks", syntax = "smooks:smooksConfig", + producerOnly = true, category = { Category.TRANSFORMATION }) -public class SmooksEndpoint extends ProcessorEndpoint { +public class SmooksEndpoint extends DefaultEndpoint { @UriPath(description = "Path to the Smooks configuration file") @Metadata(required = true, supportFileReference = true) private String smooksConfig; - @UriParam(description = "File path to place the generated HTML execution report. The report is a useful tool in the developer’s arsenal for diagnosing issues or comprehending a transformation. Do not set in production since this is a major performance drain") private String reportPath; private final SmooksProcessor smooksProcessor; public SmooksEndpoint(String endpointUri, Component component, SmooksProcessor processor) { - super(endpointUri, component, processor); + super(endpointUri, component); this.smooksProcessor = processor; } + @Override + public Producer createProducer() throws Exception { + return new SmooksProducer(this, smooksProcessor); + } + + @Override + public Consumer createConsumer(Processor processor) throws Exception { + throw new IllegalArgumentException("Consumer is not supported"); + } + @Override protected void doStart() throws Exception { super.doStart(); 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 adabbb6af43..36c298b9325 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 @@ -22,6 +22,7 @@ import java.io.InputStream; import java.io.Reader; import java.net.MalformedURLException; import java.net.URL; +import java.nio.charset.Charset; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -42,6 +43,7 @@ import org.apache.camel.Message; import org.apache.camel.Processor; import org.apache.camel.RuntimeCamelException; import org.apache.camel.WrappedFile; +import org.apache.camel.support.ExchangeHelper; import org.apache.camel.support.ResourceHelper; import org.apache.camel.support.builder.OutputStreamBuilder; import org.apache.camel.support.service.ServiceSupport; @@ -110,10 +112,10 @@ public class SmooksProcessor extends ServiceSupport implements Processor, CamelC final ExecutionContext executionContext = smooks.createExecutionContext(); try { executionContext.put(EXCHANGE_TYPED_KEY, exchange); - String charsetName = (String) exchange.getProperty(Exchange.CHARSET_NAME); - if (charsetName != null) { + Charset charset = ExchangeHelper.getCharset(exchange, false); + if (charset != null) { // if provided use the came character encoding - executionContext.setContentEncoding(charsetName); + executionContext.setContentEncoding(charset.name()); } exchange.getIn().setHeader(SMOOKS_EXECUTION_CONTEXT, executionContext); setupSmooksReporting(executionContext); diff --git a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProducer.java b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProducer.java new file mode 100644 index 00000000000..feb1f0b4e95 --- /dev/null +++ b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProducer.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.smooks; + +import org.apache.camel.Endpoint; +import org.apache.camel.Exchange; +import org.apache.camel.support.DefaultProducer; + +public class SmooksProducer extends DefaultProducer { + + private final SmooksProcessor smooksProcessor; + + public SmooksProducer(Endpoint endpoint, SmooksProcessor smooksProcessor) { + super(endpoint); + this.smooksProcessor = smooksProcessor; + } + + @Override + public void process(Exchange exchange) throws Exception { + smooksProcessor.process(exchange); + } +} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dataformat/smooks.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dataformat/smooks.json index 841de6ce94d..ac742e3e8f8 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dataformat/smooks.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dataformat/smooks.json @@ -3,10 +3,10 @@ "kind": "model", "name": "smooks", "title": "Smooks", - "description": "Transform and bind XML as well as non-XML data using Smooks.", + "description": "Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.", "deprecated": false, "firstVersion": "4.9.0", - "label": "dataformat,transformation,smooks", + "label": "dataformat,transformation", "javaType": "org.apache.camel.model.dataformat.SmooksDataFormat", "abstract": false, "input": false, diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/SmooksDataFormat.java b/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/SmooksDataFormat.java index 17290b58644..8e8b458277a 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/SmooksDataFormat.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/SmooksDataFormat.java @@ -27,9 +27,9 @@ import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.spi.Metadata; /** - * Transform and bind XML as well as non-XML data using Smooks. + * Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks. */ -@Metadata(firstVersion = "4.9.0", label = "dataformat,transformation,smooks", title = "Smooks") +@Metadata(firstVersion = "4.9.0", label = "dataformat,transformation", title = "Smooks") @XmlRootElement(name = "smooks") @XmlAccessorType(XmlAccessType.FIELD) public class SmooksDataFormat extends DataFormatDefinition { 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 4360f2b1bf4..6de19d7fcf4 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 @@ -53,34 +53,6 @@ public interface SmooksComponentBuilderFactory { interface SmooksComponentBuilder extends ComponentBuilder<SmooksComponent> { - /** - * Allows for bridging the consumer to the Camel routing Error Handler, - * which mean any exceptions (if possible) occurred while the Camel - * consumer is trying to pickup incoming messages, or the likes, will - * now be processed as a message and handled by the routing Error - * Handler. Important: This is only possible if the 3rd party component - * allows Camel to be alerted if an exception was thrown. Some - * components handle this internally only, and therefore - * bridgeErrorHandler is not possible. In other situations we may - * improve the Camel component to hook into the 3rd party component and - * make this possible for future releases. By default the consumer will - * use the org.apache.camel.spi.ExceptionHandler to deal with - * exceptions, that will be logged at WARN or ERROR level and ignored. - * - * The option is a: <code>boolean</code> type. - * - * Default: false - * Group: consumer - * - * @param bridgeErrorHandler the value to set - * @return the dsl builder - */ - default SmooksComponentBuilder bridgeErrorHandler(boolean bridgeErrorHandler) { - doSetProperty("bridgeErrorHandler", bridgeErrorHandler); - return this; - } - - /** * Whether the producer should be started lazy (on the first message). * By starting lazy you can use this to allow CamelContext and routes to @@ -141,7 +113,6 @@ public interface SmooksComponentBuilderFactory { String name, Object value) { switch (name) { - case "bridgeErrorHandler": ((SmooksComponent) component).setBridgeErrorHandler((boolean) value); return true; case "lazyStartProducer": ((SmooksComponent) component).setLazyStartProducer((boolean) value); return true; case "autowiredEnabled": ((SmooksComponent) component).setAutowiredEnabled((boolean) value); return true; default: return false; diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmooksEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmooksEndpointBuilderFactory.java index 387e4e65def..3d31dcefdcd 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmooksEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmooksEndpointBuilderFactory.java @@ -36,692 +36,13 @@ import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; public interface SmooksEndpointBuilderFactory { /** - * Builder for endpoint consumers for the Smooks component. - */ - public interface SmooksEndpointConsumerBuilder - extends - EndpointConsumerBuilder { - default AdvancedSmooksEndpointConsumerBuilder advanced() { - return (AdvancedSmooksEndpointConsumerBuilder) this; - } - /** - * File path to place the generated HTML execution report. The report is - * a useful tool in the developers arsenal for diagnosing issues or - * comprehending a transformation. Do not set in production since this - * is a major performance drain. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param reportPath the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder reportPath(String reportPath) { - doSetProperty("reportPath", reportPath); - return this; - } - /** - * If the polling consumer did not poll any files, you can enable this - * option to send an empty message (no body) instead. - * - * The option is a: <code>boolean</code> type. - * - * Default: false - * Group: consumer - * - * @param sendEmptyMessageWhenIdle the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder sendEmptyMessageWhenIdle(boolean sendEmptyMessageWhenIdle) { - doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle); - return this; - } - /** - * If the polling consumer did not poll any files, you can enable this - * option to send an empty message (no body) instead. - * - * The option will be converted to a <code>boolean</code> type. - * - * Default: false - * Group: consumer - * - * @param sendEmptyMessageWhenIdle the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder sendEmptyMessageWhenIdle(String sendEmptyMessageWhenIdle) { - doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle); - return this; - } - /** - * The number of subsequent error polls (failed due some error) that - * should happen before the backoffMultipler should kick-in. - * - * The option is a: <code>int</code> type. - * - * Group: scheduler - * - * @param backoffErrorThreshold the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder backoffErrorThreshold(int backoffErrorThreshold) { - doSetProperty("backoffErrorThreshold", backoffErrorThreshold); - return this; - } - /** - * The number of subsequent error polls (failed due some error) that - * should happen before the backoffMultipler should kick-in. - * - * The option will be converted to a <code>int</code> type. - * - * Group: scheduler - * - * @param backoffErrorThreshold the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder backoffErrorThreshold(String backoffErrorThreshold) { - doSetProperty("backoffErrorThreshold", backoffErrorThreshold); - return this; - } - /** - * The number of subsequent idle polls that should happen before the - * backoffMultipler should kick-in. - * - * The option is a: <code>int</code> type. - * - * Group: scheduler - * - * @param backoffIdleThreshold the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder backoffIdleThreshold(int backoffIdleThreshold) { - doSetProperty("backoffIdleThreshold", backoffIdleThreshold); - return this; - } - /** - * The number of subsequent idle polls that should happen before the - * backoffMultipler should kick-in. - * - * The option will be converted to a <code>int</code> type. - * - * Group: scheduler - * - * @param backoffIdleThreshold the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder backoffIdleThreshold(String backoffIdleThreshold) { - doSetProperty("backoffIdleThreshold", backoffIdleThreshold); - return this; - } - /** - * To let the scheduled polling consumer backoff if there has been a - * number of subsequent idles/errors in a row. The multiplier is then - * the number of polls that will be skipped before the next actual - * attempt is happening again. When this option is in use then - * backoffIdleThreshold and/or backoffErrorThreshold must also be - * configured. - * - * The option is a: <code>int</code> type. - * - * Group: scheduler - * - * @param backoffMultiplier the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder backoffMultiplier(int backoffMultiplier) { - doSetProperty("backoffMultiplier", backoffMultiplier); - return this; - } - /** - * To let the scheduled polling consumer backoff if there has been a - * number of subsequent idles/errors in a row. The multiplier is then - * the number of polls that will be skipped before the next actual - * attempt is happening again. When this option is in use then - * backoffIdleThreshold and/or backoffErrorThreshold must also be - * configured. - * - * The option will be converted to a <code>int</code> type. - * - * Group: scheduler - * - * @param backoffMultiplier the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder backoffMultiplier(String backoffMultiplier) { - doSetProperty("backoffMultiplier", backoffMultiplier); - return this; - } - /** - * Milliseconds before the next poll. - * - * The option is a: <code>long</code> type. - * - * Default: 500 - * Group: scheduler - * - * @param delay the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder delay(long delay) { - doSetProperty("delay", delay); - return this; - } - /** - * Milliseconds before the next poll. - * - * The option will be converted to a <code>long</code> type. - * - * Default: 500 - * Group: scheduler - * - * @param delay the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder delay(String delay) { - doSetProperty("delay", delay); - return this; - } - /** - * If greedy is enabled, then the ScheduledPollConsumer will run - * immediately again, if the previous run polled 1 or more messages. - * - * The option is a: <code>boolean</code> type. - * - * Default: false - * Group: scheduler - * - * @param greedy the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder greedy(boolean greedy) { - doSetProperty("greedy", greedy); - return this; - } - /** - * If greedy is enabled, then the ScheduledPollConsumer will run - * immediately again, if the previous run polled 1 or more messages. - * - * The option will be converted to a <code>boolean</code> type. - * - * Default: false - * Group: scheduler - * - * @param greedy the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder greedy(String greedy) { - doSetProperty("greedy", greedy); - return this; - } - /** - * Milliseconds before the first poll starts. - * - * The option is a: <code>long</code> type. - * - * Default: 1000 - * Group: scheduler - * - * @param initialDelay the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder initialDelay(long initialDelay) { - doSetProperty("initialDelay", initialDelay); - return this; - } - /** - * Milliseconds before the first poll starts. - * - * The option will be converted to a <code>long</code> type. - * - * Default: 1000 - * Group: scheduler - * - * @param initialDelay the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder initialDelay(String initialDelay) { - doSetProperty("initialDelay", initialDelay); - return this; - } - /** - * Specifies a maximum limit of number of fires. So if you set it to 1, - * the scheduler will only fire once. If you set it to 5, it will only - * fire five times. A value of zero or negative means fire forever. - * - * The option is a: <code>long</code> type. - * - * Default: 0 - * Group: scheduler - * - * @param repeatCount the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder repeatCount(long repeatCount) { - doSetProperty("repeatCount", repeatCount); - return this; - } - /** - * Specifies a maximum limit of number of fires. So if you set it to 1, - * the scheduler will only fire once. If you set it to 5, it will only - * fire five times. A value of zero or negative means fire forever. - * - * The option will be converted to a <code>long</code> type. - * - * Default: 0 - * Group: scheduler - * - * @param repeatCount the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder repeatCount(String repeatCount) { - doSetProperty("repeatCount", repeatCount); - return this; - } - /** - * The consumer logs a start/complete log line when it polls. This - * option allows you to configure the logging level for that. - * - * The option is a: <code>org.apache.camel.LoggingLevel</code> type. - * - * Default: TRACE - * Group: scheduler - * - * @param runLoggingLevel the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder runLoggingLevel(org.apache.camel.LoggingLevel runLoggingLevel) { - doSetProperty("runLoggingLevel", runLoggingLevel); - return this; - } - /** - * The consumer logs a start/complete log line when it polls. This - * option allows you to configure the logging level for that. - * - * The option will be converted to a - * <code>org.apache.camel.LoggingLevel</code> type. - * - * Default: TRACE - * Group: scheduler - * - * @param runLoggingLevel the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder runLoggingLevel(String runLoggingLevel) { - doSetProperty("runLoggingLevel", runLoggingLevel); - return this; - } - /** - * Allows for configuring a custom/shared thread pool to use for the - * consumer. By default each consumer has its own single threaded thread - * pool. - * - * The option is a: - * <code>java.util.concurrent.ScheduledExecutorService</code> type. - * - * Group: scheduler - * - * @param scheduledExecutorService the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder scheduledExecutorService(ScheduledExecutorService scheduledExecutorService) { - doSetProperty("scheduledExecutorService", scheduledExecutorService); - return this; - } - /** - * Allows for configuring a custom/shared thread pool to use for the - * consumer. By default each consumer has its own single threaded thread - * pool. - * - * The option will be converted to a - * <code>java.util.concurrent.ScheduledExecutorService</code> type. - * - * Group: scheduler - * - * @param scheduledExecutorService the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder scheduledExecutorService(String scheduledExecutorService) { - doSetProperty("scheduledExecutorService", scheduledExecutorService); - return this; - } - /** - * To use a cron scheduler from either camel-spring or camel-quartz - * component. Use value spring or quartz for built in scheduler. - * - * The option is a: <code>java.lang.Object</code> type. - * - * Default: none - * Group: scheduler - * - * @param scheduler the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder scheduler(Object scheduler) { - doSetProperty("scheduler", scheduler); - return this; - } - /** - * To use a cron scheduler from either camel-spring or camel-quartz - * component. Use value spring or quartz for built in scheduler. - * - * The option will be converted to a <code>java.lang.Object</code> type. - * - * Default: none - * Group: scheduler - * - * @param scheduler the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder scheduler(String scheduler) { - doSetProperty("scheduler", scheduler); - return this; - } - /** - * To configure additional properties when using a custom scheduler or - * any of the Quartz, Spring based scheduler. - * - * The option is a: <code>java.util.Map<java.lang.String, - * java.lang.Object></code> type. - * The option is multivalued, and you can use the - * schedulerProperties(String, Object) method to add a value (call the - * method multiple times to set more values). - * - * Group: scheduler - * - * @param key the option key - * @param value the option value - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder schedulerProperties(String key, Object value) { - doSetMultiValueProperty("schedulerProperties", "scheduler." + key, value); - return this; - } - /** - * To configure additional properties when using a custom scheduler or - * any of the Quartz, Spring based scheduler. - * - * The option is a: <code>java.util.Map<java.lang.String, - * java.lang.Object></code> type. - * The option is multivalued, and you can use the - * schedulerProperties(String, Object) method to add a value (call the - * method multiple times to set more values). - * - * Group: scheduler - * - * @param values the values - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder schedulerProperties(Map values) { - doSetMultiValueProperties("schedulerProperties", "scheduler.", values); - return this; - } - /** - * Whether the scheduler should be auto started. - * - * The option is a: <code>boolean</code> type. - * - * Default: true - * Group: scheduler - * - * @param startScheduler the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder startScheduler(boolean startScheduler) { - doSetProperty("startScheduler", startScheduler); - return this; - } - /** - * Whether the scheduler should be auto started. - * - * The option will be converted to a <code>boolean</code> type. - * - * Default: true - * Group: scheduler - * - * @param startScheduler the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder startScheduler(String startScheduler) { - doSetProperty("startScheduler", startScheduler); - return this; - } - /** - * Time unit for initialDelay and delay options. - * - * The option is a: <code>java.util.concurrent.TimeUnit</code> type. - * - * Default: MILLISECONDS - * Group: scheduler - * - * @param timeUnit the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder timeUnit(TimeUnit timeUnit) { - doSetProperty("timeUnit", timeUnit); - return this; - } - /** - * Time unit for initialDelay and delay options. - * - * The option will be converted to a - * <code>java.util.concurrent.TimeUnit</code> type. - * - * Default: MILLISECONDS - * Group: scheduler - * - * @param timeUnit the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder timeUnit(String timeUnit) { - doSetProperty("timeUnit", timeUnit); - return this; - } - /** - * Controls if fixed delay or fixed rate is used. See - * ScheduledExecutorService in JDK for details. - * - * The option is a: <code>boolean</code> type. - * - * Default: true - * Group: scheduler - * - * @param useFixedDelay the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder useFixedDelay(boolean useFixedDelay) { - doSetProperty("useFixedDelay", useFixedDelay); - return this; - } - /** - * Controls if fixed delay or fixed rate is used. See - * ScheduledExecutorService in JDK for details. - * - * The option will be converted to a <code>boolean</code> type. - * - * Default: true - * Group: scheduler - * - * @param useFixedDelay the value to set - * @return the dsl builder - */ - default SmooksEndpointConsumerBuilder useFixedDelay(String useFixedDelay) { - doSetProperty("useFixedDelay", useFixedDelay); - return this; - } - } - - /** - * Advanced builder for endpoint consumers for the Smooks component. - */ - public interface AdvancedSmooksEndpointConsumerBuilder - extends - EndpointConsumerBuilder { - default SmooksEndpointConsumerBuilder basic() { - return (SmooksEndpointConsumerBuilder) this; - } - /** - * Allows for bridging the consumer to the Camel routing Error Handler, - * which mean any exceptions (if possible) occurred while the Camel - * consumer is trying to pickup incoming messages, or the likes, will - * now be processed as a message and handled by the routing Error - * Handler. Important: This is only possible if the 3rd party component - * allows Camel to be alerted if an exception was thrown. Some - * components handle this internally only, and therefore - * bridgeErrorHandler is not possible. In other situations we may - * improve the Camel component to hook into the 3rd party component and - * make this possible for future releases. By default the consumer will - * use the org.apache.camel.spi.ExceptionHandler to deal with - * exceptions, that will be logged at WARN or ERROR level and ignored. - * - * The option is a: <code>boolean</code> type. - * - * Default: false - * Group: consumer (advanced) - * - * @param bridgeErrorHandler the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) { - doSetProperty("bridgeErrorHandler", bridgeErrorHandler); - return this; - } - /** - * Allows for bridging the consumer to the Camel routing Error Handler, - * which mean any exceptions (if possible) occurred while the Camel - * consumer is trying to pickup incoming messages, or the likes, will - * now be processed as a message and handled by the routing Error - * Handler. Important: This is only possible if the 3rd party component - * allows Camel to be alerted if an exception was thrown. Some - * components handle this internally only, and therefore - * bridgeErrorHandler is not possible. In other situations we may - * improve the Camel component to hook into the 3rd party component and - * make this possible for future releases. By default the consumer will - * use the org.apache.camel.spi.ExceptionHandler to deal with - * exceptions, that will be logged at WARN or ERROR level and ignored. - * - * The option will be converted to a <code>boolean</code> type. - * - * Default: false - * Group: consumer (advanced) - * - * @param bridgeErrorHandler the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) { - doSetProperty("bridgeErrorHandler", bridgeErrorHandler); - return this; - } - /** - * To let the consumer use a custom ExceptionHandler. Notice if the - * option bridgeErrorHandler is enabled then this option is not in use. - * By default the consumer will deal with exceptions, that will be - * logged at WARN or ERROR level and ignored. - * - * The option is a: <code>org.apache.camel.spi.ExceptionHandler</code> - * type. - * - * Group: consumer (advanced) - * - * @param exceptionHandler the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder exceptionHandler(org.apache.camel.spi.ExceptionHandler exceptionHandler) { - doSetProperty("exceptionHandler", exceptionHandler); - return this; - } - /** - * To let the consumer use a custom ExceptionHandler. Notice if the - * option bridgeErrorHandler is enabled then this option is not in use. - * By default the consumer will deal with exceptions, that will be - * logged at WARN or ERROR level and ignored. - * - * The option will be converted to a - * <code>org.apache.camel.spi.ExceptionHandler</code> type. - * - * Group: consumer (advanced) - * - * @param exceptionHandler the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder exceptionHandler(String exceptionHandler) { - doSetProperty("exceptionHandler", exceptionHandler); - return this; - } - /** - * Sets the exchange pattern when the consumer creates an exchange. - * - * The option is a: <code>org.apache.camel.ExchangePattern</code> type. - * - * Group: consumer (advanced) - * - * @param exchangePattern the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder exchangePattern(org.apache.camel.ExchangePattern exchangePattern) { - doSetProperty("exchangePattern", exchangePattern); - return this; - } - /** - * Sets the exchange pattern when the consumer creates an exchange. - * - * The option will be converted to a - * <code>org.apache.camel.ExchangePattern</code> type. - * - * Group: consumer (advanced) - * - * @param exchangePattern the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder exchangePattern(String exchangePattern) { - doSetProperty("exchangePattern", exchangePattern); - return this; - } - /** - * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing - * you to provide your custom implementation to control error handling - * usually occurred during the poll operation before an Exchange have - * been created and being routed in Camel. - * - * The option is a: - * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type. - * - * Group: consumer (advanced) - * - * @param pollStrategy the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder pollStrategy(org.apache.camel.spi.PollingConsumerPollStrategy pollStrategy) { - doSetProperty("pollStrategy", pollStrategy); - return this; - } - /** - * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing - * you to provide your custom implementation to control error handling - * usually occurred during the poll operation before an Exchange have - * been created and being routed in Camel. - * - * The option will be converted to a - * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type. - * - * Group: consumer (advanced) - * - * @param pollStrategy the value to set - * @return the dsl builder - */ - default AdvancedSmooksEndpointConsumerBuilder pollStrategy(String pollStrategy) { - doSetProperty("pollStrategy", pollStrategy); - return this; - } - } - - /** - * Builder for endpoint producers for the Smooks component. + * Builder for endpoint for the Smooks component. */ - public interface SmooksEndpointProducerBuilder + public interface SmooksEndpointBuilder extends EndpointProducerBuilder { - default AdvancedSmooksEndpointProducerBuilder advanced() { - return (AdvancedSmooksEndpointProducerBuilder) this; + default AdvancedSmooksEndpointBuilder advanced() { + return (AdvancedSmooksEndpointBuilder) this; } /** @@ -732,23 +53,25 @@ public interface SmooksEndpointBuilderFactory { * * The option is a: <code>java.lang.String</code> type. * - * Group: common + * Group: producer * * @param reportPath the value to set * @return the dsl builder */ - default SmooksEndpointProducerBuilder reportPath(String reportPath) { + default SmooksEndpointBuilder reportPath(String reportPath) { doSetProperty("reportPath", reportPath); return this; } } /** - * Advanced builder for endpoint producers for the Smooks component. + * Advanced builder for endpoint for the Smooks component. */ - public interface AdvancedSmooksEndpointProducerBuilder extends EndpointProducerBuilder { - default SmooksEndpointProducerBuilder basic() { - return (SmooksEndpointProducerBuilder) this; + public interface AdvancedSmooksEndpointBuilder + extends + EndpointProducerBuilder { + default SmooksEndpointBuilder basic() { + return (SmooksEndpointBuilder) this; } /** @@ -770,7 +93,7 @@ public interface SmooksEndpointBuilderFactory { * @param lazyStartProducer the value to set * @return the dsl builder */ - default AdvancedSmooksEndpointProducerBuilder lazyStartProducer(boolean lazyStartProducer) { + default AdvancedSmooksEndpointBuilder lazyStartProducer(boolean lazyStartProducer) { doSetProperty("lazyStartProducer", lazyStartProducer); return this; } @@ -793,55 +116,12 @@ public interface SmooksEndpointBuilderFactory { * @param lazyStartProducer the value to set * @return the dsl builder */ - default AdvancedSmooksEndpointProducerBuilder lazyStartProducer(String lazyStartProducer) { + default AdvancedSmooksEndpointBuilder lazyStartProducer(String lazyStartProducer) { doSetProperty("lazyStartProducer", lazyStartProducer); return this; } } - /** - * Builder for endpoint for the Smooks component. - */ - public interface SmooksEndpointBuilder - extends - SmooksEndpointConsumerBuilder, - SmooksEndpointProducerBuilder { - default AdvancedSmooksEndpointBuilder advanced() { - return (AdvancedSmooksEndpointBuilder) this; - } - - /** - * File path to place the generated HTML execution report. The report is - * a useful tool in the developers arsenal for diagnosing issues or - * comprehending a transformation. Do not set in production since this - * is a major performance drain. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param reportPath the value to set - * @return the dsl builder - */ - default SmooksEndpointBuilder reportPath(String reportPath) { - doSetProperty("reportPath", reportPath); - return this; - } - } - - /** - * Advanced builder for endpoint for the Smooks component. - */ - public interface AdvancedSmooksEndpointBuilder - extends - AdvancedSmooksEndpointConsumerBuilder, - AdvancedSmooksEndpointProducerBuilder { - default SmooksEndpointBuilder basic() { - return (SmooksEndpointBuilder) this; - } - - } - public interface SmooksBuilders { /** * Smooks (camel-smooks) diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java index e6f92c3b3e8..780348953c4 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java @@ -17332,7 +17332,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport { types = org.apache.camel.model.dataformat.SmooksDataFormat.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, displayName = "Smooks", - description = "Transform and bind XML as well as non-XML data using Smooks.", + description = "Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.", deprecated = false, properties = { @YamlProperty(name = "id", type = "string", description = "The id of this node", displayName = "Id"), diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json index ee14f08d166..48e1637fcd6 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json @@ -11721,7 +11721,7 @@ }, "org.apache.camel.model.dataformat.SmooksDataFormat" : { "title" : "Smooks", - "description" : "Transform and bind XML as well as non-XML data using Smooks.", + "description" : "Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.", "type" : "object", "additionalProperties" : false, "properties" : {
