You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/12/03 15:44:28 UTC
(camel) branch dt created (now c02ff99c10f4)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch dt
in repository https://gitbox.apache.org/repos/asf/camel.git
at c02ff99c10f4 CAMEL-22744: camel-core - Split non working data-type out of Transform into new TransformDataType EIP
This branch includes the following new commits:
new c02ff99c10f4 CAMEL-22744: camel-core - Split non working data-type out of Transform into new TransformDataType EIP
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(camel) 01/01: CAMEL-22744: camel-core - Split non working data-type out of Transform into new TransformDataType EIP
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch dt
in repository https://gitbox.apache.org/repos/asf/camel.git
commit c02ff99c10f49b156b80a11f416967cd3adcafa4
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Dec 3 16:30:33 2025 +0100
CAMEL-22744: camel-core - Split non working data-type out of Transform into new TransformDataType EIP
---
.../org/apache/camel/catalog/models.properties | 1 +
.../org/apache/camel/catalog/models/aggregate.json | 2 +-
.../camel/catalog/models/circuitBreaker.json | 2 +-
.../org/apache/camel/catalog/models/doCatch.json | 2 +-
.../org/apache/camel/catalog/models/doFinally.json | 2 +-
.../org/apache/camel/catalog/models/doTry.json | 2 +-
.../org/apache/camel/catalog/models/filter.json | 2 +-
.../camel/catalog/models/idempotentConsumer.json | 2 +-
.../org/apache/camel/catalog/models/intercept.json | 2 +-
.../apache/camel/catalog/models/interceptFrom.json | 2 +-
.../catalog/models/interceptSendToEndpoint.json | 2 +-
.../org/apache/camel/catalog/models/kamelet.json | 2 +-
.../apache/camel/catalog/models/loadBalance.json | 2 +-
.../org/apache/camel/catalog/models/loop.json | 2 +-
.../org/apache/camel/catalog/models/multicast.json | 2 +-
.../apache/camel/catalog/models/onCompletion.json | 2 +-
.../apache/camel/catalog/models/onException.json | 2 +-
.../apache/camel/catalog/models/onFallback.json | 2 +-
.../org/apache/camel/catalog/models/otherwise.json | 2 +-
.../org/apache/camel/catalog/models/pipeline.json | 2 +-
.../apache/camel/catalog/models/resequence.json | 2 +-
.../org/apache/camel/catalog/models/route.json | 2 +-
.../org/apache/camel/catalog/models/saga.json | 2 +-
.../org/apache/camel/catalog/models/split.json | 2 +-
.../org/apache/camel/catalog/models/step.json | 2 +-
.../org/apache/camel/catalog/models/transform.json | 4 +-
.../camel/catalog/models/transformDataType.json | 13 ++-
.../org/apache/camel/catalog/models/when.json | 2 +-
.../apache/camel/catalog/schemas/camel-spring.xsd | 78 +++++++++++++-----
.../apache/camel/catalog/schemas/camel-xml-io.xsd | 78 +++++++++++++-----
...ain4jEmbeddingsComponentInfinispanTargetIT.java | 2 +-
...ngChain4jEmbeddingsComponentMilvusTargetIT.java | 4 +-
...angChain4jEmbeddingsComponentNeo4jTargetIT.java | 6 +-
...Chain4jEmbeddingsComponentPineconeTargetIT.java | 2 +-
...ngChain4jEmbeddingsComponentQdrantTargetIT.java | 6 +-
...Chain4jEmbeddingsComponentWeaviateTargetIT.java | 10 +--
.../camel-neo4j/src/main/docs/neo4j-component.adoc | 2 +-
.../src/main/docs/infinispan-component.adoc | 4 +-
.../remote/InfinispanRemoteEmbeddingStoreIT.java | 4 +-
.../src/main/docs/knative-component.adoc | 2 +-
.../SpringTransformDataTypeProcessorTest.java | 25 +++---
.../SpringTransformDataTypeTextPlainTest.java | 25 +++---
.../processor/transformDataTypeProcessorTest.xml | 40 ++++++++++
.../processor/transformDataTypeTextPlainTest.xml | 37 +++++++++
.../eips/examples/json/transformDataType.json | 1 +
.../src/main/docs/modules/eips/nav.adoc | 1 +
.../docs/modules/eips/pages/transform-eip.adoc | 44 +---------
...ansform-eip.adoc => transformDataType-eip.adoc} | 77 +++---------------
.../META-INF/org/apache/camel/model/aggregate.json | 2 +-
.../org/apache/camel/model/circuitBreaker.json | 2 +-
.../META-INF/org/apache/camel/model/doCatch.json | 2 +-
.../META-INF/org/apache/camel/model/doFinally.json | 2 +-
.../META-INF/org/apache/camel/model/doTry.json | 2 +-
.../META-INF/org/apache/camel/model/filter.json | 2 +-
.../org/apache/camel/model/idempotentConsumer.json | 2 +-
.../META-INF/org/apache/camel/model/intercept.json | 2 +-
.../org/apache/camel/model/interceptFrom.json | 2 +-
.../camel/model/interceptSendToEndpoint.json | 2 +-
.../META-INF/org/apache/camel/model/kamelet.json | 2 +-
.../org/apache/camel/model/loadBalance.json | 2 +-
.../META-INF/org/apache/camel/model/loop.json | 2 +-
.../META-INF/org/apache/camel/model/multicast.json | 2 +-
.../org/apache/camel/model/onCompletion.json | 2 +-
.../org/apache/camel/model/onException.json | 2 +-
.../org/apache/camel/model/onFallback.json | 2 +-
.../META-INF/org/apache/camel/model/otherwise.json | 2 +-
.../META-INF/org/apache/camel/model/pipeline.json | 2 +-
.../org/apache/camel/model/resequence.json | 2 +-
.../META-INF/org/apache/camel/model/route.json | 2 +-
.../META-INF/org/apache/camel/model/saga.json | 2 +-
.../META-INF/org/apache/camel/model/split.json | 2 +-
.../META-INF/org/apache/camel/model/step.json | 2 +-
.../META-INF/org/apache/camel/model/transform.json | 4 +-
.../{transform.json => transformDataType.json} | 13 ++-
.../META-INF/org/apache/camel/model/when.json | 2 +-
.../services/org/apache/camel/model.properties | 1 +
.../resources/org/apache/camel/model/jaxb.index | 1 +
.../apache/camel/model/ProcessorDefinition.java | 49 ++++++++----
...ition.java => TransformDataTypeDefinition.java} | 59 +++++---------
.../apache/camel/model/TransformDefinition.java | 51 ------------
.../processor/transformer/DataTypeProcessor.java | 93 +++++++++++-----------
.../org/apache/camel/reifier/ProcessorReifier.java | 3 +
...mReifier.java => TransformDataTypeReifier.java} | 21 ++---
.../org/apache/camel/reifier/TransformReifier.java | 9 ---
.../processor/TransformDataTypeProcessorTest.java | 4 +-
...st.java => TransformDataTypeTextPlainTest.java} | 27 ++++---
.../transformer/DataTypeProcessorTest.java | 17 +---
...ean.java => ManagedDataTypeTransformMBean.java} | 8 +-
.../management/mbean/ManagedTransformMBean.java | 6 --
.../DefaultManagementObjectStrategy.java | 6 +-
...former.java => ManagedDataTypeTransformer.java} | 24 ++----
.../camel/management/mbean/ManagedTransformer.java | 9 ---
.../java/org/apache/camel/xml/in/ModelParser.java | 10 ++-
.../java/org/apache/camel/xml/out/ModelWriter.java | 12 ++-
.../org/apache/camel/yaml/out/ModelWriter.java | 12 ++-
.../ROOT/pages/camel-4x-upgrade-guide-4_17.adoc | 23 ++++++
.../dsl/yaml/deserializers/ModelDeserializers.java | 84 ++++++++++++++++---
.../deserializers/ModelDeserializersResolver.java | 2 +
.../generated/resources/schema/camelYamlDsl.json | 53 +++++++++---
.../camel/dsl/yaml/YamlRoutesBuilderLoader.java | 4 +-
.../apache/camel/dsl/yaml/PipeLoaderTest.groovy | 26 +++---
...ormTest.groovy => TransformDataTypeTest.groovy} | 23 +++---
.../org/apache/camel/dsl/yaml/TransformTest.groovy | 22 +++--
103 files changed, 659 insertions(+), 583 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
index 9672a491283e..0b18bc571da9 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
@@ -227,6 +227,7 @@ tokenizer
topicLoadBalancer
transacted
transform
+transformDataType
transformers
univocityCsv
univocityFixed
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json
index ff195f3a9376..0258cefbc750 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json
@@ -43,7 +43,7 @@
"discardOnAggregationFailure": { "index": 28, "kind": "attribute", "displayName": "Discard On Aggregation Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Discards the aggregated message when aggregation failed (an exception was thrown from AggregationStrategy . This means the partly aggregated message is dropped an [...]
"forceCompletionOnStop": { "index": 29, "kind": "attribute", "displayName": "Force Completion On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to complete all current aggregated exchanges when the context is stopped" },
"completeAllOnStop": { "index": 30, "kind": "attribute", "displayName": "Complete All On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to wait to complete all current and partial (pending) aggregated exchanges when the context is stopped. This also means that we will wait for all pending exchanges which ar [...]
- "outputs": { "index": 31, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 31, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelAggregatedSize": { "index": 0, "kind": "exchangeProperty", "displayName": "Aggregated Size", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "important": true, "description": "Number of exchanges that was grouped together." },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json
index 15ca6afa1e9b..597dac14a7b0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json
@@ -21,7 +21,7 @@
"resilience4jConfiguration": { "index": 6, "kind": "element", "displayName": "Resilience4j Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.Resilience4jConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use Resilience4j with the given configuration." },
"faultToleranceConfiguration": { "index": 7, "kind": "element", "displayName": "Fault Tolerance Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.FaultToleranceConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use MicroProfile Fault Tolerance with the given configuration." },
"onFallback": { "index": 8, "kind": "element", "displayName": "On Fallback", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnFallbackDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "The fallback route path to execute that does not go over the network. This should be a static or cached result that can immediately be returned upon failure. If the fallback requires network connection then use onFallbackV [...]
- "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelResponseSuccessfulExecution": { "index": 0, "kind": "exchangeProperty", "displayName": "Response Successful Execution", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Whether the exchange was processed successfully by the circuit breaker" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doCatch.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doCatch.json
index c67cab711aaf..59437fb0cd35 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doCatch.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doCatch.json
@@ -18,7 +18,7 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"exception": { "index": 4, "kind": "element", "displayName": "Exception", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "The exception(s) to catch." },
"onWhen": { "index": 5, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Used for triggering doCatch in specific situations" },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelExceptionCaught": { "index": 0, "kind": "exchangeProperty", "displayName": "Exception Caught", "label": "producer", "required": false, "javaType": "java.lang.Exception", "deprecated": false, "autowired": false, "secret": false, "description": "Stores the caught exception due to a processing error of the current Exchange" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doFinally.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doFinally.json
index 1185670b9c00..5c6f942fc65a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doFinally.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doFinally.json
@@ -16,7 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelExceptionCaught": { "index": 0, "kind": "exchangeProperty", "displayName": "Exception Caught", "label": "producer", "required": false, "javaType": "java.lang.Exception", "deprecated": false, "autowired": false, "secret": false, "description": "Stores the caught exception due to a processing error of the current Exchange" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doTry.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doTry.json
index 51f2deb5a9f1..a775a4673650 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doTry.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/doTry.json
@@ -16,7 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
"doCatch": { "index": 5, "kind": "element", "displayName": "Do Catch", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.CatchDefinition>", "oneOf": [ "doCatch" ], "deprecated": false, "autowired": false, "secret": false, "description": "Catches exceptions as part of a try, catch, finally block" },
"doFinally": { "index": 6, "kind": "element", "displayName": "Do Finally", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.FinallyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Path traversed when a try, catch, finally block exits" }
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/filter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/filter.json
index ed37ab5e6154..7afc95a7051e 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/filter.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/filter.json
@@ -18,6 +18,6 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
"statusPropertyName": { "index": 5, "kind": "attribute", "displayName": "Status Property Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of exchange property to use for storing the status of the filtering. Setting this allows to know if the filter predicate evaluated as true or false." },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/idempotentConsumer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/idempotentConsumer.json
index 1354d7b2d678..0b6644db12ac 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/idempotentConsumer.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/idempotentConsumer.json
@@ -22,7 +22,7 @@
"completionEager": { "index": 7, "kind": "attribute", "displayName": "Completion Eager", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to complete the idempotent consumer eager or when the exchange is done. If this option is true to complete eager, then the idempotent consumer will trigger its completion when [...]
"skipDuplicate": { "index": 8, "kind": "attribute", "displayName": "Skip Duplicate", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to skip duplicates or not. The default behavior is to skip duplicates. A duplicate message would have the Exchange property org.apache.camel.Exchange#DUPLICATE_MESSAGE set to a Bool [...]
"removeOnFailure": { "index": 9, "kind": "attribute", "displayName": "Remove On Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to remove or keep the key on failure. The default behavior is to remove the key on failure." },
- "outputs": { "index": 10, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
+ "outputs": { "index": 10, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
},
"exchangeProperties": {
"CamelDuplicateMessage": { "index": 0, "kind": "exchangeProperty", "displayName": "Duplicate Message", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Whether this exchange is a duplicate detected by the Idempotent Consumer EIP" }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/intercept.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/intercept.json
index 1ff3b285b56d..f60eb8585e34 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/intercept.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/intercept.json
@@ -17,7 +17,7 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"onWhen": { "index": 4, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger intercepting in specific situations" },
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelInterceptedNodeId": { "index": 0, "kind": "exchangeProperty", "displayName": "Intercepted Node Id", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The intercepted route's node ID" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptFrom.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptFrom.json
index 4d2eea391808..48c1db41eb4a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptFrom.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptFrom.json
@@ -18,7 +18,7 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"uri": { "index": 4, "kind": "attribute", "displayName": "Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Intercept incoming messages from the uri or uri pattern. If this option is not configured, then all incoming messages is intercepted." },
"onWhen": { "index": 5, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger intercepting in specific situations" },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelInterceptedEndpoint": { "index": 0, "kind": "exchangeProperty", "displayName": "Intercepted Endpoint", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The endpoint URI that was intercepted" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptSendToEndpoint.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptSendToEndpoint.json
index 2e566ec3efb6..067e2d9c831d 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptSendToEndpoint.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptSendToEndpoint.json
@@ -20,7 +20,7 @@
"skipSendToOriginalEndpoint": { "index": 5, "kind": "attribute", "displayName": "Skip Send To Original Endpoint", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "If set to true then the message is not sent to the original endpoint. By default (false) the message is both intercepted and then sent to the original endpoint." },
"afterUri": { "index": 6, "kind": "attribute", "displayName": "After Uri", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "After sending to the endpoint then send the message to this uri which allows to process its result." },
"onWhen": { "index": 7, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger intercepting sending to an endpoint in specific situations" },
- "outputs": { "index": 8, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 8, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelInterceptedEndpoint": { "index": 0, "kind": "exchangeProperty", "displayName": "Intercepted Endpoint", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The endpoint URI that was intercepted" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kamelet.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kamelet.json
index af19edd0679c..c05aa420e940 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kamelet.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kamelet.json
@@ -17,6 +17,6 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"name": { "index": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of the Kamelet (templateId\/routeId) to call. Options for the kamelet can be specified using uri syntax, eg mynamecount=4&type=gold." },
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalance.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalance.json
index 8777be7b7089..d5a30fd788df 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalance.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalance.json
@@ -17,6 +17,6 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"loadBalancerType": { "index": 4, "kind": "element", "displayName": "Load Balancer Type", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.LoadBalancerDefinition", "oneOf": [ "customLoadBalancer", "failoverLoadBalancer", "randomLoadBalancer", "roundRobinLoadBalancer", "stickyLoadBalancer", "topicLoadBalancer", "weightedLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "The load balancer to be used" },
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loop.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loop.json
index 8a5f3f53570e..e63fc0b56ff0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loop.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loop.json
@@ -21,7 +21,7 @@
"doWhile": { "index": 6, "kind": "attribute", "displayName": "Do While", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables the while loop that loops until the predicate evaluates to false or null." },
"breakOnShutdown": { "index": 7, "kind": "attribute", "displayName": "Break On Shutdown", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the breakOnShutdown attribute is true, then the loop will not iterate until it reaches the end when Camel is shut down." },
"onPrepare": { "index": 8, "kind": "attribute", "displayName": "On Prepare", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.Processor", "deprecated": false, "autowired": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange for each loop iteration. This can be used to deep-clone messages, or any custom logic needed before the looping executes." },
- "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
},
"exchangeProperties": {
"CamelLoopIndex": { "index": 0, "kind": "exchangeProperty", "displayName": "Loop Index", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Index of the current iteration (0 based)." },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/multicast.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/multicast.json
index bc867ab8443f..d694495e2530 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/multicast.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/multicast.json
@@ -28,7 +28,7 @@
"executorService": { "index": 13, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well." },
"onPrepare": { "index": 14, "kind": "attribute", "displayName": "On Prepare", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.Processor", "deprecated": false, "autowired": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange to be send. This can be used to deep-clone messages that should be send, or any custom logic needed before the exchange is send." },
"shareUnitOfWork": { "index": 15, "kind": "attribute", "displayName": "Share Unit Of Work", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Multicast will by default not share unit of work between the parent exchange and each multicasted [...]
- "outputs": { "index": 16, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 16, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelMulticastIndex": { "index": 0, "kind": "exchangeProperty", "displayName": "Multicast Index", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "An index counter that increases for each Exchange being multicasted. The counter starts from 0." },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onCompletion.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onCompletion.json
index 2e1c3e1e48fa..1a3667990c98 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onCompletion.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onCompletion.json
@@ -23,7 +23,7 @@
"executorService": { "index": 8, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well." },
"useOriginalMessage": { "index": 9, "kind": "attribute", "displayName": "Use Original Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will use the original input message body when an org.apache.camel.Exchange for this on completion. The original input message is defensively copied, and the copied message body is co [...]
"onWhen": { "index": 10, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger routing this completion steps in specific situations" },
- "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelOnCompletion": { "index": 0, "kind": "exchangeProperty", "displayName": "On Completion", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Flag to mark that this exchange is currently being executed as onCompletion" }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onException.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onException.json
index 28d4f2f045f2..c5d37904e35d 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onException.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onException.json
@@ -27,7 +27,7 @@
"onExceptionOccurredRef": { "index": 12, "kind": "attribute", "displayName": "On Exception Occurred Ref", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Importan [...]
"useOriginalMessage": { "index": 13, "kind": "attribute", "displayName": "Use Original Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when [...]
"useOriginalBody": { "index": 14, "kind": "attribute", "displayName": "Use Original Body", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all rede [...]
- "outputs": { "index": 15, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 15, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelExceptionCaught": { "index": 0, "kind": "exchangeProperty", "displayName": "Exception Caught", "label": "producer", "required": false, "javaType": "java.lang.Exception", "deprecated": false, "autowired": false, "secret": false, "description": "Stores the caught exception due to a processing error of the current Exchange" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json
index e00d2f11ad99..bb14d103e4f5 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json
@@ -16,6 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"fallbackViaNetwork": { "index": 3, "kind": "attribute", "displayName": "Fallback Via Network", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure. It is important to execute the fallback command on a sep [...]
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/otherwise.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/otherwise.json
index 600ff42b2933..623d5420fde6 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/otherwise.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/otherwise.json
@@ -16,6 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pipeline.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pipeline.json
index 312a5f49d416..657308541d4f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pipeline.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pipeline.json
@@ -16,6 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resequence.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resequence.json
index 30005f05b550..f25c4f71a987 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resequence.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resequence.json
@@ -18,6 +18,6 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
"resequencerConfig": { "index": 5, "kind": "element", "displayName": "Resequencer Config", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.config.ResequencerConfig", "oneOf": [ "batchConfig", "streamConfig" ], "deprecated": false, "autowired": false, "secret": false, "description": "To configure the resequencer in using either batch or stream configuration. Will by default use batch configuration." },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/route.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/route.json
index ded4371686ca..e1549f8963b7 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/route.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/route.json
@@ -34,6 +34,6 @@
"inputType": { "index": 19, "kind": "element", "displayName": "Input Type", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.InputTypeDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Declare the expected data type of the input message. If the actual message type is different at runtime, camel look for a required org.apache.camel.spi.Transformer and apply if exists. The type name co [...]
"outputType": { "index": 20, "kind": "element", "displayName": "Output Type", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.OutputTypeDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Declare the expected data type of the output message. If the actual message type is different at runtime, camel look for a required org.apache.camel.spi.Transformer and apply if exists. The type nam [...]
"input": { "index": 21, "kind": "element", "displayName": "Input", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.FromDefinition", "oneOf": [ "from" ], "deprecated": false, "autowired": false, "secret": false, "description": "Input to the route." },
- "outputs": { "index": 22, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<?>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint [...]
+ "outputs": { "index": 22, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<?>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/saga.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/saga.json
index 86bdf446d60a..1334df81a513 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/saga.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/saga.json
@@ -23,6 +23,6 @@
"compensation": { "index": 8, "kind": "element", "displayName": "Compensation", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.SagaActionUriDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "The compensation endpoint URI that must be called to compensate all changes done in the route. The route corresponding to the compensation URI must perform compensation and complete without error. If errors occur dur [...]
"completion": { "index": 9, "kind": "element", "displayName": "Completion", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.SagaActionUriDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "The completion endpoint URI that will be called when the Saga is completed successfully. The route corresponding to the completion URI must perform completion tasks and terminate without error. If errors occur during com [...]
"option": { "index": 10, "kind": "element", "displayName": "Option", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyExpressionDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to save properties of the current exchange in order to re-use them in a compensation\/completion callback route. Options are usually helpful e.g. to store and retrieve identifie [...]
- "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
index e17f74d7b895..ce5ba9adbb72 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
@@ -30,7 +30,7 @@
"executorService": { "index": 15, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatically implied, and you do not have to enable that option as well." },
"onPrepare": { "index": 16, "kind": "attribute", "displayName": "On Prepare", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.Processor", "deprecated": false, "autowired": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange to be sent. This can be used to deep-clone messages that should be sent, or any custom logic needed before the exchange is sent." },
"shareUnitOfWork": { "index": 17, "kind": "attribute", "displayName": "Share Unit Of Work", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Splitter will by default not share unit of work between the parent exchange and each split exchan [...]
- "outputs": { "index": 18, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
+ "outputs": { "index": 18, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
},
"exchangeProperties": {
"CamelSplitIndex": { "index": 0, "kind": "exchangeProperty", "displayName": "Split Index", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "important": true, "description": "A split counter that increases for each Exchange being split. The counter starts from 0." },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/step.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/step.json
index 811ca97d1071..7baa35debc5d 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/step.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/step.json
@@ -16,7 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelStepId": { "index": 0, "kind": "exchangeProperty", "displayName": "Step Id", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of the Step EIP" }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transform.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transform.json
index ae037a308be4..8afc014a4c81 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transform.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transform.json
@@ -16,8 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
- "fromType": { "index": 5, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "From type used in data type transformation." },
- "toType": { "index": 6, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To type used as a target data type in the transformation." }
+ "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transformDataType.json
similarity index 56%
copy from core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
copy to catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transformDataType.json
index ae037a308be4..63fa4365ac0e 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/transformDataType.json
@@ -1,12 +1,12 @@
{
"model": {
"kind": "model",
- "name": "transform",
- "title": "Transform",
- "description": "Transforms the message body based on an expression",
+ "name": "transformDataType",
+ "title": "Transform Data Type",
+ "description": "Transforms the message body based on known data type transformers.",
"deprecated": false,
"label": "eip,transformation",
- "javaType": "org.apache.camel.model.TransformDefinition",
+ "javaType": "org.apache.camel.model.TransformDataTypeDefinition",
"abstract": false,
"input": true,
"output": false
@@ -16,8 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
- "fromType": { "index": 5, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "From type used in data type transformation." },
- "toType": { "index": 6, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To type used as a target data type in the transformation." }
+ "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "From type used in data type transformation." },
+ "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To type used as a target data type in the transformation." }
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/when.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/when.json
index 1c3c6a01f2fc..2d714419952d 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/when.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/when.json
@@ -17,6 +17,6 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 749438250678..a81ebdef25a4 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -2287,6 +2287,15 @@ Enables transaction on the route
<xs:documentation xml:lang="en">
<![CDATA[
Transforms the message body based on an expression
+]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="transformDataType" type="tns:transformDataTypeDefinition">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+<![CDATA[
+Transforms the message body based on known data type transformers.
]]>
</xs:documentation>
</xs:annotation>
@@ -3811,6 +3820,7 @@ will fallback to use the fixed value if the Expression result was null or 0.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -4453,6 +4463,7 @@ The exception(s) to catch.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -4617,6 +4628,7 @@ during startup to keep at runtime only the branch that matched. Default value: f
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -4706,6 +4718,7 @@ Disables this EIP from the route. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -4797,6 +4810,7 @@ Disables this EIP from the route. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5285,6 +5299,7 @@ References a custom thread pool to use when offloading a guarded action to anoth
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -6454,6 +6469,7 @@ Sets the logging level to use for logging transactional rollback. This option is
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -6544,6 +6560,7 @@ predicate evaluated as true or false.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -6705,6 +6722,7 @@ Global option value.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -6866,6 +6884,7 @@ Whether if validation is required for this input type. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -6964,6 +6983,7 @@ intercepted.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -7072,6 +7092,7 @@ After sending to the endpoint then send the message to this uri which allows to
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -7171,6 +7192,7 @@ mynamecount=4&type=gold.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -7511,6 +7533,7 @@ such as groovy.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11090,6 +11113,7 @@ maximum decompressed size. Default value: 1073741824
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11308,6 +11332,7 @@ individual unit of work. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11497,6 +11522,7 @@ its considered handled as well.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11755,6 +11781,7 @@ one of the available events. Implementations should not assume the predicate to
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11835,6 +11862,7 @@ one of the available events. Implementations should not assume the predicate to
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -12521,6 +12549,7 @@ Name of variable to remove.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -12878,6 +12907,7 @@ Reference to the routes in the xml dsl.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -13314,6 +13344,7 @@ actions. Option values will be transformed into input headers of the compensatio
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -13771,6 +13802,7 @@ Sets the comparator to use for sorting.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -14004,6 +14036,7 @@ individual unit of work. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -14729,6 +14762,7 @@ Sets the model name.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -14742,6 +14776,31 @@ Sets the model name.
<xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to use for lookup the policy in the registry.
+]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="transformDataTypeDefinition">
+ <xs:complexContent>
+ <xs:extension base="tns:noOutputDefinition">
+ <xs:sequence/>
+ <xs:attribute name="fromType" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+<![CDATA[
+From type used in data type transformation.
+]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="toType" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+<![CDATA[
+To type used as a target data type in the transformation.
]]>
</xs:documentation>
</xs:annotation>
@@ -14781,24 +14840,6 @@ Sets a reference to use for lookup the policy in the registry.
<xs:element ref="tns:xpath"/>
<xs:element ref="tns:xquery"/>
</xs:choice>
- <xs:attribute name="fromType" type="xs:string">
- <xs:annotation>
- <xs:documentation xml:lang="en">
-<![CDATA[
-From type used in data type transformation.
-]]>
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="toType" type="xs:string">
- <xs:annotation>
- <xs:documentation xml:lang="en">
-<![CDATA[
-To type used as a target data type in the transformation.
-]]>
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -14871,6 +14912,7 @@ To type used as a target data type in the transformation.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
index f093a15351a8..1cd11ac5bbf2 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
@@ -2098,6 +2098,15 @@ Enables transaction on the route
<xs:documentation xml:lang="en">
<![CDATA[
Transforms the message body based on an expression
+]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="transformDataType" type="tns:transformDataTypeDefinition">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+<![CDATA[
+Transforms the message body based on known data type transformers.
]]>
</xs:documentation>
</xs:annotation>
@@ -2472,6 +2481,7 @@ will fallback to use the fixed value if the Expression result was null or 0.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -3114,6 +3124,7 @@ The exception(s) to catch.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -3278,6 +3289,7 @@ during startup to keep at runtime only the branch that matched. Default value: f
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -3367,6 +3379,7 @@ Disables this EIP from the route. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -3458,6 +3471,7 @@ Disables this EIP from the route. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -3958,6 +3972,7 @@ References a custom thread pool to use when offloading a guarded action to anoth
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5127,6 +5142,7 @@ Sets the logging level to use for logging transactional rollback. This option is
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5217,6 +5233,7 @@ predicate evaluated as true or false.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5378,6 +5395,7 @@ Global option value.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5539,6 +5557,7 @@ Whether if validation is required for this input type. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5637,6 +5656,7 @@ intercepted.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5745,6 +5765,7 @@ After sending to the endpoint then send the message to this uri which allows to
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -5844,6 +5865,7 @@ mynamecount=4&type=gold.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -6184,6 +6206,7 @@ such as groovy.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -9763,6 +9786,7 @@ maximum decompressed size. Default value: 1073741824
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -9981,6 +10005,7 @@ individual unit of work. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -10170,6 +10195,7 @@ its considered handled as well.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -10428,6 +10454,7 @@ one of the available events. Implementations should not assume the predicate to
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -10508,6 +10535,7 @@ one of the available events. Implementations should not assume the predicate to
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11215,6 +11243,7 @@ Name of variable to remove.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -11572,6 +11601,7 @@ Reference to the routes in the xml dsl.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -12008,6 +12038,7 @@ actions. Option values will be transformed into input headers of the compensatio
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -12465,6 +12496,7 @@ Sets the comparator to use for sorting.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -12698,6 +12730,7 @@ individual unit of work. Default value: false
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -13423,6 +13456,7 @@ Sets the model name.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
@@ -13436,6 +13470,31 @@ Sets the model name.
<xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to use for lookup the policy in the registry.
+]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="transformDataTypeDefinition">
+ <xs:complexContent>
+ <xs:extension base="tns:noOutputDefinition">
+ <xs:sequence/>
+ <xs:attribute name="fromType" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+<![CDATA[
+From type used in data type transformation.
+]]>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="toType" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+<![CDATA[
+To type used as a target data type in the transformation.
]]>
</xs:documentation>
</xs:annotation>
@@ -13475,24 +13534,6 @@ Sets a reference to use for lookup the policy in the registry.
<xs:element ref="tns:xpath"/>
<xs:element ref="tns:xquery"/>
</xs:choice>
- <xs:attribute name="fromType" type="xs:string">
- <xs:annotation>
- <xs:documentation xml:lang="en">
-<![CDATA[
-From type used in data type transformation.
-]]>
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="toType" type="xs:string">
- <xs:annotation>
- <xs:documentation xml:lang="en">
-<![CDATA[
-To type used as a target data type in the transformation.
-]]>
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -13565,6 +13606,7 @@ To type used as a target data type in the transformation.
<xs:element ref="tns:toD"/>
<xs:element ref="tns:tokenizer"/>
<xs:element ref="tns:transacted"/>
+ <xs:element ref="tns:transformDataType"/>
<xs:element ref="tns:transform"/>
<xs:element ref="tns:doTry"/>
<xs:element ref="tns:unmarshal"/>
diff --git a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentInfinispanTargetIT.java b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentInfinispanTargetIT.java
index b205f59433e7..b8eee03e3c52 100644
--- a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentInfinispanTargetIT.java
+++ b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentInfinispanTargetIT.java
@@ -182,7 +182,7 @@ public class LangChain4jEmbeddingsComponentInfinispanTargetIT extends CamelTestS
public void configure() {
from("direct:start")
.to("langchain4j-embeddings:test")
- .transform(new DataType("infinispan:embeddings"))
+ .transformDataType(new DataType("infinispan:embeddings"))
.to(INFINISPAN_URI);
}
};
diff --git a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentMilvusTargetIT.java b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentMilvusTargetIT.java
index 71971016c94f..bd7473053fb2 100644
--- a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentMilvusTargetIT.java
+++ b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentMilvusTargetIT.java
@@ -192,7 +192,7 @@ public class LangChain4jEmbeddingsComponentMilvusTargetIT extends CamelTestSuppo
.setHeader(MilvusHeaders.ACTION).constant(MilvusAction.INSERT)
.setHeader(MilvusHeaders.KEY_NAME).constant("userID")
.setHeader(MilvusHeaders.KEY_VALUE).constant(Long.valueOf("3"))
- .transform(new org.apache.camel.spi.DataType("milvus:embeddings"))
+ .transformDataType(new org.apache.camel.spi.DataType("milvus:embeddings"))
.to(MILVUS_URI);
from("direct:up")
@@ -200,7 +200,7 @@ public class LangChain4jEmbeddingsComponentMilvusTargetIT extends CamelTestSuppo
.setHeader(MilvusHeaders.ACTION).constant(MilvusAction.UPSERT)
.setHeader(MilvusHeaders.KEY_NAME).constant("userID")
.setHeader(MilvusHeaders.KEY_VALUE).constant(Long.valueOf("3"))
- .transform(new org.apache.camel.spi.DataType("milvus:embeddings"))
+ .transformDataType(new org.apache.camel.spi.DataType("milvus:embeddings"))
.to(MILVUS_URI);
}
};
diff --git a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentNeo4jTargetIT.java b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentNeo4jTargetIT.java
index 4160e73bb0a5..30c5268427ef 100644
--- a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentNeo4jTargetIT.java
+++ b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentNeo4jTargetIT.java
@@ -165,18 +165,18 @@ public class LangChain4jEmbeddingsComponentNeo4jTargetIT extends CamelTestSuppor
.setHeader(Neo4jHeaders.OPERATION).constant(Neo4Operation.CREATE_VECTOR)
.setHeader(Neo4jHeaders.VECTOR_ID).constant("1")
.setHeader(Neo4jHeaders.LABEL).constant("Test")
- .transform(new org.apache.camel.spi.DataType("neo4j:embeddings"))
+ .transformDataType(new org.apache.camel.spi.DataType("neo4j:embeddings"))
.to(NEO4J_URI);
from("direct:search")
.to("langchain4j-embeddings:test")
// transform prompt into embeddings for search
- .transform(
+ .transformDataType(
new DataType("neo4j:embeddings"))
.setHeader(Neo4jHeaders.OPERATION, constant(Neo4Operation.VECTOR_SIMILARITY_SEARCH))
.to(NEO4J_URI)
// decode retrieved embeddings for RAG
- .transform(
+ .transformDataType(
new DataType("neo4j:rag"));
}
};
diff --git a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentPineconeTargetIT.java b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentPineconeTargetIT.java
index 911c7ea760db..c8dc1a740517 100644
--- a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentPineconeTargetIT.java
+++ b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentPineconeTargetIT.java
@@ -131,7 +131,7 @@ public class LangChain4jEmbeddingsComponentPineconeTargetIT extends CamelTestSup
.to("langchain4j-embeddings:test")
.setHeader(PineconeVectorDbHeaders.ACTION).constant(PineconeVectorDbAction.UPSERT)
.setHeader(PineconeVectorDbHeaders.INDEX_ID).constant(POINT_ID)
- .transform(
+ .transformDataType(
new DataType("pinecone:embeddings"))
.to(PINECONE_URI);
}
diff --git a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentQdrantTargetIT.java b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentQdrantTargetIT.java
index 1e8d5f7b8631..1e9d3a0cdb81 100644
--- a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentQdrantTargetIT.java
+++ b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentQdrantTargetIT.java
@@ -129,21 +129,21 @@ public class LangChain4jEmbeddingsComponentQdrantTargetIT extends CamelTestSuppo
.setHeader(Qdrant.Headers.ACTION).constant(QdrantAction.UPSERT)
.setHeader(Qdrant.Headers.POINT_ID).constant(POINT_ID)
// transform data to embed to a vecto embeddings
- .transform(
+ .transformDataType(
new DataType("qdrant:embeddings"))
.to(QDRANT_URI);
from("direct:search")
.to("langchain4j-embeddings:test")
// transform prompt into embeddings for search
- .transform(
+ .transformDataType(
new DataType("qdrant:embeddings"))
.setHeader(Qdrant.Headers.ACTION, constant(QdrantAction.SIMILARITY_SEARCH))
.setHeader(Qdrant.Headers.INCLUDE_VECTORS, constant(true))
.setHeader(Qdrant.Headers.INCLUDE_PAYLOAD, constant(true))
.to(QDRANT_URI)
// decode retrieved embeddings for RAG
- .transform(
+ .transformDataType(
new DataType("qdrant:rag"));
}
};
diff --git a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentWeaviateTargetIT.java b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentWeaviateTargetIT.java
index 2961d1ba7e99..f848661ad117 100644
--- a/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentWeaviateTargetIT.java
+++ b/components/camel-ai/camel-langchain4j-embeddings/src/test/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsComponentWeaviateTargetIT.java
@@ -165,30 +165,30 @@ public class LangChain4jEmbeddingsComponentWeaviateTargetIT extends CamelTestSup
.to("langchain4j-embeddings:test")
.setHeader(WeaviateVectorDbHeaders.ACTION).constant(WeaviateVectorDbAction.CREATE)
// transform data to embed to a vecto embeddings
- .transform(
+ .transformDataType(
new DataType("weaviate:embeddings"))
.to(WEAVIATE_URI);
from("direct:up")
.to("langchain4j-embeddings:test")
// transform prompt into embeddings for search
- .transform(
+ .transformDataType(
new DataType("weaviate:embeddings"))
.setHeader(WeaviateVectorDbHeaders.ACTION, constant(WeaviateVectorDbAction.UPDATE_BY_ID))
.to(WEAVIATE_URI)
// decode retrieved embeddings for RAG
- .transform(
+ .transformDataType(
new DataType("weaviate:embeddings"));
from("direct:query")
.to("langchain4j-embeddings:test")
// transform prompt into embeddings for search
- .transform(
+ .transformDataType(
new DataType("weaviate:embeddings"))
.setHeader(WeaviateVectorDbHeaders.ACTION, constant(WeaviateVectorDbAction.QUERY))
.to(WEAVIATE_URI)
// decode retrieved embeddings for RAG
- .transform(
+ .transformDataType(
new DataType("weaviate:embeddings"));
}
};
diff --git a/components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc b/components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc
index e8696871d3f7..240a81beca21 100644
--- a/components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc
+++ b/components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc
@@ -253,7 +253,7 @@ You can generate embeddings with an Embedding Models using the camel Lancghain4j
.to("langchain4j-embeddings:test")
.setHeader(Neo4j.Headers.OPERATION).constant(Neo4Operation.CREATE_VECTOR)
.setHeader(Neo4j.Headers.LABEL).constant("Test")
- .transform(new DataType("neo4j:embeddings"))
+ .transformDataType(new DataType("neo4j:embeddings"))
.to("neo4j:neo4j?vectorIndexName=myIndex&label=Test");
----
diff --git a/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc b/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
index c4001150abbb..6b93df29c00e 100644
--- a/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
+++ b/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
@@ -419,7 +419,7 @@ from("direct:put")
.to("langchain4j-embeddings:create")
.setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT)
// Transform the embedding to a format usable by Infinispan
- .transform(new DataType("infinispan:embeddings"))
+ .transformDataType(new DataType("infinispan:embeddings"))
// Store the embedding
.to("infinispan:myCache?embeddingStoreDimension=384");
----
@@ -435,7 +435,7 @@ from("direct:query")
.to("langchain4j-embeddings:create")
.setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.QUERY)
// Transforms the embedding to a vector kNN search
- .transform(new DataType("infinispan:embeddings"))
+ .transformDataType(new DataType("infinispan:embeddings"))
// Query embeddings
.to("infinispan:myCache?embeddingStoreDimension=384");
----
diff --git a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
index b0b7f5902fa2..8c1effd405c7 100644
--- a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
+++ b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
@@ -179,13 +179,13 @@ public class InfinispanRemoteEmbeddingStoreIT extends InfinispanRemoteTestSuppor
public void configure() throws Exception {
from("direct:put")
.setHeader(CamelLangchain4jAttributes.CAMEL_LANGCHAIN4J_EMBEDDING_VECTOR).body()
- .transform(new DataType("infinispan:embeddings"))
+ .transformDataType(new DataType("infinispan:embeddings"))
.toF("infinispan://%s?embeddingStoreDimension=3", CACHE_NAME);
from("direct:query")
.setHeader(CamelLangchain4jAttributes.CAMEL_LANGCHAIN4J_EMBEDDING_VECTOR).body()
.setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.QUERY)
- .transform(new DataType("infinispan:embeddings"))
+ .transformDataType(new DataType("infinispan:embeddings"))
.toF("infinispan://%s?embeddingStoreDimension=3&embeddingStoreDistance=2", CACHE_NAME);
}
};
diff --git a/components/camel-knative/camel-knative-component/src/main/docs/knative-component.adoc b/components/camel-knative/camel-knative-component/src/main/docs/knative-component.adoc
index 154d21ebf6db..ac57195524a1 100644
--- a/components/camel-knative/camel-knative-component/src/main/docs/knative-component.adoc
+++ b/components/camel-knative/camel-knative-component/src/main/docs/knative-component.adoc
@@ -219,7 +219,7 @@ RouteBuilder.addRoutes(context, b -> {
b.from("timer:tick")
.setBody()
.simple("Hello Knative!")
- .transform(new DataType("http:application-cloudevents")) // <2>
+ .transformDataType(new DataType("http:application-cloudevents")) // <2>
.to("knative:event/default?kind=Broker&name=default"); // <3>
});
----
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTransformDataTypeProcessorTest.java
similarity index 52%
copy from core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
copy to components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTransformDataTypeProcessorTest.java
index 271319f92032..439fee5fc04a 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
+++ b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTransformDataTypeProcessorTest.java
@@ -14,22 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.api.management.mbean;
+package org.apache.camel.spring.processor;
-import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.CamelContext;
+import org.apache.camel.processor.TransformDataTypeProcessorTest;
-public interface ManagedTransformMBean extends ManagedProcessorMBean {
-
- @ManagedAttribute(description = "The language for the expression")
- String getExpressionLanguage();
-
- @ManagedAttribute(description = "Expression to return the transformed message body (the new message body to use)")
- String getExpression();
-
- @ManagedAttribute(description = "Data type used as defined input for the message transformation")
- String getFromType();
-
- @ManagedAttribute(description = "Data type representing the defined outcome of a data type transformation (the new message body to use)")
- String getToType();
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+public class SpringTransformDataTypeProcessorTest extends TransformDataTypeProcessorTest {
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ return createSpringCamelContext(this,
+ "org/apache/camel/spring/processor/transformDataTypeProcessorTest.xml");
+ }
}
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTransformDataTypeTextPlainTest.java
similarity index 52%
copy from core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
copy to components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTransformDataTypeTextPlainTest.java
index 271319f92032..0fd4d14a0a4c 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
+++ b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTransformDataTypeTextPlainTest.java
@@ -14,22 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.api.management.mbean;
+package org.apache.camel.spring.processor;
-import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.CamelContext;
+import org.apache.camel.processor.TransformDataTypeTextPlainTest;
-public interface ManagedTransformMBean extends ManagedProcessorMBean {
-
- @ManagedAttribute(description = "The language for the expression")
- String getExpressionLanguage();
-
- @ManagedAttribute(description = "Expression to return the transformed message body (the new message body to use)")
- String getExpression();
-
- @ManagedAttribute(description = "Data type used as defined input for the message transformation")
- String getFromType();
-
- @ManagedAttribute(description = "Data type representing the defined outcome of a data type transformation (the new message body to use)")
- String getToType();
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+public class SpringTransformDataTypeTextPlainTest extends TransformDataTypeTextPlainTest {
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ return createSpringCamelContext(this,
+ "org/apache/camel/spring/processor/transformDataTypeTextPlainTest.xml");
+ }
}
diff --git a/components/camel-spring-parent/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/transformDataTypeProcessorTest.xml b/components/camel-spring-parent/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/transformDataTypeProcessorTest.xml
new file mode 100644
index 000000000000..9d3cd50bb918
--- /dev/null
+++ b/components/camel-spring-parent/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/transformDataTypeProcessorTest.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+ ">
+
+ <!-- START SNIPPET: example -->
+ <camelContext xmlns="http://camel.apache.org/schema/spring">
+ <jmxAgent id="jmx" disabled="true"/>
+ <transformers>
+ <customTransformer name="myDataType" className="org.apache.camel.processor.TransformDataTypeProcessorTest$MyDataTypeTransformer"/>
+ </transformers>
+ <route>
+ <from uri="direct:start"/>
+ <transformDataType toType="myDataType"/>
+ <to uri="mock:result"/>
+ </route>
+ </camelContext>
+ <!-- END SNIPPET: example -->
+</beans>
diff --git a/components/camel-spring-parent/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/transformDataTypeTextPlainTest.xml b/components/camel-spring-parent/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/transformDataTypeTextPlainTest.xml
new file mode 100644
index 000000000000..a32c66d63605
--- /dev/null
+++ b/components/camel-spring-parent/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/transformDataTypeTextPlainTest.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+ ">
+
+ <!-- START SNIPPET: example -->
+ <camelContext xmlns="http://camel.apache.org/schema/spring">
+ <jmxAgent id="jmx" disabled="true"/>
+ <route>
+ <from uri="direct:start"/>
+ <transformDataType toType="text/plain"/>
+ <to uri="mock:result"/>
+ </route>
+ </camelContext>
+ <!-- END SNIPPET: example -->
+</beans>
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/examples/json/transformDataType.json b/core/camel-core-engine/src/main/docs/modules/eips/examples/json/transformDataType.json
new file mode 120000
index 000000000000..baa084aea508
--- /dev/null
+++ b/core/camel-core-engine/src/main/docs/modules/eips/examples/json/transformDataType.json
@@ -0,0 +1 @@
+../../../../../../../../camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformDataType.json
\ No newline at end of file
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc b/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc
index 8e9c30a6d84f..533226bb9b43 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc
@@ -105,6 +105,7 @@
** xref:topicLoadBalancer-eip.adoc[Topic Load Balancer]
** xref:transactional-client.adoc[Transactional Client]
** xref:transform-eip.adoc[Transform]
+** xref:transformDataType-eip.adoc[Transform Data Type]
** xref:unmarshal-eip.adoc[Unmarshal]
** xref:validate-eip.adoc[Validate]
** xref:weightedLoadBalancer-eip.adoc[Weighted Load Balancer]
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc
index 6d26f12b8569..866566bd6bc4 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc
@@ -25,6 +25,7 @@ to perform the transformation
* Using template-based xref:ROOT:index.adoc[Components], with the template being the source for how the message is translated
* Messages can also be transformed using xref:manual::data-format.adoc[Data Format]
to marshal and unmarshal messages in different encodings.
+* Using data type based transformation using xref:transformDataType-eip.adoc[Transform DataType]
This page is documenting the first approach by using Transform EIP.
@@ -87,49 +88,6 @@ YAML::
----
====
-The xref:transform-eip.adoc[Transform] may also reference a given from/to data type (`org.apache.camel.spi.DataType`).
-
-[tabs]
-====
-Java::
-+
-[source,java]
-----
-from("direct:cheese")
- .transform(new DataType("myDataType"))
- .to("log:hello");
-----
-
-XML::
-+
-[source,xml]
-----
-<route>
- <from uri="direct:cheese"/>
- <transform toType="myDataType"/>
- <to uri="log:hello"/>
-</route>
-----
-
-YAML::
-+
-[source,yaml]
-----
-- from:
- uri: direct:cheese
- steps:
- - transform:
- to-type: myDataType
- - to:
- uri: log:hello
-----
-====
-
-The example above defines the xref:transform-eip.adoc[Transform] EIP that uses a target data type `myDataType`.
-The given data type may reference a xref:manual::transformer.adoc[Transformer] that is able to handle the data type transformation.
-
-Users may also specify `fromType` in order to reference a very specific transformation from a given data type to a given data type.
-
== What is the difference between Transform and Set Body?
The Transform EIP always sets the result on the OUT message body.
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/transformDataType-eip.adoc
similarity index 54%
copy from core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc
copy to core/camel-core-engine/src/main/docs/modules/eips/pages/transformDataType-eip.adoc
index 6d26f12b8569..591553f62a86 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/transform-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/transformDataType-eip.adoc
@@ -1,7 +1,7 @@
-= Transform EIP
-:doctitle: Transform
-:shortname: transform
-:description: Transforms the message body based on an expression
+= Transform Data Type EIP
+:doctitle: Transform Data Type
+:shortname: transformDataType
+:description: Transforms the message body based on known data type transformers.
:since:
:supportlevel: Stable
:tabs-sync-option:
@@ -25,8 +25,9 @@ to perform the transformation
* Using template-based xref:ROOT:index.adoc[Components], with the template being the source for how the message is translated
* Messages can also be transformed using xref:manual::data-format.adoc[Data Format]
to marshal and unmarshal messages in different encodings.
+* Using data type based transformation using xref:transformDataType-eip.adoc[Transform DataType]
-This page is documenting the first approach by using Transform EIP.
+This page is documenting the last approach by using Transform Data Type EIP.
== Options
@@ -40,13 +41,9 @@ include::partial$eip-options.adoc[]
include::partial$eip-exchangeProperties.adoc[]
// eip exchangeProperties: END
-== Using Transform EIP
+== Using Transform DataType EIP
-You can use a xref:transform-eip.adoc[Transform] which uses an
-xref:manual::expression.adoc[Expression] to do the transformation:
-
-In the example below, we prepend Hello to the message body using the
-xref:components:languages:simple-language.adoc[Simple] language:
+The xref:transformDataType-eip.adoc[Transform DataType] references a given from/to data type (`org.apache.camel.spi.DataType`).
[tabs]
====
@@ -55,7 +52,7 @@ Java::
[source,java]
----
from("direct:cheese")
- .transform(simple("Hello ${body}"))
+ .transformDataType("myDataType")
.to("log:hello");
----
@@ -65,9 +62,7 @@ XML::
----
<route>
<from uri="direct:cheese"/>
- <transform>
- <simple>Hello ${body}</simple>
- </transform>
+ <transformDataType toType="myDataType"/>
<to uri="log:hello"/>
</route>
----
@@ -79,60 +74,14 @@ YAML::
- from:
uri: direct:cheese
steps:
- - transform:
- expression:
- simple: Hello ${body}
+ - transformDataType:
+ toType: myDataType
- to:
uri: log:hello
----
====
-The xref:transform-eip.adoc[Transform] may also reference a given from/to data type (`org.apache.camel.spi.DataType`).
-
-[tabs]
-====
-Java::
-+
-[source,java]
-----
-from("direct:cheese")
- .transform(new DataType("myDataType"))
- .to("log:hello");
-----
-
-XML::
-+
-[source,xml]
-----
-<route>
- <from uri="direct:cheese"/>
- <transform toType="myDataType"/>
- <to uri="log:hello"/>
-</route>
-----
-
-YAML::
-+
-[source,yaml]
-----
-- from:
- uri: direct:cheese
- steps:
- - transform:
- to-type: myDataType
- - to:
- uri: log:hello
-----
-====
-
-The example above defines the xref:transform-eip.adoc[Transform] EIP that uses a target data type `myDataType`.
+The example above defines the xref:transformDataType-eip.adoc[Transform DataType] EIP that uses a target data type `myDataType`.
The given data type may reference a xref:manual::transformer.adoc[Transformer] that is able to handle the data type transformation.
Users may also specify `fromType` in order to reference a very specific transformation from a given data type to a given data type.
-
-== What is the difference between Transform and Set Body?
-
-The Transform EIP always sets the result on the OUT message body.
-
-Set Body sets the result accordingly to the xref:manual::exchange-pattern.adoc[Exchange Pattern]
-on the `Exchange`.
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/aggregate.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/aggregate.json
index ff195f3a9376..0258cefbc750 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/aggregate.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/aggregate.json
@@ -43,7 +43,7 @@
"discardOnAggregationFailure": { "index": 28, "kind": "attribute", "displayName": "Discard On Aggregation Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Discards the aggregated message when aggregation failed (an exception was thrown from AggregationStrategy . This means the partly aggregated message is dropped an [...]
"forceCompletionOnStop": { "index": 29, "kind": "attribute", "displayName": "Force Completion On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to complete all current aggregated exchanges when the context is stopped" },
"completeAllOnStop": { "index": 30, "kind": "attribute", "displayName": "Complete All On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to wait to complete all current and partial (pending) aggregated exchanges when the context is stopped. This also means that we will wait for all pending exchanges which ar [...]
- "outputs": { "index": 31, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 31, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelAggregatedSize": { "index": 0, "kind": "exchangeProperty", "displayName": "Aggregated Size", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "important": true, "description": "Number of exchanges that was grouped together." },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/circuitBreaker.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/circuitBreaker.json
index 15ca6afa1e9b..597dac14a7b0 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/circuitBreaker.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/circuitBreaker.json
@@ -21,7 +21,7 @@
"resilience4jConfiguration": { "index": 6, "kind": "element", "displayName": "Resilience4j Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.Resilience4jConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use Resilience4j with the given configuration." },
"faultToleranceConfiguration": { "index": 7, "kind": "element", "displayName": "Fault Tolerance Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.FaultToleranceConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use MicroProfile Fault Tolerance with the given configuration." },
"onFallback": { "index": 8, "kind": "element", "displayName": "On Fallback", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnFallbackDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "The fallback route path to execute that does not go over the network. This should be a static or cached result that can immediately be returned upon failure. If the fallback requires network connection then use onFallbackV [...]
- "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelResponseSuccessfulExecution": { "index": 0, "kind": "exchangeProperty", "displayName": "Response Successful Execution", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Whether the exchange was processed successfully by the circuit breaker" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doCatch.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doCatch.json
index c67cab711aaf..59437fb0cd35 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doCatch.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doCatch.json
@@ -18,7 +18,7 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"exception": { "index": 4, "kind": "element", "displayName": "Exception", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "The exception(s) to catch." },
"onWhen": { "index": 5, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Used for triggering doCatch in specific situations" },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelExceptionCaught": { "index": 0, "kind": "exchangeProperty", "displayName": "Exception Caught", "label": "producer", "required": false, "javaType": "java.lang.Exception", "deprecated": false, "autowired": false, "secret": false, "description": "Stores the caught exception due to a processing error of the current Exchange" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doFinally.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doFinally.json
index 1185670b9c00..5c6f942fc65a 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doFinally.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doFinally.json
@@ -16,7 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelExceptionCaught": { "index": 0, "kind": "exchangeProperty", "displayName": "Exception Caught", "label": "producer", "required": false, "javaType": "java.lang.Exception", "deprecated": false, "autowired": false, "secret": false, "description": "Stores the caught exception due to a processing error of the current Exchange" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doTry.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doTry.json
index 51f2deb5a9f1..a775a4673650 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doTry.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/doTry.json
@@ -16,7 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
"doCatch": { "index": 5, "kind": "element", "displayName": "Do Catch", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.CatchDefinition>", "oneOf": [ "doCatch" ], "deprecated": false, "autowired": false, "secret": false, "description": "Catches exceptions as part of a try, catch, finally block" },
"doFinally": { "index": 6, "kind": "element", "displayName": "Do Finally", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.FinallyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Path traversed when a try, catch, finally block exits" }
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/filter.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/filter.json
index ed37ab5e6154..7afc95a7051e 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/filter.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/filter.json
@@ -18,6 +18,6 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
"statusPropertyName": { "index": 5, "kind": "attribute", "displayName": "Status Property Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of exchange property to use for storing the status of the filtering. Setting this allows to know if the filter predicate evaluated as true or false." },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/idempotentConsumer.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/idempotentConsumer.json
index 1354d7b2d678..0b6644db12ac 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/idempotentConsumer.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/idempotentConsumer.json
@@ -22,7 +22,7 @@
"completionEager": { "index": 7, "kind": "attribute", "displayName": "Completion Eager", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to complete the idempotent consumer eager or when the exchange is done. If this option is true to complete eager, then the idempotent consumer will trigger its completion when [...]
"skipDuplicate": { "index": 8, "kind": "attribute", "displayName": "Skip Duplicate", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to skip duplicates or not. The default behavior is to skip duplicates. A duplicate message would have the Exchange property org.apache.camel.Exchange#DUPLICATE_MESSAGE set to a Bool [...]
"removeOnFailure": { "index": 9, "kind": "attribute", "displayName": "Remove On Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to remove or keep the key on failure. The default behavior is to remove the key on failure." },
- "outputs": { "index": 10, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
+ "outputs": { "index": 10, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
},
"exchangeProperties": {
"CamelDuplicateMessage": { "index": 0, "kind": "exchangeProperty", "displayName": "Duplicate Message", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Whether this exchange is a duplicate detected by the Idempotent Consumer EIP" }
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/intercept.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/intercept.json
index 1ff3b285b56d..f60eb8585e34 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/intercept.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/intercept.json
@@ -17,7 +17,7 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"onWhen": { "index": 4, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger intercepting in specific situations" },
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelInterceptedNodeId": { "index": 0, "kind": "exchangeProperty", "displayName": "Intercepted Node Id", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The intercepted route's node ID" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptFrom.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptFrom.json
index 4d2eea391808..48c1db41eb4a 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptFrom.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptFrom.json
@@ -18,7 +18,7 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"uri": { "index": 4, "kind": "attribute", "displayName": "Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Intercept incoming messages from the uri or uri pattern. If this option is not configured, then all incoming messages is intercepted." },
"onWhen": { "index": 5, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger intercepting in specific situations" },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelInterceptedEndpoint": { "index": 0, "kind": "exchangeProperty", "displayName": "Intercepted Endpoint", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The endpoint URI that was intercepted" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptSendToEndpoint.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptSendToEndpoint.json
index 2e566ec3efb6..067e2d9c831d 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptSendToEndpoint.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/interceptSendToEndpoint.json
@@ -20,7 +20,7 @@
"skipSendToOriginalEndpoint": { "index": 5, "kind": "attribute", "displayName": "Skip Send To Original Endpoint", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "If set to true then the message is not sent to the original endpoint. By default (false) the message is both intercepted and then sent to the original endpoint." },
"afterUri": { "index": 6, "kind": "attribute", "displayName": "After Uri", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "After sending to the endpoint then send the message to this uri which allows to process its result." },
"onWhen": { "index": 7, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger intercepting sending to an endpoint in specific situations" },
- "outputs": { "index": 8, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 8, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelInterceptedEndpoint": { "index": 0, "kind": "exchangeProperty", "displayName": "Intercepted Endpoint", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The endpoint URI that was intercepted" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/kamelet.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/kamelet.json
index af19edd0679c..c05aa420e940 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/kamelet.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/kamelet.json
@@ -17,6 +17,6 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"name": { "index": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of the Kamelet (templateId\/routeId) to call. Options for the kamelet can be specified using uri syntax, eg mynamecount=4&type=gold." },
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadBalance.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadBalance.json
index 8777be7b7089..d5a30fd788df 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadBalance.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadBalance.json
@@ -17,6 +17,6 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"loadBalancerType": { "index": 4, "kind": "element", "displayName": "Load Balancer Type", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.LoadBalancerDefinition", "oneOf": [ "customLoadBalancer", "failoverLoadBalancer", "randomLoadBalancer", "roundRobinLoadBalancer", "stickyLoadBalancer", "topicLoadBalancer", "weightedLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "The load balancer to be used" },
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loop.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loop.json
index 8a5f3f53570e..e63fc0b56ff0 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loop.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loop.json
@@ -21,7 +21,7 @@
"doWhile": { "index": 6, "kind": "attribute", "displayName": "Do While", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables the while loop that loops until the predicate evaluates to false or null." },
"breakOnShutdown": { "index": 7, "kind": "attribute", "displayName": "Break On Shutdown", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the breakOnShutdown attribute is true, then the loop will not iterate until it reaches the end when Camel is shut down." },
"onPrepare": { "index": 8, "kind": "attribute", "displayName": "On Prepare", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.Processor", "deprecated": false, "autowired": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange for each loop iteration. This can be used to deep-clone messages, or any custom logic needed before the looping executes." },
- "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 9, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
},
"exchangeProperties": {
"CamelLoopIndex": { "index": 0, "kind": "exchangeProperty", "displayName": "Loop Index", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Index of the current iteration (0 based)." },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/multicast.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/multicast.json
index bc867ab8443f..d694495e2530 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/multicast.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/multicast.json
@@ -28,7 +28,7 @@
"executorService": { "index": 13, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well." },
"onPrepare": { "index": 14, "kind": "attribute", "displayName": "On Prepare", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.Processor", "deprecated": false, "autowired": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange to be send. This can be used to deep-clone messages that should be send, or any custom logic needed before the exchange is send." },
"shareUnitOfWork": { "index": 15, "kind": "attribute", "displayName": "Share Unit Of Work", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Multicast will by default not share unit of work between the parent exchange and each multicasted [...]
- "outputs": { "index": 16, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 16, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelMulticastIndex": { "index": 0, "kind": "exchangeProperty", "displayName": "Multicast Index", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "An index counter that increases for each Exchange being multicasted. The counter starts from 0." },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onCompletion.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onCompletion.json
index 2e1c3e1e48fa..1a3667990c98 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onCompletion.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onCompletion.json
@@ -23,7 +23,7 @@
"executorService": { "index": 8, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well." },
"useOriginalMessage": { "index": 9, "kind": "attribute", "displayName": "Use Original Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will use the original input message body when an org.apache.camel.Exchange for this on completion. The original input message is defensively copied, and the copied message body is co [...]
"onWhen": { "index": 10, "kind": "element", "displayName": "On When", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.OnWhenDefinition", "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "To use an expression to only trigger routing this completion steps in specific situations" },
- "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelOnCompletion": { "index": 0, "kind": "exchangeProperty", "displayName": "On Completion", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Flag to mark that this exchange is currently being executed as onCompletion" }
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onException.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onException.json
index 28d4f2f045f2..c5d37904e35d 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onException.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onException.json
@@ -27,7 +27,7 @@
"onExceptionOccurredRef": { "index": 12, "kind": "attribute", "displayName": "On Exception Occurred Ref", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Importan [...]
"useOriginalMessage": { "index": 13, "kind": "attribute", "displayName": "Use Original Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when [...]
"useOriginalBody": { "index": 14, "kind": "attribute", "displayName": "Use Original Body", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all rede [...]
- "outputs": { "index": 15, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 15, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
},
"exchangeProperties": {
"CamelExceptionCaught": { "index": 0, "kind": "exchangeProperty", "displayName": "Exception Caught", "label": "producer", "required": false, "javaType": "java.lang.Exception", "deprecated": false, "autowired": false, "secret": false, "description": "Stores the caught exception due to a processing error of the current Exchange" },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onFallback.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onFallback.json
index e00d2f11ad99..bb14d103e4f5 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onFallback.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onFallback.json
@@ -16,6 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"fallbackViaNetwork": { "index": 3, "kind": "attribute", "displayName": "Fallback Via Network", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure. It is important to execute the fallback command on a sep [...]
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/otherwise.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/otherwise.json
index 600ff42b2933..623d5420fde6 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/otherwise.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/otherwise.json
@@ -16,6 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pipeline.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pipeline.json
index 312a5f49d416..657308541d4f 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pipeline.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pipeline.json
@@ -16,6 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/resequence.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/resequence.json
index 30005f05b550..f25c4f71a987 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/resequence.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/resequence.json
@@ -18,6 +18,6 @@
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
"resequencerConfig": { "index": 5, "kind": "element", "displayName": "Resequencer Config", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.config.ResequencerConfig", "oneOf": [ "batchConfig", "streamConfig" ], "deprecated": false, "autowired": false, "secret": false, "description": "To configure the resequencer in using either batch or stream configuration. Will by default use batch configuration." },
- "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/route.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/route.json
index ded4371686ca..e1549f8963b7 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/route.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/route.json
@@ -34,6 +34,6 @@
"inputType": { "index": 19, "kind": "element", "displayName": "Input Type", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.InputTypeDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Declare the expected data type of the input message. If the actual message type is different at runtime, camel look for a required org.apache.camel.spi.Transformer and apply if exists. The type name co [...]
"outputType": { "index": 20, "kind": "element", "displayName": "Output Type", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.OutputTypeDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Declare the expected data type of the output message. If the actual message type is different at runtime, camel look for a required org.apache.camel.spi.Transformer and apply if exists. The type nam [...]
"input": { "index": 21, "kind": "element", "displayName": "Input", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.FromDefinition", "oneOf": [ "from" ], "deprecated": false, "autowired": false, "secret": false, "description": "Input to the route." },
- "outputs": { "index": 22, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<?>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint [...]
+ "outputs": { "index": 22, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<?>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/saga.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/saga.json
index 86bdf446d60a..1334df81a513 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/saga.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/saga.json
@@ -23,6 +23,6 @@
"compensation": { "index": 8, "kind": "element", "displayName": "Compensation", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.SagaActionUriDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "The compensation endpoint URI that must be called to compensate all changes done in the route. The route corresponding to the compensation URI must perform compensation and complete without error. If errors occur dur [...]
"completion": { "index": 9, "kind": "element", "displayName": "Completion", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.SagaActionUriDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "The completion endpoint URI that will be called when the Saga is completed successfully. The route corresponding to the completion URI must perform completion tasks and terminate without error. If errors occur during com [...]
"option": { "index": 10, "kind": "element", "displayName": "Option", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyExpressionDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to save properties of the current exchange in order to re-use them in a compensation\/completion callback route. Options are usually helpful e.g. to store and retrieve identifie [...]
- "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+ "outputs": { "index": 11, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
index e17f74d7b895..ce5ba9adbb72 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
@@ -30,7 +30,7 @@
"executorService": { "index": 15, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatically implied, and you do not have to enable that option as well." },
"onPrepare": { "index": 16, "kind": "attribute", "displayName": "On Prepare", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.Processor", "deprecated": false, "autowired": false, "secret": false, "description": "Uses the Processor when preparing the org.apache.camel.Exchange to be sent. This can be used to deep-clone messages that should be sent, or any custom logic needed before the exchange is sent." },
"shareUnitOfWork": { "index": 17, "kind": "attribute", "displayName": "Share Unit Of Work", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Splitter will by default not share unit of work between the parent exchange and each split exchan [...]
- "outputs": { "index": 18, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
+ "outputs": { "index": 18, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
},
"exchangeProperties": {
"CamelSplitIndex": { "index": 0, "kind": "exchangeProperty", "displayName": "Split Index", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "important": true, "description": "A split counter that increases for each Exchange being split. The counter starts from 0." },
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/step.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/step.json
index 811ca97d1071..7baa35debc5d 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/step.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/step.json
@@ -16,7 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
+ "outputs": { "index": 4, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "mar [...]
},
"exchangeProperties": {
"CamelStepId": { "index": 0, "kind": "exchangeProperty", "displayName": "Step Id", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of the Step EIP" }
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
index ae037a308be4..8afc014a4c81 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
@@ -16,8 +16,6 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
- "fromType": { "index": 5, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "From type used in data type transformation." },
- "toType": { "index": 6, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To type used as a target data type in the transformation." }
+ "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformDataType.json
similarity index 56%
copy from core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
copy to core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformDataType.json
index ae037a308be4..63fa4365ac0e 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transform.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/transformDataType.json
@@ -1,12 +1,12 @@
{
"model": {
"kind": "model",
- "name": "transform",
- "title": "Transform",
- "description": "Transforms the message body based on an expression",
+ "name": "transformDataType",
+ "title": "Transform Data Type",
+ "description": "Transforms the message body based on known data type transformers.",
"deprecated": false,
"label": "eip,transformation",
- "javaType": "org.apache.camel.model.TransformDefinition",
+ "javaType": "org.apache.camel.model.TransformDataTypeDefinition",
"abstract": false,
"input": true,
"output": false
@@ -16,8 +16,7 @@
"note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the note of this node" },
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
- "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
- "fromType": { "index": 5, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "From type used in data type transformation." },
- "toType": { "index": 6, "kind": "attribute", "displayName": "To Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To type used as a target data type in the transformation." }
+ "fromType": { "index": 4, "kind": "attribute", "displayName": "From Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "From type used in data type transformation." },
+ "toType": { "index": 5, "kind": "attribute", "displayName": "To Type", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To type used as a target data type in the transformation." }
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/when.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/when.json
index 1c3c6a01f2fc..2d714419952d 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/when.json
+++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/when.json
@@ -17,6 +17,6 @@
"description": { "index": 2, "kind": "attribute", "displayName": "Description", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" },
"disabled": { "index": 3, "kind": "attribute", "displayName": "Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables this EIP from the route." },
"expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "csimple", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "depre [...]
- "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
+ "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "intercept [...]
}
}
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
index 65d76944ca5c..7124fe9bf75a 100644
--- a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
@@ -228,6 +228,7 @@ tokenizer
topicLoadBalancer
transacted
transform
+transformDataType
transformers
univocityCsv
univocityFixed
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
index c0980ca25fbd..313eae219c3d 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/jaxb.index
@@ -108,6 +108,7 @@ ToDynamicDefinition
TokenizerDefinition
TokenizerImplementationDefinition
TransactedDefinition
+TransformDataTypeDefinition
TransformDefinition
TryDefinition
UnmarshalDefinition
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index 5900d9130b26..f6a6ad706b16 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -2858,42 +2858,61 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
/**
* <a href="http://camel.apache.org/message-translator.html">Message Translator EIP:</a> Adds a processor which sets
- * the body on the OUT message according to a data type transformation.
+ * the body on the OUT message
+ *
+ * @return a expression builder clause to set the body
+ */
+ public ExpressionClause<ProcessorDefinition<Type>> transform() {
+ ExpressionClause<ProcessorDefinition<Type>> clause = new ExpressionClause<>(this);
+ TransformDefinition answer = new TransformDefinition(clause);
+ addOutput(answer);
+ return clause;
+ }
+
+ /**
+ * To transform the message using known data types.
*
* @param fromType the data type representing the input of the transformation
* @param toType the data type representing the output of the transformation.
* @return the builder
*/
- public Type transform(DataType fromType, DataType toType) {
- TransformDefinition answer = new TransformDefinition(fromType, toType);
+ public Type transformDataType(DataType fromType, DataType toType) {
+ TransformDataTypeDefinition answer = new TransformDataTypeDefinition(fromType, toType);
addOutput(answer);
return asType();
}
/**
- * <a href="http://camel.apache.org/message-translator.html">Message Translator EIP:</a> Adds a processor which sets
- * the body on the OUT message according to a data type transformation.
+ * To transform the message using known data types.
+ *
+ * @param fromType the data type representing the input of the transformation
+ * @param toType the data type representing the output of the transformation.
+ * @return the builder
+ */
+ public Type transformDataType(String fromType, String toType) {
+ return transformDataType(new DataType(fromType), new DataType(toType));
+ }
+
+ /**
+ * To transform the message using known data types.
*
* @param toType the data type representing the output of the transformation.
* @return the builder
*/
- public Type transform(DataType toType) {
- TransformDefinition answer = new TransformDefinition(DataType.ANY, toType);
+ public Type transformDataType(DataType toType) {
+ TransformDataTypeDefinition answer = new TransformDataTypeDefinition(DataType.ANY, toType);
addOutput(answer);
return asType();
}
/**
- * <a href="http://camel.apache.org/message-translator.html">Message Translator EIP:</a> Adds a processor which sets
- * the body on the OUT message
+ * To transform the message using known data types.
*
- * @return a expression builder clause to set the body
+ * @param toType the data type representing the output of the transformation.
+ * @return the builder
*/
- public ExpressionClause<ProcessorDefinition<Type>> transform() {
- ExpressionClause<ProcessorDefinition<Type>> clause = new ExpressionClause<>(this);
- TransformDefinition answer = new TransformDefinition(clause);
- addOutput(answer);
- return clause;
+ public Type transformDataType(String toType) {
+ return transformDataType(new DataType(toType));
}
/**
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDataTypeDefinition.java
similarity index 58%
copy from core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java
copy to core/camel-core-model/src/main/java/org/apache/camel/model/TransformDataTypeDefinition.java
index 9cbd40a53c15..9c8ed1513279 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDataTypeDefinition.java
@@ -21,85 +21,62 @@ import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement;
-import org.apache.camel.Expression;
-import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.spi.DataType;
import org.apache.camel.spi.Metadata;
/**
- * Transforms the message body based on an expression
+ * Transforms the message body based on known data type transformers.
*/
@Metadata(label = "eip,transformation")
-@XmlRootElement(name = "transform")
+@XmlRootElement(name = "transformDataType")
@XmlAccessorType(XmlAccessType.FIELD)
-public class TransformDefinition extends ExpressionNode {
+public class TransformDataTypeDefinition extends NoOutputDefinition<TransformDataTypeDefinition> {
@XmlAttribute
private String fromType;
- @XmlAttribute
+ @XmlAttribute(required = true)
private String toType;
- public TransformDefinition() {
+ public TransformDataTypeDefinition() {
}
- protected TransformDefinition(TransformDefinition source) {
+ protected TransformDataTypeDefinition(TransformDataTypeDefinition source) {
super(source);
this.fromType = source.fromType;
this.toType = source.toType;
}
- public TransformDefinition(Expression expression) {
- super(expression);
- }
-
- public TransformDefinition(DataType fromType, DataType toType) {
+ public TransformDataTypeDefinition(DataType fromType, DataType toType) {
this.fromType = fromType.getFullName();
this.toType = toType.getFullName();
}
@Override
- public TransformDefinition copyDefinition() {
- return new TransformDefinition(this);
+ public TransformDataTypeDefinition copyDefinition() {
+ return new TransformDataTypeDefinition(this);
}
@Override
public String toString() {
- if (toType != null) {
- if (fromType != null) {
- return "Transform[" + fromType + ", " + toType + "]";
- } else {
- return "Transform[" + toType + "]";
- }
+ if (fromType != null) {
+ return "TransformDataType[" + fromType + ", " + toType + "]";
+ } else {
+ return "TransformDataType[" + toType + "]";
}
-
- return "Transform[" + getExpression() + "]";
}
@Override
public String getShortName() {
- return "transform";
+ return "transformDataType";
}
@Override
public String getLabel() {
- if (toType != null) {
- if (fromType != null) {
- return "transform[" + fromType + ", " + toType + "]";
- } else {
- return "transform[" + toType + "]";
- }
+ if (fromType != null) {
+ return "transformDataType[" + fromType + ", " + toType + "]";
+ } else {
+ return "transformDataType[" + toType + "]";
}
-
- return "transform[" + getExpression() + "]";
- }
-
- /**
- * Expression to return the transformed message body (the new message body to use)
- */
- @Override
- public void setExpression(ExpressionDefinition expression) {
- // override to include javadoc what the expression is used for
- super.setExpression(expression);
}
/**
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java
index 9cbd40a53c15..c8a15580f469 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/TransformDefinition.java
@@ -18,12 +18,10 @@ package org.apache.camel.model;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement;
import org.apache.camel.Expression;
import org.apache.camel.model.language.ExpressionDefinition;
-import org.apache.camel.spi.DataType;
import org.apache.camel.spi.Metadata;
/**
@@ -34,29 +32,17 @@ import org.apache.camel.spi.Metadata;
@XmlAccessorType(XmlAccessType.FIELD)
public class TransformDefinition extends ExpressionNode {
- @XmlAttribute
- private String fromType;
- @XmlAttribute
- private String toType;
-
public TransformDefinition() {
}
protected TransformDefinition(TransformDefinition source) {
super(source);
- this.fromType = source.fromType;
- this.toType = source.toType;
}
public TransformDefinition(Expression expression) {
super(expression);
}
- public TransformDefinition(DataType fromType, DataType toType) {
- this.fromType = fromType.getFullName();
- this.toType = toType.getFullName();
- }
-
@Override
public TransformDefinition copyDefinition() {
return new TransformDefinition(this);
@@ -64,14 +50,6 @@ public class TransformDefinition extends ExpressionNode {
@Override
public String toString() {
- if (toType != null) {
- if (fromType != null) {
- return "Transform[" + fromType + ", " + toType + "]";
- } else {
- return "Transform[" + toType + "]";
- }
- }
-
return "Transform[" + getExpression() + "]";
}
@@ -82,14 +60,6 @@ public class TransformDefinition extends ExpressionNode {
@Override
public String getLabel() {
- if (toType != null) {
- if (fromType != null) {
- return "transform[" + fromType + ", " + toType + "]";
- } else {
- return "transform[" + toType + "]";
- }
- }
-
return "transform[" + getExpression() + "]";
}
@@ -102,25 +72,4 @@ public class TransformDefinition extends ExpressionNode {
super.setExpression(expression);
}
- /**
- * From type used in data type transformation.
- */
- public void setFromType(String fromType) {
- this.fromType = fromType;
- }
-
- public String getFromType() {
- return fromType;
- }
-
- /**
- * To type used as a target data type in the transformation.
- */
- public void setToType(String toType) {
- this.toType = toType;
- }
-
- public String getToType() {
- return toType;
- }
}
diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/DataTypeProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/DataTypeProcessor.java
index 62c38779cd8d..f14dbfc7dba1 100644
--- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/DataTypeProcessor.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/transformer/DataTypeProcessor.java
@@ -14,39 +14,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.processor.transformer;
-import java.util.Optional;
-
+import org.apache.camel.AsyncCallback;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelExecutionException;
+import org.apache.camel.CamelContextAware;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
-import org.apache.camel.Processor;
+import org.apache.camel.processor.BaseProcessorSupport;
import org.apache.camel.spi.DataType;
import org.apache.camel.spi.DataTypeAware;
import org.apache.camel.spi.Transformer;
import org.apache.camel.spi.TransformerKey;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Processor applies data type conversion based on given format name. Searches for matching data type transformer in
* context and applies its logic.
*/
-public class DataTypeProcessor implements Processor {
-
- public static final String DATA_TYPE_PROPERTY = "CamelDataType";
-
- private static final Logger LOG = LoggerFactory.getLogger(DataTypeProcessor.class);
+public class DataTypeProcessor extends BaseProcessorSupport implements CamelContextAware {
+ private CamelContext camelContext;
private String fromType;
private String toType;
- private boolean ignoreMissingDataType;
-
private Transformer transformer;
+ private DataType fromDataType;
+ private DataType toDataType;
public DataTypeProcessor() {
}
@@ -57,49 +50,58 @@ public class DataTypeProcessor implements Processor {
}
@Override
- public void process(Exchange exchange) throws Exception {
- if (toType == null && exchange.hasProperties() && exchange.getProperties().containsKey(DATA_TYPE_PROPERTY)) {
- toType = exchange.getProperty(DATA_TYPE_PROPERTY, String.class);
- }
+ public CamelContext getCamelContext() {
+ return camelContext;
+ }
- if (toType == null || toType.isEmpty()) {
- return;
- }
+ @Override
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
- Message message = exchange.getMessage();
+ @Override
+ protected void doInit() throws Exception {
+ super.doInit();
- DataType toDataType = new DataType(toType);
- DataType fromDataType = DataType.ANY;
+ toDataType = new DataType(toType);
+ fromDataType = DataType.ANY;
if (fromType != null) {
fromDataType = new DataType(fromType);
- } else if (message instanceof DataTypeAware && ((DataTypeAware) message).hasDataType()) {
- fromDataType = ((DataTypeAware) message).getDataType();
}
- Optional<Transformer> dataTypeTransformer = doLookupTransformer(exchange.getContext(), fromDataType, toDataType);
- if (dataTypeTransformer.isPresent()) {
- dataTypeTransformer.get().transform(message, fromDataType, toDataType);
- } else if (ignoreMissingDataType) {
- LOG.debug("Unable to find data type transformer from {} to type {}", fromDataType, toDataType);
- } else {
- throw new CamelExecutionException(
- String.format("Missing data type transformer from %s to type %s", fromDataType, toDataType), exchange);
+ transformer
+ = getCamelContext().getTransformerRegistry().resolveTransformer(new TransformerKey(fromDataType, toDataType));
+ if (transformer == null) {
+ throw new IllegalArgumentException("No transformer from: " + fromType + " to:" + toType);
}
}
- private Optional<Transformer> doLookupTransformer(CamelContext context, DataType fromType, DataType toType) {
- if (transformer != null) {
- return Optional.of(transformer);
- }
+ @Override
+ public boolean process(Exchange exchange, AsyncCallback callback) {
+ Message message = exchange.getMessage();
- Transformer maybeTransformer
- = context.getTransformerRegistry().resolveTransformer(new TransformerKey(fromType, toType));
- if (maybeTransformer != null) {
- this.transformer = maybeTransformer;
- return Optional.of(maybeTransformer);
+ try {
+ DataType fromDT = fromDataType;
+ Transformer target = transformer;
+ if (fromType == null && message instanceof DataTypeAware dta && dta.hasDataType()) {
+ fromDT = dta.getDataType();
+ target = getCamelContext().getTransformerRegistry()
+ .resolveTransformer(new TransformerKey(fromDT, toDataType));
+ if (target == null) {
+ exchange.setException(new IllegalArgumentException(
+ "Cannot resolve transformer from: " + fromDT + " to: " + toDataType));
+ }
+ }
+ if (target != null) {
+ target.transform(message, fromDT, toDataType);
+ }
+ } catch (Exception e) {
+ exchange.setException(e);
+ } finally {
+ callback.done(true);
}
- return Optional.empty();
+ return true;
}
public void setFromType(String fromType) {
@@ -114,7 +116,4 @@ public class DataTypeProcessor implements Processor {
this.transformer = transformer;
}
- public void setIgnoreMissingDataType(boolean ignoreMissingDataType) {
- this.ignoreMissingDataType = ignoreMissingDataType;
- }
}
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 7c92b00c5b76..bc4fa9ade67b 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -106,6 +106,7 @@ import org.apache.camel.model.ToDefinition;
import org.apache.camel.model.ToDynamicDefinition;
import org.apache.camel.model.TokenizerDefinition;
import org.apache.camel.model.TransactedDefinition;
+import org.apache.camel.model.TransformDataTypeDefinition;
import org.apache.camel.model.TransformDefinition;
import org.apache.camel.model.TryDefinition;
import org.apache.camel.model.UnmarshalDefinition;
@@ -329,6 +330,8 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends
return new TransactedReifier(route, definition);
} else if (definition instanceof TransformDefinition) {
return new TransformReifier(route, definition);
+ } else if (definition instanceof TransformDataTypeDefinition) {
+ return new TransformDataTypeReifier(route, definition);
} else if (definition instanceof TryDefinition) {
return new TryReifier(route, definition);
} else if (definition instanceof UnmarshalDefinition) {
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformDataTypeReifier.java
similarity index 57%
copy from core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java
copy to core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformDataTypeReifier.java
index 58368cc406e2..3a96ef9ba2c8 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformDataTypeReifier.java
@@ -16,32 +16,21 @@
*/
package org.apache.camel.reifier;
-import org.apache.camel.Expression;
import org.apache.camel.Processor;
import org.apache.camel.Route;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.TransformDefinition;
-import org.apache.camel.processor.TransformProcessor;
+import org.apache.camel.model.TransformDataTypeDefinition;
import org.apache.camel.processor.transformer.DataTypeProcessor;
-public class TransformReifier extends ExpressionReifier<TransformDefinition> {
+public class TransformDataTypeReifier extends ProcessorReifier<TransformDataTypeDefinition> {
- public TransformReifier(Route route, ProcessorDefinition<?> definition) {
- super(route, (TransformDefinition) definition);
+ public TransformDataTypeReifier(Route route, ProcessorDefinition<?> definition) {
+ super(route, (TransformDataTypeDefinition) definition);
}
@Override
public Processor createProcessor() throws Exception {
- if (definition.getExpression() != null && definition.getToType() != null) {
- throw new IllegalArgumentException(
- "Both expression and data type set on transform EIP - please choose only one of them");
- }
- if (definition.getToType() != null) {
- return new DataTypeProcessor(definition.getFromType(), definition.getToType());
- }
-
- Expression expr = createExpression(definition.getExpression());
- TransformProcessor answer = new TransformProcessor(expr);
+ DataTypeProcessor answer = new DataTypeProcessor(definition.getFromType(), definition.getToType());
answer.setDisabled(isDisabled(camelContext, definition));
return answer;
}
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java
index 58368cc406e2..f7e77bbe87b1 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/TransformReifier.java
@@ -22,7 +22,6 @@ import org.apache.camel.Route;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.TransformDefinition;
import org.apache.camel.processor.TransformProcessor;
-import org.apache.camel.processor.transformer.DataTypeProcessor;
public class TransformReifier extends ExpressionReifier<TransformDefinition> {
@@ -32,14 +31,6 @@ public class TransformReifier extends ExpressionReifier<TransformDefinition> {
@Override
public Processor createProcessor() throws Exception {
- if (definition.getExpression() != null && definition.getToType() != null) {
- throw new IllegalArgumentException(
- "Both expression and data type set on transform EIP - please choose only one of them");
- }
- if (definition.getToType() != null) {
- return new DataTypeProcessor(definition.getFromType(), definition.getToType());
- }
-
Expression expr = createExpression(definition.getExpression());
TransformProcessor answer = new TransformProcessor(expr);
answer.setDisabled(isDisabled(camelContext, definition));
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java
index dd08d403640a..71cecd1bda80 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java
@@ -27,9 +27,9 @@ public class TransformDataTypeProcessorTest extends TransformViaDSLTest {
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- transformer().name("myDataType").withJava(MyDataTypeTransformer.class);
// START SNIPPET: example
- from("direct:start").transform(new DataType("myDataType")).to("mock:result");
+ transformer().name("myDataType").withJava(MyDataTypeTransformer.class);
+ from("direct:start").transformDataType(new DataType("myDataType")).to("mock:result");
// END SNIPPET: example
}
};
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeTextPlainTest.java
similarity index 65%
copy from core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java
copy to core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeTextPlainTest.java
index dd08d403640a..acd9f27a7f3c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeProcessorTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/TransformDataTypeTextPlainTest.java
@@ -16,30 +16,33 @@
*/
package org.apache.camel.processor;
-import org.apache.camel.Message;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.spi.DataType;
-import org.apache.camel.spi.Transformer;
+import org.junit.jupiter.api.Test;
-public class TransformDataTypeProcessorTest extends TransformViaDSLTest {
+public class TransformDataTypeTextPlainTest extends ContextTestSupport {
+
+ @Test
+ public void testTextPlain() throws Exception {
+ getMockEndpoint("mock:result").expectedBodiesReceived("Hello");
+ getMockEndpoint("mock:result").expectedHeaderReceived(Exchange.CONTENT_TYPE, "text/plain");
+
+ sendBody("direct:start", "Hello".getBytes());
+
+ assertMockEndpointsSatisfied();
+ }
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- transformer().name("myDataType").withJava(MyDataTypeTransformer.class);
// START SNIPPET: example
- from("direct:start").transform(new DataType("myDataType")).to("mock:result");
+ from("direct:start").transformDataType(new DataType("text/plain")).to("mock:result");
// END SNIPPET: example
}
};
}
- public static class MyDataTypeTransformer extends Transformer {
-
- @Override
- public void transform(Message message, DataType from, DataType to) {
- message.setBody(message.getBody(String.class) + " World!");
- }
- }
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/transformer/DataTypeProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/transformer/DataTypeProcessorTest.java
index cb3baab71d56..a46c26c9af6e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/transformer/DataTypeProcessorTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/transformer/DataTypeProcessorTest.java
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.processor.transformer;
import java.io.ByteArrayInputStream;
@@ -29,7 +28,7 @@ import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
-class DataTypeProcessorTest {
+public class DataTypeProcessorTest {
private final DefaultCamelContext camelContext = new DefaultCamelContext();
@@ -46,6 +45,7 @@ class DataTypeProcessorTest {
exchange.getMessage().setBody(new ByteArrayInputStream("Test".getBytes(StandardCharsets.UTF_8)));
processor.setToType("uppercase");
+ processor.start();
processor.process(exchange);
assertEquals(String.class, exchange.getMessage().getBody().getClass());
@@ -58,22 +58,11 @@ class DataTypeProcessorTest {
exchange.getMessage().setBody(new ByteArrayInputStream("Test".getBytes(StandardCharsets.UTF_8)));
processor.setToType("lowercase");
+ processor.start();
processor.process(exchange);
assertEquals(String.class, exchange.getMessage().getBody().getClass());
assertEquals("test", exchange.getMessage().getBody());
}
- @Test
- public void shouldIgnoreUnknownDataType() throws Exception {
- Exchange exchange = new DefaultExchange(camelContext);
-
- exchange.getMessage().setBody(new ByteArrayInputStream("Test".getBytes(StandardCharsets.UTF_8)));
- processor.setIgnoreMissingDataType(true);
- processor.setToType("foo:unknown");
- processor.process(exchange);
-
- assertEquals(ByteArrayInputStream.class, exchange.getMessage().getBody().getClass());
- assertEquals("Test", exchange.getMessage().getBody(String.class));
- }
}
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDataTypeTransformMBean.java
similarity index 78%
copy from core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
copy to core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDataTypeTransformMBean.java
index 271319f92032..fa24c068a755 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDataTypeTransformMBean.java
@@ -18,13 +18,7 @@ package org.apache.camel.api.management.mbean;
import org.apache.camel.api.management.ManagedAttribute;
-public interface ManagedTransformMBean extends ManagedProcessorMBean {
-
- @ManagedAttribute(description = "The language for the expression")
- String getExpressionLanguage();
-
- @ManagedAttribute(description = "Expression to return the transformed message body (the new message body to use)")
- String getExpression();
+public interface ManagedDataTypeTransformMBean extends ManagedProcessorMBean {
@ManagedAttribute(description = "Data type used as defined input for the message transformation")
String getFromType();
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
index 271319f92032..23827554acc9 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java
@@ -26,10 +26,4 @@ public interface ManagedTransformMBean extends ManagedProcessorMBean {
@ManagedAttribute(description = "Expression to return the transformed message body (the new message body to use)")
String getExpression();
- @ManagedAttribute(description = "Data type used as defined input for the message transformation")
- String getFromType();
-
- @ManagedAttribute(description = "Data type representing the defined outcome of a data type transformation (the new message body to use)")
- String getToType();
-
}
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
index 7f88c619bc15..235b3af843f2 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
@@ -47,6 +47,7 @@ import org.apache.camel.management.mbean.ManagedConvertHeader;
import org.apache.camel.management.mbean.ManagedConvertVariable;
import org.apache.camel.management.mbean.ManagedCustomLoadBalancer;
import org.apache.camel.management.mbean.ManagedDataFormat;
+import org.apache.camel.management.mbean.ManagedDataTypeTransformer;
import org.apache.camel.management.mbean.ManagedDelayer;
import org.apache.camel.management.mbean.ManagedDisabled;
import org.apache.camel.management.mbean.ManagedDoCatch;
@@ -117,7 +118,6 @@ import org.apache.camel.model.LoadBalanceDefinition;
import org.apache.camel.model.ProcessDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.RecipientListDefinition;
-import org.apache.camel.model.TransformDefinition;
import org.apache.camel.model.loadbalancer.CustomLoadBalancerDefinition;
import org.apache.camel.processor.CatchProcessor;
import org.apache.camel.processor.ChoiceProcessor;
@@ -452,8 +452,8 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy
answer = new ManagedThrowException(context, (ThrowExceptionProcessor) target, definition);
} else if (target instanceof TransformProcessor) {
answer = new ManagedTransformer(context, target, cast(definition));
- } else if (target instanceof DataTypeProcessor && definition instanceof TransformDefinition) {
- answer = new ManagedTransformer(context, target, (TransformDefinition) definition);
+ } else if (target instanceof DataTypeProcessor) {
+ answer = new ManagedDataTypeTransformer(context, target, cast(definition));
} else if (target instanceof PredicateValidatingProcessor) {
answer = new ManagedValidate(context, (PredicateValidatingProcessor) target, cast(definition));
} else if (target instanceof WireTapProcessor) {
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedDataTypeTransformer.java
similarity index 63%
copy from core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java
copy to core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedDataTypeTransformer.java
index 00916eb866e6..68dc373c3586 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedDataTypeTransformer.java
@@ -19,29 +19,19 @@ package org.apache.camel.management.mbean;
import org.apache.camel.CamelContext;
import org.apache.camel.Processor;
import org.apache.camel.api.management.ManagedResource;
-import org.apache.camel.api.management.mbean.ManagedTransformMBean;
-import org.apache.camel.model.TransformDefinition;
+import org.apache.camel.api.management.mbean.ManagedDataTypeTransformMBean;
+import org.apache.camel.model.TransformDataTypeDefinition;
-@ManagedResource(description = "Managed Transformer")
-public class ManagedTransformer extends ManagedProcessor implements ManagedTransformMBean {
+@ManagedResource(description = "Managed Data Type Transformer")
+public class ManagedDataTypeTransformer extends ManagedProcessor implements ManagedDataTypeTransformMBean {
- public ManagedTransformer(CamelContext context, Processor processor, TransformDefinition definition) {
+ public ManagedDataTypeTransformer(CamelContext context, Processor processor, TransformDataTypeDefinition definition) {
super(context, processor, definition);
}
@Override
- public TransformDefinition getDefinition() {
- return (TransformDefinition) super.getDefinition();
- }
-
- @Override
- public String getExpressionLanguage() {
- return getDefinition().getExpression().getLanguage();
- }
-
- @Override
- public String getExpression() {
- return getDefinition().getExpression().getExpression();
+ public TransformDataTypeDefinition getDefinition() {
+ return (TransformDataTypeDefinition) super.getDefinition();
}
@Override
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java
index 00916eb866e6..f783fc44d3e9 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedTransformer.java
@@ -44,13 +44,4 @@ public class ManagedTransformer extends ManagedProcessor implements ManagedTrans
return getDefinition().getExpression().getExpression();
}
- @Override
- public String getFromType() {
- return getDefinition().getFromType();
- }
-
- @Override
- public String getToType() {
- return getDefinition().getToType();
- }
}
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index 28d34bce938d..f1ae5797889e 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -1301,12 +1301,15 @@ public class ModelParser extends BaseParser {
default: yield processorDefinitionAttributeHandler().accept(def, key, val);
}, outputDefinitionElementHandler(), noValueHandler());
}
- protected TransformDefinition doParseTransformDefinition() throws IOException, XmlPullParserException {
- return doParse(new TransformDefinition(), (def, key, val) -> switch (key) {
+ protected TransformDataTypeDefinition doParseTransformDataTypeDefinition() throws IOException, XmlPullParserException {
+ return doParse(new TransformDataTypeDefinition(), (def, key, val) -> switch (key) {
case "fromType": def.setFromType(val); yield true;
case "toType": def.setToType(val); yield true;
default: yield processorDefinitionAttributeHandler().accept(def, key, val);
- }, expressionNodeElementHandler(), noValueHandler());
+ }, optionalIdentifiedDefinitionElementHandler(), noValueHandler());
+ }
+ protected TransformDefinition doParseTransformDefinition() throws IOException, XmlPullParserException {
+ return doParse(new TransformDefinition(), processorDefinitionAttributeHandler(), expressionNodeElementHandler(), noValueHandler());
}
protected TryDefinition doParseTryDefinition() throws IOException, XmlPullParserException {
return doParse(new TryDefinition(), processorDefinitionAttributeHandler(), outputDefinitionElementHandler(), noValueHandler());
@@ -2941,6 +2944,7 @@ public class ModelParser extends BaseParser {
case "toD": return doParseToDynamicDefinition();
case "tokenizer": return doParseTokenizerDefinition();
case "transacted": return doParseTransactedDefinition();
+ case "transformDataType": return doParseTransformDataTypeDefinition();
case "transform": return doParseTransformDefinition();
case "doTry": return doParseTryDefinition();
case "unmarshal": return doParseUnmarshalDefinition();
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
index eacf991ebe83..46faea7549b1 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
@@ -348,6 +348,9 @@ public class ModelWriter extends BaseWriter {
public void writeTransactedDefinition(TransactedDefinition def) throws IOException {
doWriteTransactedDefinition("transacted", def);
}
+ public void writeTransformDataTypeDefinition(TransformDataTypeDefinition def) throws IOException {
+ doWriteTransformDataTypeDefinition("transformDataType", def);
+ }
public void writeTransformDefinition(TransformDefinition def) throws IOException {
doWriteTransformDefinition("transform", def);
}
@@ -1947,11 +1950,16 @@ public class ModelWriter extends BaseWriter {
doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
endElement(name);
}
- protected void doWriteTransformDefinition(String name, TransformDefinition def) throws IOException {
+ protected void doWriteTransformDataTypeDefinition(String name, TransformDataTypeDefinition def) throws IOException {
startElement(name);
doWriteProcessorDefinitionAttributes(def);
doWriteAttribute("toType", def.getToType(), null);
doWriteAttribute("fromType", def.getFromType(), null);
+ endElement(name);
+ }
+ protected void doWriteTransformDefinition(String name, TransformDefinition def) throws IOException {
+ startElement(name);
+ doWriteProcessorDefinitionAttributes(def);
doWriteExpressionNodeElements(def);
endElement(name);
}
@@ -3905,6 +3913,7 @@ public class ModelWriter extends BaseWriter {
case "ToDynamicDefinition" -> doWriteToDynamicDefinition("toD", (ToDynamicDefinition) v);
case "TokenizerDefinition" -> doWriteTokenizerDefinition("tokenizer", (TokenizerDefinition) v);
case "TransactedDefinition" -> doWriteTransactedDefinition("transacted", (TransactedDefinition) v);
+ case "TransformDataTypeDefinition" -> doWriteTransformDataTypeDefinition("transformDataType", (TransformDataTypeDefinition) v);
case "TransformDefinition" -> doWriteTransformDefinition("transform", (TransformDefinition) v);
case "TryDefinition" -> doWriteTryDefinition("doTry", (TryDefinition) v);
case "UnmarshalDefinition" -> doWriteUnmarshalDefinition("unmarshal", (UnmarshalDefinition) v);
@@ -3999,6 +4008,7 @@ public class ModelWriter extends BaseWriter {
case "ToDynamicDefinition" -> doWriteToDynamicDefinition("toD", (ToDynamicDefinition) v);
case "TokenizerDefinition" -> doWriteTokenizerDefinition("tokenizer", (TokenizerDefinition) v);
case "TransactedDefinition" -> doWriteTransactedDefinition("transacted", (TransactedDefinition) v);
+ case "TransformDataTypeDefinition" -> doWriteTransformDataTypeDefinition("transformDataType", (TransformDataTypeDefinition) v);
case "TransformDefinition" -> doWriteTransformDefinition("transform", (TransformDefinition) v);
case "TryDefinition" -> doWriteTryDefinition("doTry", (TryDefinition) v);
case "UnmarshalDefinition" -> doWriteUnmarshalDefinition("unmarshal", (UnmarshalDefinition) v);
diff --git a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
index 900dc4ae34af..4ab66c4fe127 100644
--- a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
+++ b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java
@@ -348,6 +348,9 @@ public class ModelWriter extends BaseWriter {
public void writeTransactedDefinition(TransactedDefinition def) throws IOException {
doWriteTransactedDefinition("transacted", def);
}
+ public void writeTransformDataTypeDefinition(TransformDataTypeDefinition def) throws IOException {
+ doWriteTransformDataTypeDefinition("transformDataType", def);
+ }
public void writeTransformDefinition(TransformDefinition def) throws IOException {
doWriteTransformDefinition("transform", def);
}
@@ -1947,11 +1950,16 @@ public class ModelWriter extends BaseWriter {
doWriteList(null, null, def.getOutputs(), this::doWriteProcessorDefinitionRef);
endElement(name);
}
- protected void doWriteTransformDefinition(String name, TransformDefinition def) throws IOException {
+ protected void doWriteTransformDataTypeDefinition(String name, TransformDataTypeDefinition def) throws IOException {
startElement(name);
doWriteProcessorDefinitionAttributes(def);
doWriteAttribute("toType", def.getToType(), null);
doWriteAttribute("fromType", def.getFromType(), null);
+ endElement(name);
+ }
+ protected void doWriteTransformDefinition(String name, TransformDefinition def) throws IOException {
+ startElement(name);
+ doWriteProcessorDefinitionAttributes(def);
doWriteExpressionNodeElements(def);
endElement(name);
}
@@ -3905,6 +3913,7 @@ public class ModelWriter extends BaseWriter {
case "ToDynamicDefinition" -> doWriteToDynamicDefinition("toD", (ToDynamicDefinition) v);
case "TokenizerDefinition" -> doWriteTokenizerDefinition("tokenizer", (TokenizerDefinition) v);
case "TransactedDefinition" -> doWriteTransactedDefinition("transacted", (TransactedDefinition) v);
+ case "TransformDataTypeDefinition" -> doWriteTransformDataTypeDefinition("transformDataType", (TransformDataTypeDefinition) v);
case "TransformDefinition" -> doWriteTransformDefinition("transform", (TransformDefinition) v);
case "TryDefinition" -> doWriteTryDefinition("doTry", (TryDefinition) v);
case "UnmarshalDefinition" -> doWriteUnmarshalDefinition("unmarshal", (UnmarshalDefinition) v);
@@ -3999,6 +4008,7 @@ public class ModelWriter extends BaseWriter {
case "ToDynamicDefinition" -> doWriteToDynamicDefinition("toD", (ToDynamicDefinition) v);
case "TokenizerDefinition" -> doWriteTokenizerDefinition("tokenizer", (TokenizerDefinition) v);
case "TransactedDefinition" -> doWriteTransactedDefinition("transacted", (TransactedDefinition) v);
+ case "TransformDataTypeDefinition" -> doWriteTransformDataTypeDefinition("transformDataType", (TransformDataTypeDefinition) v);
case "TransformDefinition" -> doWriteTransformDefinition("transform", (TransformDefinition) v);
case "TryDefinition" -> doWriteTryDefinition("doTry", (TryDefinition) v);
case "UnmarshalDefinition" -> doWriteUnmarshalDefinition("unmarshal", (UnmarshalDefinition) v);
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
index ce8a67ded6a0..863a7ae6a614 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
@@ -13,6 +13,29 @@ See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details.
== Upgrading Camel 4.16 to 4.17
+=== camel-core
+
+The `transform` EIP has moved the data-type function to a new specialized `transformDataType` EIP that
+works across all DSLs (Java, XML and YAML).
+
+For Java DSL that means code should be changed
+
+[source,java]
+----
+from("direct:start")
+ .transform(new DataType("myDataType"))
+ .to("mock:result");
+----
+
+to:
+
+[source,java]
+----
+from("direct:start")
+ .transformDataType(new DataType("myDataType"))
+ .to("mock:result");
+----
+
=== camel-jbang
The `camel-kamelets-catalog` JAR is now downloaded on-demand.
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 2d91e126c232..6b0a462ce456 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
@@ -101,6 +101,7 @@ import org.apache.camel.model.ToDynamicDefinition;
import org.apache.camel.model.TokenizerDefinition;
import org.apache.camel.model.TokenizerImplementationDefinition;
import org.apache.camel.model.TransactedDefinition;
+import org.apache.camel.model.TransformDataTypeDefinition;
import org.apache.camel.model.TransformDefinition;
import org.apache.camel.model.TryDefinition;
import org.apache.camel.model.UnmarshalDefinition;
@@ -19847,6 +19848,75 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
}
}
+ @YamlType(
+ nodes = "transformDataType",
+ types = org.apache.camel.model.TransformDataTypeDefinition.class,
+ order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+ displayName = "Transform Data Type",
+ description = "Transforms the message body based on known data type transformers.",
+ deprecated = false,
+ properties = {
+ @YamlProperty(name = "description", type = "string", description = "Sets the description of this node", displayName = "Description"),
+ @YamlProperty(name = "disabled", type = "boolean", defaultValue = "false", description = "Disables this EIP from the route.", displayName = "Disabled"),
+ @YamlProperty(name = "fromType", type = "string", description = "From type used in data type transformation.", displayName = "From Type"),
+ @YamlProperty(name = "id", type = "string", description = "Sets the id of this node", displayName = "Id"),
+ @YamlProperty(name = "note", type = "string", description = "Sets the note of this node", displayName = "Note"),
+ @YamlProperty(name = "toType", type = "string", required = true, description = "To type used as a target data type in the transformation.", displayName = "To Type")
+ }
+ )
+ public static class TransformDataTypeDefinitionDeserializer extends YamlDeserializerBase<TransformDataTypeDefinition> {
+ public TransformDataTypeDefinitionDeserializer() {
+ super(TransformDataTypeDefinition.class);
+ }
+
+ @Override
+ protected TransformDataTypeDefinition newInstance() {
+ return new TransformDataTypeDefinition();
+ }
+
+ @Override
+ protected boolean setProperty(TransformDataTypeDefinition target, String propertyKey,
+ String propertyName, Node node) {
+ propertyKey = org.apache.camel.util.StringHelper.dashToCamelCase(propertyKey);
+ switch(propertyKey) {
+ case "disabled": {
+ String val = asText(node);
+ target.setDisabled(val);
+ break;
+ }
+ case "fromType": {
+ String val = asText(node);
+ target.setFromType(val);
+ break;
+ }
+ case "toType": {
+ String val = asText(node);
+ target.setToType(val);
+ break;
+ }
+ case "id": {
+ String val = asText(node);
+ target.setId(val);
+ break;
+ }
+ case "description": {
+ String val = asText(node);
+ target.setDescription(val);
+ break;
+ }
+ case "note": {
+ String val = asText(node);
+ target.setNote(val);
+ break;
+ }
+ default: {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+
@YamlType(
nodes = "transform",
types = org.apache.camel.model.TransformDefinition.class,
@@ -19859,10 +19929,8 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
@YamlProperty(name = "description", type = "string", description = "Sets the description of this node", displayName = "Description"),
@YamlProperty(name = "disabled", type = "boolean", defaultValue = "false", description = "Disables this EIP from the route.", displayName = "Disabled"),
@YamlProperty(name = "expression", type = "object:org.apache.camel.model.language.ExpressionDefinition", description = "Expression to return the transformed message body (the new message body to use)", displayName = "Expression", oneOf = "expression"),
- @YamlProperty(name = "fromType", type = "string", description = "From type used in data type transformation.", displayName = "From Type"),
@YamlProperty(name = "id", type = "string", description = "Sets the id of this node", displayName = "Id"),
- @YamlProperty(name = "note", type = "string", description = "Sets the note of this node", displayName = "Note"),
- @YamlProperty(name = "toType", type = "string", description = "To type used as a target data type in the transformation.", displayName = "To Type")
+ @YamlProperty(name = "note", type = "string", description = "Sets the note of this node", displayName = "Note")
}
)
public static class TransformDefinitionDeserializer extends YamlDeserializerBase<TransformDefinition> {
@@ -19890,16 +19958,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
target.setExpression(val);
break;
}
- case "fromType": {
- String val = asText(node);
- target.setFromType(val);
- break;
- }
- case "toType": {
- String val = asText(node);
- target.setToType(val);
- break;
- }
case "id": {
String val = asText(node);
target.setId(val);
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
index 2b339e22899b..445c320f7c71 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
@@ -457,6 +457,8 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
case "org.apache.camel.model.loadbalancer.TopicLoadBalancerDefinition": return new ModelDeserializers.TopicLoadBalancerDefinitionDeserializer();
case "transacted": return new ModelDeserializers.TransactedDefinitionDeserializer();
case "org.apache.camel.model.TransactedDefinition": return new ModelDeserializers.TransactedDefinitionDeserializer();
+ case "transformDataType": return new ModelDeserializers.TransformDataTypeDefinitionDeserializer();
+ case "org.apache.camel.model.TransformDataTypeDefinition": return new ModelDeserializers.TransformDataTypeDefinitionDeserializer();
case "transform": return new ModelDeserializers.TransformDefinitionDeserializer();
case "org.apache.camel.model.TransformDefinition": return new ModelDeserializers.TransformDefinitionDeserializer();
case "transformers": return new ModelDeserializers.TransformersDefinitionDeserializer();
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 575365cd71a2..4dda9ac12eab 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
@@ -184,6 +184,9 @@
"transacted" : {
"$ref" : "#/items/definitions/org.apache.camel.model.TransactedDefinition"
},
+ "transformDataType" : {
+ "$ref" : "#/items/definitions/org.apache.camel.model.TransformDataTypeDefinition"
+ },
"transform" : {
"$ref" : "#/items/definitions/org.apache.camel.model.TransformDefinition"
},
@@ -8101,6 +8104,46 @@
}
}
},
+ "org.apache.camel.model.TransformDataTypeDefinition" : {
+ "title" : "Transform Data Type",
+ "description" : "Transforms the message body based on known data type transformers.",
+ "type" : "object",
+ "additionalProperties" : false,
+ "properties" : {
+ "description" : {
+ "type" : "string",
+ "title" : "Description",
+ "description" : "Sets the description of this node"
+ },
+ "disabled" : {
+ "type" : "boolean",
+ "title" : "Disabled",
+ "description" : "Disables this EIP from the route.",
+ "default" : false
+ },
+ "fromType" : {
+ "type" : "string",
+ "title" : "From Type",
+ "description" : "From type used in data type transformation."
+ },
+ "id" : {
+ "type" : "string",
+ "title" : "Id",
+ "description" : "Sets the id of this node"
+ },
+ "note" : {
+ "type" : "string",
+ "title" : "Note",
+ "description" : "Sets the note of this node"
+ },
+ "toType" : {
+ "type" : "string",
+ "title" : "To Type",
+ "description" : "To type used as a target data type in the transformation."
+ }
+ },
+ "required" : [ "toType" ]
+ },
"org.apache.camel.model.TransformDefinition" : {
"title" : "Transform",
"description" : "Transforms the message body based on an expression",
@@ -8191,11 +8234,6 @@
"description" : "Disables this EIP from the route.",
"default" : false
},
- "fromType" : {
- "type" : "string",
- "title" : "From Type",
- "description" : "From type used in data type transformation."
- },
"id" : {
"type" : "string",
"title" : "Id",
@@ -8206,11 +8244,6 @@
"title" : "Note",
"description" : "Sets the note of this node"
},
- "toType" : {
- "type" : "string",
- "title" : "To Type",
- "description" : "To type used as a target data type in the transformation."
- },
"constant" : { },
"csimple" : { },
"datasonnet" : { },
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
index 1da61cd94d44..ca6499b2891d 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
@@ -404,7 +404,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
MappingNode out = asMappingNode(nodeAt(dataTypes, "/out"));
if (out != null) {
- route.transform(new DataType(extractDataType(out)));
+ route.transformDataType(new DataType(extractDataType(out)));
}
}
@@ -447,7 +447,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
if (dataTypes != null) {
MappingNode in = asMappingNode(nodeAt(dataTypes, "/in"));
if (in != null) {
- route.transform(new DataType(extractDataType(in)));
+ route.transformDataType(new DataType(extractDataType(in)));
}
MappingNode out = asMappingNode(nodeAt(dataTypes, "/out"));
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
index 701cddf887cf..00dd9ed5f039 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
@@ -19,7 +19,7 @@ package org.apache.camel.dsl.yaml
import org.apache.camel.dsl.yaml.support.YamlTestSupport
import org.apache.camel.model.KameletDefinition
import org.apache.camel.model.ToDefinition
-import org.apache.camel.model.TransformDefinition
+import org.apache.camel.model.TransformDataTypeDefinition
class PipeLoaderTest extends YamlTestSupport {
@Override
@@ -610,7 +610,7 @@ class PipeLoaderTest extends YamlTestSupport {
name: timer-source
dataTypes:
in:
- format: plain/text
+ format: text/plain
properties:
message: "Hello world!"
sink:
@@ -629,7 +629,7 @@ class PipeLoaderTest extends YamlTestSupport {
routeId == 'timer-event-source'
input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
input.lineNumber == 7
- inputType.urn == 'plain/text'
+ inputType.urn == 'text/plain'
outputType.urn == 'application/octet-stream'
outputs.size() == 1
with (outputs[0], ToDefinition) {
@@ -655,7 +655,7 @@ class PipeLoaderTest extends YamlTestSupport {
dataTypes:
in:
scheme: camel
- format: plain/text
+ format: text/plain
properties:
message: "Hello world!"
sink:
@@ -675,7 +675,7 @@ class PipeLoaderTest extends YamlTestSupport {
routeId == 'timer-event-source'
input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
input.lineNumber == 7
- inputType.urn == 'camel:plain/text'
+ inputType.urn == 'camel:text/plain'
outputType.urn == 'camel:application/octet-stream'
outputs.size() == 1
with (outputs[0], ToDefinition) {
@@ -710,7 +710,7 @@ class PipeLoaderTest extends YamlTestSupport {
name: log-sink
dataTypes:
in:
- format: plain/text
+ format: text/plain
''')
then:
context.routeDefinitions.size() == 3
@@ -720,14 +720,14 @@ class PipeLoaderTest extends YamlTestSupport {
input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
input.lineNumber == 7
outputs.size() == 3
- with (outputs[0], TransformDefinition) {
+ with (outputs[0], TransformDataTypeDefinition) {
fromType == 'camel:any'
toType == 'application/octet-stream'
lineNumber == -1
}
- with (outputs[1], TransformDefinition) {
+ with (outputs[1], TransformDataTypeDefinition) {
fromType == 'camel:any'
- toType == 'plain/text'
+ toType == 'text/plain'
lineNumber == -1
}
with (outputs[2], ToDefinition) {
@@ -764,7 +764,7 @@ class PipeLoaderTest extends YamlTestSupport {
dataTypes:
in:
scheme: camel
- format: plain/text
+ format: text/plain
''')
then:
context.routeDefinitions.size() == 3
@@ -774,14 +774,14 @@ class PipeLoaderTest extends YamlTestSupport {
input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
input.lineNumber == 7
outputs.size() == 3
- with (outputs[0], TransformDefinition) {
+ with (outputs[0], TransformDataTypeDefinition) {
fromType == 'camel:any'
toType == 'camel:application/octet-stream'
lineNumber == -1
}
- with (outputs[1], TransformDefinition) {
+ with (outputs[1], TransformDataTypeDefinition) {
fromType == 'camel:any'
- toType == 'camel:plain/text'
+ toType == 'camel:text/plain'
lineNumber == -1
}
with (outputs[2], ToDefinition) {
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformDataTypeTest.groovy
similarity index 67%
copy from dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy
copy to dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformDataTypeTest.groovy
index 32fd939de053..0fe4bfe3f643 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformDataTypeTest.groovy
@@ -17,32 +17,27 @@
package org.apache.camel.dsl.yaml
import org.apache.camel.dsl.yaml.support.YamlTestSupport
-import org.apache.camel.model.StepDefinition
import org.apache.camel.model.ToDefinition
-import org.apache.camel.model.TransformDefinition
+import org.apache.camel.model.TransformDataTypeDefinition
-class TransformTest extends YamlTestSupport {
+class TransformDataTypeTest extends YamlTestSupport {
def "transform with data types"() {
when:
loadRoutes '''
- from:
uri: "direct:start"
- steps:
- - step:
- steps:
- - transform:
- fromType: "plain-text"
- toType: "application-octet-stream"
+ steps:
+ - transformDataType:
+ fromType: "text/plain"
+ toType: "application-octet-stream"
- to: "mock:result"
'''
then:
- with(context.routeDefinitions[0].outputs[0], StepDefinition) {
- with(outputs[0], TransformDefinition) {
- fromType == 'plain-text'
- toType == 'application-octet-stream'
- }
+ with(context.routeDefinitions[0].outputs[0], TransformDataTypeDefinition) {
+ fromType == 'text/plain'
+ toType == 'application-octet-stream'
}
with(context.routeDefinitions[0].outputs[1], ToDefinition) {
endpointUri == 'mock:result'
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy
index 32fd939de053..82e2195b8e68 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/TransformTest.groovy
@@ -17,35 +17,31 @@
package org.apache.camel.dsl.yaml
import org.apache.camel.dsl.yaml.support.YamlTestSupport
+import org.apache.camel.model.SetBodyDefinition
import org.apache.camel.model.StepDefinition
import org.apache.camel.model.ToDefinition
import org.apache.camel.model.TransformDefinition
+import org.apache.camel.model.language.ExpressionDefinition
class TransformTest extends YamlTestSupport {
- def "transform with data types"() {
+ def "transform"() {
when:
loadRoutes '''
- from:
uri: "direct:start"
steps:
- - step:
- steps:
- - transform:
- fromType: "plain-text"
- toType: "application-octet-stream"
+ - transform:
+ simple: "Hello ${body}"
- to: "mock:result"
'''
then:
- with(context.routeDefinitions[0].outputs[0], StepDefinition) {
- with(outputs[0], TransformDefinition) {
- fromType == 'plain-text'
- toType == 'application-octet-stream'
+ with(context.routeDefinitions[0].outputs[0], TransformDefinition) {
+ with (expression, ExpressionDefinition) {
+ language == 'simple'
+ expression == 'Hello ${body}'
}
}
- with(context.routeDefinitions[0].outputs[1], ToDefinition) {
- endpointUri == 'mock:result'
- }
}
}