This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch when2
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 77ba3dccc2c6d5004355b2732852e9fe9cb96493
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Jan 16 19:18:28 2025 +0100

    CAMEL-21620: camel-core - Choice EIP fix to make when/otherwise as 
exclusive for this EIP and not generic EIPs
---
 .../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 |  5 ++--
 .../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/when.json      |  2 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  | 30 ++--------------------
 26 files changed, 28 insertions(+), 55 deletions(-)

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 14b2b88c26d..9e0f91a4b10 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
@@ -42,7 +42,7 @@
     "discardOnAggregationFailure": { "index": 27, "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": 28, "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": 29, "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": 30, "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": 30, "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, 
"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 e0b4bf6bfe9..dd4c149cc61 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
@@ -19,7 +19,7 @@
     "resilience4jConfiguration": { "index": 4, "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": 5, "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": 6, "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": 7, "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": 7, "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 dc643e7b716..6c15ee87b82 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
@@ -17,7 +17,7 @@
     "disabled": { "index": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "exception": { "index": 3, "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": 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": "Sets an additional 
predicate that should be true before the onCatch is triggered. To be used for 
fine grained controlling whether a thrown exception should be intercepted by 
this exception type or not." },
-    "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": {
     "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 244437b0920..11bb8249959 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
@@ -15,7 +15,7 @@
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
-    "outputs": { "index": 3, "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": 3, "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 c0197dbf61a..1223508d11c 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
@@ -15,7 +15,7 @@
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
-    "outputs": { "index": 3, "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": 3, "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": 4, "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": 5, "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 02ee2587681..3095652f2b2 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
@@ -17,6 +17,6 @@
     "disabled": { "index": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "expression": { "index": 3, "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": 4, "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": 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/models/idempotentConsumer.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/idempotentConsumer.json
index 5cb36799184..66cde949f0f 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
@@ -21,7 +21,7 @@
     "completionEager": { "index": 6, "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": 7, "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": 8, "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": 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": {
     "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 9e82b1aa624..0d93f724fb1 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
@@ -16,6 +16,6 @@
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "onWhen": { "index": 3, "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": "Applies this 
interceptor only if the given predicate is true" },
-    "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/interceptFrom.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/interceptFrom.json
index 8bde2bc62de..d1705a5dfb5 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
@@ -17,7 +17,7 @@
     "disabled": { "index": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "uri": { "index": 3, "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": 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": "Applies this 
interceptor only if the given predicate is true" },
-    "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": {
     "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 2830e7be364..95b91194751 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
@@ -19,7 +19,7 @@
     "skipSendToOriginalEndpoint": { "index": 4, "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": 5, "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": 6, "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": "Applies this 
interceptor only if the given predicate is true" },
-    "outputs": { "index": 7, "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": 7, "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 a93e4c3b203..b3cd293a020 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
@@ -16,6 +16,6 @@
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "name": { "index": 3, "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": 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/loadBalance.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalance.json
index 16647d47589..394b336a634 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
@@ -16,7 +16,7 @@
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "loadBalancerType": { "index": 3, "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": 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 [...]
     "inheritErrorHandler": { "index": 5, "kind": "attribute", "displayName": 
"Inherit Error Handler", "group": "common", "required": false, "type": 
"boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "Sets whether or 
not to inherit the configured error handler. The default value is true. You can 
use this to disable using the inherited error handler for a given DSL such as a 
load balancer where you wan [...]
   }
 }
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 3bdde5d4b3b..7b33fd171ec 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
@@ -19,7 +19,7 @@
     "copy": { "index": 4, "kind": "attribute", "displayName": "Copy", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "If the copy attribute 
is true, a copy of the input Exchange is used for each iteration. That means 
each iteration will start from a copy of the same message. By default loop will 
loop the same exchange all over,  [...]
     "doWhile": { "index": 5, "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": 6, "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." },
-    "outputs": { "index": 7, "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": 7, "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 ebb25921f13..ffc9b35a876 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
@@ -27,7 +27,7 @@
     "executorService": { "index": 12, "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": 13, "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": 14, "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": 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": {
     "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 61def185aa1..96dccd8a160 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
@@ -22,7 +22,7 @@
     "executorService": { "index": 7, "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": 8, "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": 9, "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": "Sets an additional 
predicate that should be true before the onCompletion is triggered. To be used 
for fine grained controlling whether a completion callback should be invoked or 
not" },
-    "outputs": { "index": 10, "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": 10, "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 901c651081e..026683ed3ec 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
@@ -26,7 +26,7 @@
     "onExceptionOccurredRef": { "index": 11, "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": 12, "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": 13, "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": 14, "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": 14, "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 d3b2d1d61f7..666b832cacc 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
@@ -15,6 +15,6 @@
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "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": 2, "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": 3, "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": 3, "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 6fd47ed5cf1..da92eee3981 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
@@ -8,13 +8,12 @@
     "label": "eip,routing",
     "javaType": "org.apache.camel.model.OtherwiseDefinition",
     "abstract": false,
-    "input": true,
+    "input": false,
     "output": true
   },
   "properties": {
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
-    "outputs": { "index": 3, "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": 2, "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 c469b65634d..af16f91e0de 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
@@ -15,6 +15,6 @@
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
-    "outputs": { "index": 3, "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": 3, "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 77ad25c93b6..7442a629187 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
@@ -17,6 +17,6 @@
     "disabled": { "index": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "expression": { "index": 3, "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": 4, "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": 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/route.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/route.json
index 9563b3dd796..633119f1e9b 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
@@ -33,6 +33,6 @@
     "inputType": { "index": 18, "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": 19, "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": 20, "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": 21, "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": 21, "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 e186520ca19..76d9f325e36 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
@@ -22,6 +22,6 @@
     "compensation": { "index": 7, "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": 8, "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": 9, "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 identifier [...]
-    "outputs": { "index": 10, "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": 10, "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 632566bc8dc..0382af444a9 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
@@ -29,7 +29,7 @@
     "executorService": { "index": 14, "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": 15, "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": 16, "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": 17, "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": 17, "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, 
"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 29bccc1b711..3e04a45bec2 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
@@ -15,7 +15,7 @@
     "id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the id of this node" },
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
-    "outputs": { "index": 3, "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": 3, "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/when.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/when.json
index 5f8dc169e61..326b6808144 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
@@ -16,6 +16,6 @@
     "description": { "index": 1, "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": 2, "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": "Whether to disable this 
EIP from the route during build time. Once an EIP has been disabled then it 
cannot be enabled later at runtime." },
     "expression": { "index": 3, "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": 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/schemas/camel-spring.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index ea82b3db5c3..e5345d56ccc 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
@@ -3658,7 +3658,6 @@ will fallback to use the fixed value if the Expression 
result was null or 0.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -4291,7 +4290,6 @@ The exception(s) to catch.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -4400,7 +4398,7 @@ The exception(s) to catch.
   </xs:complexType>
   <xs:complexType name="choiceDefinition">
     <xs:complexContent>
-      <xs:extension base="tns:processorDefinition">
+      <xs:extension base="tns:noOutputDefinition">
         <xs:sequence>
           <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:when"/>
           <xs:element minOccurs="0" ref="tns:otherwise"/>
@@ -4457,7 +4455,6 @@ during startup to keep at runtime only the branch that 
matched. Default value: f
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -4531,7 +4528,7 @@ during startup to keep at runtime only the branch that 
matched. Default value: f
   </xs:complexType>
   <xs:complexType name="otherwiseDefinition">
     <xs:complexContent>
-      <xs:extension base="tns:output">
+      <xs:extension base="tns:optionalIdentifiedDefinition">
         <xs:sequence>
           <xs:choice maxOccurs="unbounded" minOccurs="0">
             <xs:element ref="tns:aggregate"/>
@@ -4539,7 +4536,6 @@ during startup to keep at runtime only the branch that 
matched. Default value: f
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -4623,7 +4619,6 @@ during startup to keep at runtime only the branch that 
matched. Default value: f
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -5098,7 +5093,6 @@ References to a custom thread pool to use when bulkhead 
is enabled.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6269,7 +6263,6 @@ Sets the logging level to use for logging transactional 
rollback. This option is
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6361,7 +6354,6 @@ predicate evaluated as true or false.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6524,7 +6516,6 @@ Global option value.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6687,7 +6678,6 @@ Whether if validation is required for this input type. 
Default value: false
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6787,7 +6777,6 @@ intercepted.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6897,7 +6886,6 @@ After sending to the endpoint then send the message to 
this uri which allows to
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -6998,7 +6986,6 @@ mynamecount=4&type=gold.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -7328,7 +7315,6 @@ such as groovy.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -10809,7 +10795,6 @@ maximum decompressed size. Default value: 1073741824
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -11025,7 +11010,6 @@ individual unit of work. Default value: false
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -11216,7 +11200,6 @@ its considered handled as well.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -11476,7 +11459,6 @@ one of the available events. Implementations should not 
assume the predicate to
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -11558,7 +11540,6 @@ one of the available events. Implementations should not 
assume the predicate to
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -12233,7 +12214,6 @@ Name of variable to remove.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -12584,7 +12564,6 @@ Reference to the routes in the xml dsl.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -13023,7 +13002,6 @@ actions. Option values will be transformed into input 
headers of the compensatio
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -13482,7 +13460,6 @@ Sets the comparator to use for sorting.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -13714,7 +13691,6 @@ individual unit of work. Default value: false
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -14416,7 +14392,6 @@ Sets the maximum number of tokens that can overlap in 
each segment.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>
@@ -14560,7 +14535,6 @@ To type used as a target data type in the 
transformation.
             <xs:element ref="tns:doCatch"/>
             <xs:element ref="tns:choice"/>
             <xs:element ref="tns:when"/>
-            <xs:element ref="tns:otherwise"/>
             <xs:element ref="tns:circuitBreaker"/>
             <xs:element ref="tns:claimCheck"/>
             <xs:element ref="tns:convertBodyTo"/>

Reply via email to