diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/language.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/language.json index 201bfbbf49042..fb260589ad386 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/language.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/language.json @@ -33,7 +33,7 @@ "CamelLanguageScript": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String or Expression", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The script to execute provided in the header. Takes precedence over script configured on the endpoint.", "constantName": "org.apache.camel.component.language.LanguageConstants#LANGUAGE_SCRIPT" } }, "properties": { - "languageName": { "index": 0, "kind": "path", "displayName": "Language Name", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "bean", "constant", "datasonnet", "exchangeProperty", "file", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the language to use" }, + "languageName": { "index": 0, "kind": "path", "displayName": "Language Name", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "bean", "constant", "datasonnet", "exchangeProperty", "file", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the language to use" }, "resourceUri": { "index": 1, "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "description": "Path to the resource, or a reference to lookup a bean in the Registry to use as the resource" }, "allowContextMapAll": { "index": 2, "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API." }, "allowTemplateFromHeader": { "index": 3, "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties index 488fc5343155c..8876be215cf65 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties @@ -691,7 +691,6 @@ vertx-http-component vertx-websocket-component wal wasm-component -wasm-language weather-component weaviate-component web3j-component diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/wasm-language.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/wasm-language.adoc deleted file mode 100644 index e78879a52e012..0000000000000 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/wasm-language.adoc +++ /dev/null @@ -1,255 +0,0 @@ -= Wasm Language -:doctitle: Wasm -:shortname: wasm -:artifactid: camel-wasm -:description: Call a wasm (web assembly) function -:since: 4.5 -:supportlevel: Experimental -:tabs-sync-option: - -*Since Camel {since}* - -Camel supports Wasm to allow using xref:manual::expression.adoc[Expression] or xref:manual::predicate.adoc[Predicate]. - -== Wasm Options - -// language options: START -include::partial$language-options.adoc[] -// language options: END - - -== Writing A Wasm function - -In _Wasm_, sharing objects between the host, in this case the _JVM_, and the _Wasm_ module is deliberately restricted and as of today, it requires a number of steps: - -1. From the _host_, call a function inside the webassembly module that allocates a block of memory and returns its address, then save it -2. From the _host_, write the data that should be exchanged with the _Wasm_ module to the saved address -3. From the _host_, invoke the required function passing both the address where the data is written and its size -4. From the _Wasm_ module, read the data and process it -5. From the _host_, release the memory when done - -=== Providing functions for memory management - -The module hosting the function *must* provide the functions to allocate/deallocate memory that *must* be named `alloc` and `dealloc` respectively. - -Here's an example of the mentioned functions implemented in https://www.rust-lang.org[Rust]: - -[source,rust] ----- -pub extern "C" fn alloc(size: u32) -> *mut u8 { - let mut buf = Vec::with_capacity(size as usize); - let ptr = buf.as_mut_ptr(); - - // tell Rust not to clean this up - mem::forget(buf); - - ptr -} - -pub unsafe extern "C" fn dealloc(ptr: &mut u8, len: i32) { - // Retakes the pointer which allows its memory to be freed. - let _ = Vec::from_raw_parts(ptr, 0, len as usize); -} ----- - -=== Data shapes - -It is not possible to share a Java object with the Wasm module directly, and as mentioned before, -data exchange leverages Wasm's memory that can be accessed by both the host and the guest runtimes. -At this stage, the data structure that the component exchange with the Wasm function is a subset of the Apache Camel Message, -containing headers the body encoded as a base64 string: - -._Java-only: data wrapper class definition_ -[source,java] ----- -public static class Wrapper { - @JsonProperty - public Map headers = new HashMap<>(); - - @JsonProperty - public byte[] body; -} ----- - -=== Data processing - -The component expects the processing function to have the following signature: - -[source,rust] ----- -fn function(ptr: u32, len: u32) -> u64 ----- - -* it accepts two 32bit unsigned integers arguments -** a pointer to the memory location when the input data has been written (`ptr`) -** the size of the input data (`len`) -* it returns a 64bit unsigned integer where: -** the first 32bit represents a pointer to the return data -** the last 31bit represents the size of the return data -** the most significant bit of the returned data size is reserved to signal an error, so if it is set, then the return data could contain an error message/code/etc - -Here's an example of a complete function: - -[source,rust] ----- -#[derive(Serialize, Deserialize)] -struct Message { - headers: HashMap, - - #[serde(with = "Base64Standard")] - body: Vec, -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "transform")] -#[no_mangle] -pub extern fn transform(ptr: u32, len: u32) -> u64 { - let bytes = unsafe { - slice::from_raw_parts_mut( - ptr as *mut u8, - len as usize) - }; - - let msg: Message = serde_json::from_slice(bytes).unwrap(); - let res = String::from_utf8(msg.body).unwrap().to_uppercase().as_bytes().to_vec(); - - let out_len = res.len(); - let out_ptr = alloc(out_len as u32); - - unsafe { - std::ptr::copy_nonoverlapping( - res.as_ptr(), - out_ptr, - out_len as usize) - }; - - return ((out_ptr as u64) << 32) | out_len as u64; -} ----- - -=== Errors and module state - -The module is instantiated once per `wasm` expression and that instance handles every message, one at a time, so data -the module keeps in its memory or globals carries over from one message to the next. - -* When the function returns with the error bit set, the error data is released with `dealloc` using its size without -the error bit, the error data becomes the message of the exception, and the instance is kept. -* When the call fails without returning, for example on a Rust `panic` or any other Wasm trap, the instance is -discarded and a new one is created from the module for the next message. Whatever the failed call allocated can no -longer be released, so keeping the instance would grow its memory with every failure. Any state the module kept in -the discarded instance is lost. -On a route where every call fails this way, the module is instantiated again for every message (its data segments -are copied and any start function runs), which costs more than a call on a kept instance. - -== Examples - -Supposing we have compiled a Wasm module containing the function above, then it can be called in a Camel Route by its name and module resource location: - -[tabs] -==== -Java:: -+ -[source,java] ----- -from("direct:in") - .transform() - .wasm("transform", "classpath://functions.wasm"); ----- - -XML:: -+ -[source,xml] ----- - - - - transform - - ----- - -YAML:: -+ -[source,yaml] ----- -- route: - from: - uri: direct:in - steps: - - transform: - expression: - wasm: - expression: transform - module: classpath://functions.wasm ----- -==== - - -== Using Wasm as a predicate - -When the function is used as a xref:manual::predicate.adoc[Predicate], for example with the -xref:eips:filter-eip.adoc[Filter] EIP, its result is converted to a boolean depending on the result type: - -* With the default result type (`byte[]`) or `String`, the returned bytes are read as a string and the -standard Camel rules apply: `true` and `false` (in any case) are parsed, empty data is `false`, and any -other value is `true`. So the function can simply return `true` or `false`. -* With the result type `Boolean`, only `true` and `false` (in any case) are accepted: any other value, -including empty data, is `false`. -* With a Jackson `JsonNode` result type, only the JSON boolean `true` matches. - -[tabs] -==== -Java:: -+ -[source,java] ----- -from("direct:in") - .filter().wasm("is_valid", "classpath://functions.wasm") - .to("direct:valid"); ----- - -XML:: -+ -[source,xml] ----- - - - - is_valid - - - ----- - -YAML:: -+ -[source,yaml] ----- -- route: - from: - uri: direct:in - steps: - - filter: - expression: - wasm: - expression: is_valid - module: classpath://functions.wasm - steps: - - to: - uri: direct:valid ----- -==== - - -== Dependencies - -If you use Maven you could add the following to your `pom.xml`, -substituting the version number for the latest and greatest release. - -[source,xml] ----- - - org.apache.camel - camel-wasm - x.x.x - ----- diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages.properties index 96c24835cd37d..1ecd8457f67cb 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages.properties +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages.properties @@ -24,7 +24,6 @@ spel tokenize typesafe-ai variable -wasm xpath xquery xtokenize diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/wasm.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/wasm.json deleted file mode 100644 index ded5b9d79d6bd..0000000000000 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/wasm.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "language": { - "kind": "language", - "name": "wasm", - "title": "Wasm", - "description": "Call a wasm (web assembly) function", - "deprecated": false, - "firstVersion": "4.5.0", - "label": "language", - "javaType": "org.apache.camel.language.wasm.WasmLanguage", - "supportLevel": "Experimental", - "groupId": "org.apache.camel", - "artifactId": "camel-wasm", - "version": "4.24.0-SNAPSHOT", - "modelName": "wasm", - "modelJavaType": "org.apache.camel.model.language.WasmExpression" - }, - "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": "The id of this node." }, - "expression": { "index": 1, "kind": "value", "displayName": "Expression", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The expression value in your chosen language syntax." }, - "module": { "index": 2, "kind": "attribute", "displayName": "Module", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function." }, - "resultType": { "index": 3, "kind": "attribute", "displayName": "Result Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The class of the result type (type from output)." }, - "trim": { "index": 4, "kind": "attribute", "displayName": "Trim", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to trim the source code to remove leading and trailing whitespaces and line breaks." }, - "resolveResource": { "index": 5, "kind": "attribute", "displayName": "Resolve Resource", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates\/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate." } - } -} 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 387da664462d4..6454583afeae2 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 @@ -230,7 +230,6 @@ validate validators value variable -wasm weightedLoadBalancer when wireTap 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 b44e99f13f841..289b5ccd13dd5 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 @@ -17,10 +17,10 @@ "note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The note for 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": "The description for 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": "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." }, - "correlationExpression": { "index": 4, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression used to calculate the correlation key to use for aggregation. Exchanges with the same correlation key are aggregated together. If the correlation key cannot be evaluated an Exception is thrown." }, - "completionPredicate": { "index": 5, "kind": "expression", "displayName": "Completion Predicate", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "A predicate to indicate when an aggregated exchange is complete. If not specified and the AggregationStrategy implements Predicate, it will be used as the completionPredicate." }, - "completionTimeoutExpression": { "index": 6, "kind": "expression", "displayName": "Completion Timeout Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Time in millis that an aggregated exchange should be inactive before its complete (timeout), evaluated as an expression allowing dynamic timeout values." }, - "completionSizeExpression": { "index": 7, "kind": "expression", "displayName": "Completion Size Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Number of messages aggregated before the aggregation is complete, evaluated as an expression allowing dynamic size values." }, + "correlationExpression": { "index": 4, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression used to calculate the correlation key to use for aggregation. Exchanges with the same correlation key are aggregated together. If the correlation key cannot be evaluated an Exception is thrown." }, + "completionPredicate": { "index": 5, "kind": "expression", "displayName": "Completion Predicate", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "A predicate to indicate when an aggregated exchange is complete. If not specified and the AggregationStrategy implements Predicate, it will be used as the completionPredicate." }, + "completionTimeoutExpression": { "index": 6, "kind": "expression", "displayName": "Completion Timeout Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Time in millis that an aggregated exchange should be inactive before its complete (timeout), evaluated as an expression allowing dynamic timeout values." }, + "completionSizeExpression": { "index": 7, "kind": "expression", "displayName": "Completion Size Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Number of messages aggregated before the aggregation is complete, evaluated as an expression allowing dynamic size values." }, "optimisticLockRetryPolicy": { "index": 8, "kind": "element", "displayName": "Optimistic Lock Retry Policy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.OptimisticLockRetryPolicyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures retry settings when using optimistic locking." }, "parallelProcessing": { "index": 9, "kind": "attribute", "displayName": "Parallel Processing", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When completed exchanges are sent out of the aggregator, this option indicates whether Camel should use a thread pool with multiple threads for concurrency." }, "optimisticLocking": { "index": 10, "kind": "attribute", "displayName": "Optimistic Locking", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Turns on optimistic locking, which requires the aggregation repository to implement OptimisticLockingAggregationRepository." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cache.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cache.json index 08f5ce5c924b6..159cd3acf48a3 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cache.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cache.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to compute the cache key. Messages with the same key share the cached result." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to compute the cache key. Messages with the same key share the cached result." }, "keyValueRepository": { "index": 5, "kind": "attribute", "displayName": "Key Value Repository", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.KeyValueRepository", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the reference name of the KeyValueRepository to use as the cache backing store. If not set, a MemoryKeyValueRepository is auto-created." }, "ttl": { "index": 6, "kind": "attribute", "displayName": "Ttl", "group": "common", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "-1", "description": "Sets the time-to-live for cached entries. Supports duration syntax (e.g. 10m, 1h) or milliseconds. Default: -1 (no expiration)." }, "cacheNull": { "index": 7, "kind": "attribute", "displayName": "Cache Null", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache null results. By default, null message bodies are not cached." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/delay.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/delay.json index a1ad1e5f75d37..a70f33c5a93ac 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/delay.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/delay.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the delay duration in milliseconds." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the delay duration in milliseconds." }, "asyncDelayed": { "index": 5, "kind": "attribute", "displayName": "Async Delayed", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Enables asynchronous delay which means the thread will not block while delaying." }, "callerRunsWhenRejected": { "index": 6, "kind": "attribute", "displayName": "Caller Runs When Rejected", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not the caller should run the task when it was rejected by the thread pool." }, "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 if asyncDelay has been enabled." } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dynamicRouter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dynamicRouter.json index 23ea567272053..5382f92c8cc8f 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dynamicRouter.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dynamicRouter.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the next endpoint URI to route to. The expression is called iteratively until it returns null to indicate the end of routing." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the next endpoint URI to route to. The expression is called iteratively until it returns null to indicate the end of routing." }, "uriDelimiter": { "index": 5, "kind": "attribute", "displayName": "Uri Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "The delimiter used to separate endpoint URIs when the expression returns multiple endpoints. Default is comma." }, "ignoreInvalidEndpoints": { "index": 6, "kind": "attribute", "displayName": "Ignore Invalid Endpoints", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then invalid endpoint URIs are ignored and logged instead of throwing an exception." }, "cacheSize": { "index": 7, "kind": "attribute", "displayName": "Cache Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the cache size for ProducerCache which caches producers for reuse. The default cache size is 1000. Set to -1 to turn off caching." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/enrich.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/enrich.json index 757e68c4c0140..2f1da84e8b8bb 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/enrich.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/enrich.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to enrich from." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to enrich from." }, "variableSend": { "index": 5, "kind": "attribute", "displayName": "Variable Send", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a variable as the source for the message body to send. When using send variable then the message body is taken from this variable instead of the current message, however the headers from the message will still be used as well." }, "variableReceive": { "index": 6, "kind": "attribute", "displayName": "Variable Receive", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for user data and to easily control what data to use for sending and receiving." }, "aggregationStrategy": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message." }, 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 14e7752a5be72..4e72dc3ae81bb 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,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate. Messages where the predicate returns false are filtered out and not routed further." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate. Messages where the predicate returns false are filtered out and not routed further." }, "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 an exchange property to store whether the filter predicate matched or not. The value is stored as a boolean." }, "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List>", "oneOf": [ "a2aSubTask", "aggregate", "bean", "cache", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "pausable", "pipeline", "policy", "poll", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "switch", "threads", "throttle", "throwException", "to", "toD", "tokenizer", "transacted", "transform", "transformDataType", "unmarshal", "validate", "wireTap" ], "deprecated": false, "autowired": false, "secret": false } } 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 f027166a0bfc3..42b65e18142d4 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the unique message ID used for duplicate detection. Messages with the same ID are treated as duplicates and skipped." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the unique message ID used for duplicate detection. Messages with the same ID are treated as duplicates and skipped." }, "idempotentRepository": { "index": 5, "kind": "attribute", "displayName": "Idempotent Repository", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the reference name of the message id repository to use for storing processed message ids to detect duplicates." }, "eager": { "index": 6, "kind": "attribute", "displayName": "Eager", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to eagerly add the key to the idempotent repository or wait until the exchange is complete. Eager is default enabled." }, "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." }, 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 08cffb3e6a881..5d6a11f3e80f9 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the number of times to loop. The result is converted to an integer." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the number of times to loop. The result is converted to an integer." }, "copy": { "index": 5, "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 enabled, a copy of the input Exchange is used for each iteration. That means each iteration will start from a copy of the same message." }, "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 enabled, the loop will not iterate until it reaches the end when Camel is shut down." }, 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 e0ed0003e5046..002a33850fee0 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 @@ -18,11 +18,11 @@ "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": "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": 4, "kind": "element", "displayName": "Exception", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "deprecated": false, "autowired": false, "secret": false, "description": "A list of exception class names to catch and handle." }, "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 this in specific situations" }, - "retryWhile": { "index": 6, "kind": "expression", "displayName": "Retry While", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Sets a predicate to control whether redelivery should continue. Redelivery continues as long as the predicate evaluates to true." }, + "retryWhile": { "index": 6, "kind": "expression", "displayName": "Retry While", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Sets a predicate to control whether redelivery should continue. Redelivery continues as long as the predicate evaluates to true." }, "redeliveryPolicy": { "index": 7, "kind": "element", "displayName": "Redelivery Policy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.RedeliveryPolicyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures redelivery options such as maximum redeliveries, delays, and logging behavior." }, "redeliveryPolicyRef": { "index": 8, "kind": "attribute", "displayName": "Redelivery Policy 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 redelivery policy to lookup in the registry to be used." }, - "handled": { "index": 9, "kind": "expression", "displayName": "Handled", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When handled is set to true, the exception is suppressed and not sent back to the caller. The original route stops at the point of failure and only the steps in this onException block execute. The response returned to the caller is whatever this onException block produces. Use continued instead if you want to resume the original route from the point of failure." }, - "continued": { "index": 10, "kind": "expression", "displayName": "Continued", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When continued is set to true, the exception is handled and routing continues from the point of failure. Unlike handled, which stops the original route and only runs the onException block, continued resumes the original route after the onException steps complete. The exception is considered handled as well." }, + "handled": { "index": 9, "kind": "expression", "displayName": "Handled", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When handled is set to true, the exception is suppressed and not sent back to the caller. The original route stops at the point of failure and only the steps in this onException block execute. The response returned to the caller is whatever this onException block produces. Use continued instead if you want to resume the original route from the point of failure." }, + "continued": { "index": 10, "kind": "expression", "displayName": "Continued", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When continued is set to true, the exception is handled and routing continues from the point of failure. Unlike handled, which stops the original route and only runs the onException block, continued resumes the original route after the onException steps complete. The exception is considered handled as well." }, "onRedeliveryRef": { "index": 11, "kind": "attribute", "displayName": "On Redelivery 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 is invoked before each redelivery attempt. Can be used to change the exchange before it is redelivered." }, "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 is invoked just after an exception occurred. Can be used to perform custom logging. Any exception thrown from this processor is ignored." }, "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": "If enabled, uses the original input message (body and headers) when the exchange is moved to the dead letter queue after all redelivery attempts have been exhausted. Cannot be used together with useOriginalBody." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onWhen.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onWhen.json index c3a724a63f5c3..65b02b1ca1d94 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onWhen.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onWhen.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": "The id of this node" }, "note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The note for 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": "The description for this node" }, - "expression": { "index": 3, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate." } + "expression": { "index": 3, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pollEnrich.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pollEnrich.json index 2e7d3b6974529..6f0f77d21a78a 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pollEnrich.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/pollEnrich.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to poll-enrich from." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to poll-enrich from." }, "variableReceive": { "index": 5, "kind": "attribute", "displayName": "Variable Receive", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for user data and to easily control what data to use for sending and receiving." }, "aggregationStrategy": { "index": 6, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message." }, "aggregationStrategyMethodName": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json index f595bbb22f1d2..8cbbb2bd06d34 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/predicateValidator.json @@ -12,7 +12,7 @@ "output": false }, "properties": { - "expression": { "index": 0, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to use for validation." }, + "expression": { "index": 0, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to use for validation." }, "type": { "index": 1, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The data type name to validate. If you specify 'xml:XYZ', the validator is picked up when message type is 'xml:XYZ'. If you specify just 'xml', the validator matches all xml message types." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/propertyExpression.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/propertyExpression.json index 53c30ae235a6d..9c3015a2b0427 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/propertyExpression.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/propertyExpression.json @@ -13,6 +13,6 @@ }, "properties": { "key": { "index": 0, "kind": "attribute", "displayName": "Key", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The property key." }, - "expression": { "index": 1, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The property value as an expression." } + "expression": { "index": 1, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The property value as an expression." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/recipientList.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/recipientList.json index 1415f07766d02..0397c4dc6ae30 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/recipientList.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/recipientList.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the list of recipient endpoint URIs. The result can be a comma-separated string, a Collection, or an Iterator of endpoint URIs." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the list of recipient endpoint URIs. The result can be a comma-separated string, a Collection, or an Iterator of endpoint URIs." }, "delimiter": { "index": 5, "kind": "attribute", "displayName": "Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "Delimiter used if the Expression returned multiple endpoints. Can be turned off using the value false." }, "aggregationStrategy": { "index": 6, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the AggregationStrategy to be used to assemble the replies from the recipients, into a single outgoing message." }, "aggregationStrategyMethodName": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy." }, 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 a001f1f6d674c..09bf29d6f0f7a 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 @@ -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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to use for re-ordering the messages, such as a header with a sequence number." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to use for re-ordering the messages, such as a header with a sequence number." }, "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": "Resequencer configuration using either batch or stream mode. Defaults to batch mode." }, "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "a2aSubTask", "aggregate", "bean", "cache", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "pausable", "pipeline", "policy", "poll", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "switch", "threads", "throttle", "throwException", "to", "toD", "tokenizer", "transacted", "transform", "transformDataType", "unmarshal", "validate", "wireTap" ], "deprecated": false, "autowired": false, "secret": false } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routingSlip.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routingSlip.json index 55e085f625415..2ca6a67784d4a 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routingSlip.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/routingSlip.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the routing slip of endpoint URIs. The result is a delimited list of endpoint URIs that defines the series of processing steps." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the routing slip of endpoint URIs. The result is a delimited list of endpoint URIs that defines the series of processing steps." }, "uriDelimiter": { "index": 5, "kind": "attribute", "displayName": "Uri Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "The delimiter used to separate endpoint URIs in the routing slip expression. Default is comma." }, "ignoreInvalidEndpoints": { "index": 6, "kind": "attribute", "displayName": "Ignore Invalid Endpoints", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then invalid endpoint URIs are ignored and logged instead of throwing an exception." }, "cacheSize": { "index": 7, "kind": "attribute", "displayName": "Cache Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the cache size for ProducerCache which caches producers for reuse. The default cache size is 1000. Set to -1 to turn off caching." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/script.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/script.json index ed1908279726f..498f16f9ae011 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/script.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/script.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to evaluate as a script. The script result does not change the message body (use transform instead if that is desired)." } + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to evaluate as a script. The script result does not change the message body (use transform instead if that is desired)." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setBody.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setBody.json index 59124a53de246..3c1320e00ab66 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setBody.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setBody.json @@ -17,6 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the new message body." } + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the new message body." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeader.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeader.json index a56e8690c8ddd..a71ab721b5bf8 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeader.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setHeader.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": "The description for 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": "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": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of message header to set a new value. The simple language can be used to define a dynamic evaluated header name. Otherwise a constant name will be used." }, - "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the header value." } + "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the header value." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setProperty.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setProperty.json index 6d2e41ecc3a2d..cffb8d5d7c8d4 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setProperty.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setProperty.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": "The description for 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": "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": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of exchange property to set a new value. The simple language can be used to define a dynamic evaluated property name. Otherwise a constant name will be used." }, - "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the exchange property value." } + "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the exchange property value." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariable.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariable.json index cffc0d6c94e68..79f57c636c2c5 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariable.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/setVariable.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": "The description for 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": "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": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of variable to set a new value. The simple language can be used to define a dynamic evaluated variable name. Otherwise a constant name will be used." }, - "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the variable value." } + "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the variable value." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/sort.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/sort.json index 012f5e7f4582a..c9dcd74b87c0a 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/sort.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/sort.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to use for sorting. The message body is split into a list, sorted using this expression as the comparator key, and then reassembled." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to use for sorting. The message body is split into a list, sorted using this expression as the comparator key, and then reassembled." }, "comparator": { "index": 5, "kind": "attribute", "displayName": "Comparator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Comparator", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a reference to lookup for the comparator to use for sorting." } } } 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 9ac5f17714ad1..c3bc403d60600 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that returns the value to use for splitting. The result can be an Iterator, Iterable, Array, Collection, Map, NodeList, or a delimited String." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that returns the value to use for splitting. The result can be an Iterator, Iterable, Array, Collection, Map, NodeList, or a delimited String." }, "delimiter": { "index": 5, "kind": "attribute", "displayName": "Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "Delimiter used in splitting messages. Can be turned off using the value false. To force not splitting then the delimiter can be set to single to use the value as a single list. The default value is comma." }, "aggregationStrategy": { "index": 6, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to the AggregationStrategy to assemble the replies from the split messages into a single outgoing message. By default Camel uses the original incoming message." }, "aggregationStrategyMethodName": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The method name to use when using a POJO as the AggregationStrategy." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/stickyLoadBalancer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/stickyLoadBalancer.json index 948180acfcce4..87b2bc65e0d17 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/stickyLoadBalancer.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/stickyLoadBalancer.json @@ -13,6 +13,6 @@ }, "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": "The id of this node" }, - "correlationExpression": { "index": 1, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use to calculate the correlation key." } + "correlationExpression": { "index": 1, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use to calculate the correlation key." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/switch.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/switch.json index b0a91281d33dd..3fb9b28b75e69 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/switch.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/switch.json @@ -18,7 +18,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": "The note for 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": "The description for 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": "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." }, - "selector": { "index": 4, "kind": "expression", "displayName": "Selector", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression evaluated once per entry. Returns a scalar value to match against the literal cases." }, + "selector": { "index": 4, "kind": "expression", "displayName": "Selector", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression evaluated once per entry. Returns a scalar value to match against the literal cases." }, "case": { "index": 5, "kind": "element", "displayName": "Case", "group": "common", "required": false, "type": "array", "javaType": "java.util.List", "deprecated": false, "autowired": false, "secret": false, "description": "Literal cases. Duplicate values are rejected at startup, ignoring case." }, "otherwise": { "index": 6, "kind": "element", "displayName": "Otherwise", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.SwitchOtherwiseDefinition", "oneOf": [ "otherwise" ], "deprecated": false, "autowired": false, "secret": false, "description": "Fixed fallback URI for null or unmatched selector results. Without a fallback processing continues." } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/throttle.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/throttle.json index 027a30aeddbaf..e1c1079fa3c65 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/throttle.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/throttle.json @@ -17,9 +17,9 @@ "note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to set the maximum request count (for TotalRequests mode) or the maximum number of concurrent requests (for ConcurrentRequests mode)." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to set the maximum request count (for TotalRequests mode) or the maximum number of concurrent requests (for ConcurrentRequests mode)." }, "mode": { "index": 5, "kind": "attribute", "displayName": "Mode", "group": "common", "required": false, "type": "enum", "javaType": "org.apache.camel.model.ThrottlingMode", "enum": [ "TotalRequests", "ConcurrentRequests" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TotalRequests", "description": "Sets the throttling mode. TotalRequests limits the total number of requests within a time period. ConcurrentRequests uses a leaky-bucket algorithm to limit the number of concurrent requests being processed at the same time." }, - "correlationExpression": { "index": 6, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use for throttle grouping. Exchanges with the same correlation key are throttled together." }, + "correlationExpression": { "index": 6, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use for throttle grouping. Exchanges with the same correlation key are throttled together." }, "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 (ScheduledExecutorService) by the throttler." }, "asyncDelayed": { "index": 8, "kind": "attribute", "displayName": "Async Delayed", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables asynchronous delay which means the thread will not block while delaying." }, "callerRunsWhenRejected": { "index": 9, "kind": "attribute", "displayName": "Caller Runs When Rejected", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not the caller should run the task when it was rejected by the thread pool." }, 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 cf53b151e5faf..fa8649dc61fff 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 @@ -17,6 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result replaces the message body." } + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result replaces the message body." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/validate.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/validate.json index 19423bee06c99..aa65030c329a4 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/validate.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/validate.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to validate against the current message. If the predicate returns false, a PredicateValidationException is thrown." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to validate against the current message. If the predicate returns false, a PredicateValidationException is thrown." }, "predicateExceptionFactory": { "index": 5, "kind": "attribute", "displayName": "Predicate Exception Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PredicateExceptionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a custom PredicateExceptionFactory for creating the exception when validation fails." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/wasm.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/wasm.json deleted file mode 100644 index f77d85b07c350..0000000000000 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/wasm.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "model": { - "kind": "model", - "name": "wasm", - "title": "Wasm", - "description": "Call a wasm (web assembly) function", - "deprecated": false, - "firstVersion": "4.5.0", - "label": "language", - "javaType": "org.apache.camel.model.language.WasmExpression", - "abstract": false, - "input": false, - "output": false - }, - "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": "The id of this node." }, - "expression": { "index": 1, "kind": "value", "displayName": "Expression", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The expression value in your chosen language syntax." }, - "module": { "index": 2, "kind": "attribute", "displayName": "Module", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function." }, - "resultType": { "index": 3, "kind": "attribute", "displayName": "Result Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The class of the result type (type from output)." }, - "trim": { "index": 4, "kind": "attribute", "displayName": "Trim", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to trim the source code to remove leading and trailing whitespaces and line breaks." }, - "resolveResource": { "index": 5, "kind": "attribute", "displayName": "Resolve Resource", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates\/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate." } - } -} 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 44b0e97480e41..473d7716e8e9f 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,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": "The note for 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": "The description for 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", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Expression used as the predicate to evaluate whether this when should trigger and route the message or not." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Expression used as the predicate to evaluate whether this when should trigger and route the message or not." }, "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List>", "oneOf": [ "a2aSubTask", "aggregate", "bean", "cache", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "pausable", "pipeline", "policy", "poll", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "switch", "threads", "throttle", "throwException", "to", "toD", "tokenizer", "transacted", "transform", "transformDataType", "unmarshal", "validate", "wireTap" ], "deprecated": false, "autowired": false, "secret": false } } } 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 e438e41c1419b..278dd6cd0df9f 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 @@ -2329,15 +2329,6 @@ Holds a single value, typically used as a child element in collection-based conf - - - - - - - @@ -3683,7 +3674,6 @@ ensuring the aggregation repository is empty before shutdown. Default value: fal - @@ -4007,7 +3997,6 @@ Whether the script should support using Camel property placeholder syntax {{ }}. - @@ -4241,7 +4230,6 @@ The exception class names (fully qualified) to catch. - @@ -4298,7 +4286,6 @@ placeholders or simple expressions using only property placeholders are supporte - @@ -5347,7 +5334,6 @@ To use a specific charset when converting. - @@ -5410,7 +5396,6 @@ To use a custom thread pool if asyncDelay has been enabled. - @@ -5486,7 +5471,6 @@ restriction, useful for low-code / Kamelet deployments; by default (unset) any s - @@ -6108,7 +6092,6 @@ The logging level to use for logging transactional rollback. Default is WARN. De - @@ -6365,7 +6348,6 @@ Global option value. - @@ -7165,7 +7147,6 @@ The language to use for evaluating the log message, such as simple, groovy, or o - @@ -11784,7 +11765,6 @@ Timeout in millis when polling from the external service. The default value is 2 - @@ -11949,7 +11929,6 @@ control how the processor is obtained. - @@ -11992,7 +11971,6 @@ The property key. - @@ -12295,7 +12273,6 @@ Name of the variable to remove. - @@ -12998,7 +12975,6 @@ Description of the template parameter for documentation purposes. - @@ -13254,7 +13230,6 @@ The frequency of samples as a message count, using a message-frequency approach. - @@ -13306,7 +13281,6 @@ The uri of the endpoint to send to. - @@ -13358,7 +13332,6 @@ The new exchange pattern to use from this point forward. - @@ -13413,7 +13386,6 @@ Otherwise a constant name will be used. - @@ -13459,7 +13431,6 @@ name. Otherwise a constant name will be used. - @@ -13514,7 +13485,6 @@ Otherwise a constant name will be used. - @@ -13560,7 +13530,6 @@ Sets a reference to lookup for the comparator to use for sorting. - @@ -14292,7 +14261,6 @@ handler. Default value: true - @@ -14777,7 +14745,6 @@ into. - @@ -14985,7 +14952,6 @@ Indicates whether null is allowed as value of a body to unmarshall. Default valu - @@ -16797,22 +16763,6 @@ To skip the very first element. Default value: false - - - - - - - - - - - - - @@ -17376,7 +17326,6 @@ URI of the Endpoint used for validation. - 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 81f71962e73e0..e59829db331e4 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 @@ -2140,15 +2140,6 @@ Holds a single value, typically used as a child element in collection-based conf - - - - - - - @@ -2793,7 +2784,6 @@ ensuring the aggregation repository is empty before shutdown. Default value: fal - @@ -3117,7 +3107,6 @@ Whether the script should support using Camel property placeholder syntax {{ }}. - @@ -3351,7 +3340,6 @@ The exception class names (fully qualified) to catch. - @@ -3408,7 +3396,6 @@ placeholders or simple expressions using only property placeholders are supporte - @@ -4469,7 +4456,6 @@ To use a specific charset when converting. - @@ -4532,7 +4518,6 @@ To use a custom thread pool if asyncDelay has been enabled. - @@ -4608,7 +4593,6 @@ restriction, useful for low-code / Kamelet deployments; by default (unset) any s - @@ -5230,7 +5214,6 @@ The logging level to use for logging transactional rollback. Default is WARN. De - @@ -5487,7 +5470,6 @@ Global option value. - @@ -6287,7 +6269,6 @@ The language to use for evaluating the log message, such as simple, groovy, or o - @@ -10906,7 +10887,6 @@ Timeout in millis when polling from the external service. The default value is 2 - @@ -11092,7 +11072,6 @@ The property value. - @@ -11135,7 +11114,6 @@ The property key. - @@ -11438,7 +11416,6 @@ Name of the variable to remove. - @@ -12141,7 +12118,6 @@ Description of the template parameter for documentation purposes. - @@ -12397,7 +12373,6 @@ The frequency of samples as a message count, using a message-frequency approach. - @@ -12449,7 +12424,6 @@ The uri of the endpoint to send to. - @@ -12501,7 +12475,6 @@ The new exchange pattern to use from this point forward. - @@ -12556,7 +12529,6 @@ Otherwise a constant name will be used. - @@ -12602,7 +12574,6 @@ name. Otherwise a constant name will be used. - @@ -12657,7 +12628,6 @@ Otherwise a constant name will be used. - @@ -12703,7 +12673,6 @@ Sets a reference to lookup for the comparator to use for sorting. - @@ -13435,7 +13404,6 @@ handler. Default value: true - @@ -13920,7 +13888,6 @@ into. - @@ -14128,7 +14095,6 @@ Indicates whether null is allowed as value of a body to unmarshall. Default valu - @@ -15940,22 +15906,6 @@ To skip the very first element. Default value: false - - - - - - - - - - - - - @@ -16519,7 +16469,6 @@ URI of the Endpoint used for validation. - diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json index 60af524015b79..52a9a833e1cd4 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json @@ -761,13 +761,6 @@ "title" : "Variable", "description" : "Gets a variable", "label" : "language,core" - }, { - "name" : "wasm", - "type" : "object", - "ref" : "wasm", - "title" : "Wasm", - "description" : "Call a wasm (web assembly) function", - "label" : "language" }, { "name" : "xpath", "type" : "object", @@ -2730,10 +2723,6 @@ "name" : "variable", "type" : "object", "ref" : "variable" - }, { - "name" : "wasm", - "type" : "object", - "ref" : "wasm" }, { "name" : "xpath", "type" : "object", @@ -16326,72 +16315,6 @@ "label" : "advanced" } ] }, - "wasm" : { - "title" : "Wasm", - "description" : "Call a wasm (web assembly) function", - "label" : "language", - "children" : [ { - "name" : "id", - "type" : "string", - "description" : "The id of this node.", - "title" : "Id", - "displayName" : "Id", - "kind" : "attribute", - "index" : 0, - "group" : "common" - }, { - "name" : "expression", - "type" : "string", - "description" : "The expression value in your chosen language syntax.", - "title" : "Expression", - "required" : true, - "displayName" : "Expression", - "kind" : "value", - "index" : 1, - "group" : "common" - }, { - "name" : "module", - "type" : "string", - "description" : "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function.", - "title" : "Module", - "required" : true, - "displayName" : "Module", - "kind" : "attribute", - "index" : 2, - "group" : "common" - }, { - "name" : "resultType", - "type" : "string", - "description" : "The class of the result type (type from output).", - "title" : "Result Type", - "displayName" : "Result Type", - "kind" : "attribute", - "index" : 3, - "group" : "common" - }, { - "name" : "trim", - "type" : "boolean", - "description" : "Whether to trim the source code to remove leading and trailing whitespaces and line breaks.", - "title" : "Trim", - "default" : "true", - "displayName" : "Trim", - "kind" : "attribute", - "index" : 4, - "group" : "advanced", - "label" : "advanced" - }, { - "name" : "resolveResource", - "type" : "boolean", - "description" : "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate.", - "title" : "Resolve Resource", - "default" : "false", - "displayName" : "Resolve Resource", - "kind" : "attribute", - "index" : 5, - "group" : "advanced", - "label" : "advanced" - } ] - }, "xMLTokenizer" : { "title" : "XML Tokenize", "description" : "Tokenize XML payloads", diff --git a/components/camel-language/src/generated/resources/META-INF/org/apache/camel/component/language/language.json b/components/camel-language/src/generated/resources/META-INF/org/apache/camel/component/language/language.json index 201bfbbf49042..fb260589ad386 100644 --- a/components/camel-language/src/generated/resources/META-INF/org/apache/camel/component/language/language.json +++ b/components/camel-language/src/generated/resources/META-INF/org/apache/camel/component/language/language.json @@ -33,7 +33,7 @@ "CamelLanguageScript": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String or Expression", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The script to execute provided in the header. Takes precedence over script configured on the endpoint.", "constantName": "org.apache.camel.component.language.LanguageConstants#LANGUAGE_SCRIPT" } }, "properties": { - "languageName": { "index": 0, "kind": "path", "displayName": "Language Name", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "bean", "constant", "datasonnet", "exchangeProperty", "file", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the language to use" }, + "languageName": { "index": 0, "kind": "path", "displayName": "Language Name", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "bean", "constant", "datasonnet", "exchangeProperty", "file", "groovy", "header", "hl7terser", "java", "joor", "jq", "js", "jsonpath", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the language to use" }, "resourceUri": { "index": 1, "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "description": "Path to the resource, or a reference to lookup a bean in the Registry to use as the resource" }, "allowContextMapAll": { "index": 2, "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API." }, "allowTemplateFromHeader": { "index": 3, "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care." }, diff --git a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java index dc7089917fe81..3540253abc3ed 100644 --- a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java +++ b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java @@ -56,7 +56,7 @@ public class LanguageEndpoint extends ResourceEndpoint { private boolean contentResolvedFromResource; @UriPath(enums = "bean,constant,datasonnet,exchangeProperty,file,groovy,header,hl7terser,java,joor,jq,js,jsonpath" - + ",mvel,ognl,python,python3,quickjs,ref,simple,spel,tokenize,variable,wasm,xpath,xquery,xtokenize") + + ",mvel,ognl,python,python3,quickjs,ref,simple,spel,tokenize,variable,xpath,xquery,xtokenize") @Metadata(required = true) private String languageName; // resourceUri is optional in the language endpoint diff --git a/components/camel-wasm/pom.xml b/components/camel-wasm/pom.xml index 6465c2ded1ba5..9f959943d1dec 100644 --- a/components/camel-wasm/pom.xml +++ b/components/camel-wasm/pom.xml @@ -33,7 +33,6 @@ Camel Wasm component - -Dwasm.resources.path=${project.basedir}/src/test/resources Experimental @@ -61,19 +60,6 @@ ${endive-version} - - com.fasterxml.jackson.core - jackson-annotations - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-databind - - org.apache.camel diff --git a/components/camel-wasm/src/generated/resources/META-INF/org/apache/camel/language/wasm/wasm.json b/components/camel-wasm/src/generated/resources/META-INF/org/apache/camel/language/wasm/wasm.json deleted file mode 100644 index ded5b9d79d6bd..0000000000000 --- a/components/camel-wasm/src/generated/resources/META-INF/org/apache/camel/language/wasm/wasm.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "language": { - "kind": "language", - "name": "wasm", - "title": "Wasm", - "description": "Call a wasm (web assembly) function", - "deprecated": false, - "firstVersion": "4.5.0", - "label": "language", - "javaType": "org.apache.camel.language.wasm.WasmLanguage", - "supportLevel": "Experimental", - "groupId": "org.apache.camel", - "artifactId": "camel-wasm", - "version": "4.24.0-SNAPSHOT", - "modelName": "wasm", - "modelJavaType": "org.apache.camel.model.language.WasmExpression" - }, - "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": "The id of this node." }, - "expression": { "index": 1, "kind": "value", "displayName": "Expression", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The expression value in your chosen language syntax." }, - "module": { "index": 2, "kind": "attribute", "displayName": "Module", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function." }, - "resultType": { "index": 3, "kind": "attribute", "displayName": "Result Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The class of the result type (type from output)." }, - "trim": { "index": 4, "kind": "attribute", "displayName": "Trim", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to trim the source code to remove leading and trailing whitespaces and line breaks." }, - "resolveResource": { "index": 5, "kind": "attribute", "displayName": "Resolve Resource", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates\/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate." } - } -} diff --git a/components/camel-wasm/src/generated/resources/META-INF/services/org/apache/camel/language.properties b/components/camel-wasm/src/generated/resources/META-INF/services/org/apache/camel/language.properties deleted file mode 100644 index 670d7174464f4..0000000000000 --- a/components/camel-wasm/src/generated/resources/META-INF/services/org/apache/camel/language.properties +++ /dev/null @@ -1,7 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -languages=wasm -groupId=org.apache.camel -artifactId=camel-wasm -version=4.24.0-SNAPSHOT -projectName=Camel :: Wasm -projectDescription=Camel Wasm component diff --git a/components/camel-wasm/src/generated/resources/META-INF/services/org/apache/camel/language/wasm b/components/camel-wasm/src/generated/resources/META-INF/services/org/apache/camel/language/wasm deleted file mode 100644 index 67da38cc42068..0000000000000 --- a/components/camel-wasm/src/generated/resources/META-INF/services/org/apache/camel/language/wasm +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -class=org.apache.camel.language.wasm.WasmLanguage diff --git a/components/camel-wasm/src/main/docs/wasm-language.adoc b/components/camel-wasm/src/main/docs/wasm-language.adoc deleted file mode 100644 index e78879a52e012..0000000000000 --- a/components/camel-wasm/src/main/docs/wasm-language.adoc +++ /dev/null @@ -1,255 +0,0 @@ -= Wasm Language -:doctitle: Wasm -:shortname: wasm -:artifactid: camel-wasm -:description: Call a wasm (web assembly) function -:since: 4.5 -:supportlevel: Experimental -:tabs-sync-option: - -*Since Camel {since}* - -Camel supports Wasm to allow using xref:manual::expression.adoc[Expression] or xref:manual::predicate.adoc[Predicate]. - -== Wasm Options - -// language options: START -include::partial$language-options.adoc[] -// language options: END - - -== Writing A Wasm function - -In _Wasm_, sharing objects between the host, in this case the _JVM_, and the _Wasm_ module is deliberately restricted and as of today, it requires a number of steps: - -1. From the _host_, call a function inside the webassembly module that allocates a block of memory and returns its address, then save it -2. From the _host_, write the data that should be exchanged with the _Wasm_ module to the saved address -3. From the _host_, invoke the required function passing both the address where the data is written and its size -4. From the _Wasm_ module, read the data and process it -5. From the _host_, release the memory when done - -=== Providing functions for memory management - -The module hosting the function *must* provide the functions to allocate/deallocate memory that *must* be named `alloc` and `dealloc` respectively. - -Here's an example of the mentioned functions implemented in https://www.rust-lang.org[Rust]: - -[source,rust] ----- -pub extern "C" fn alloc(size: u32) -> *mut u8 { - let mut buf = Vec::with_capacity(size as usize); - let ptr = buf.as_mut_ptr(); - - // tell Rust not to clean this up - mem::forget(buf); - - ptr -} - -pub unsafe extern "C" fn dealloc(ptr: &mut u8, len: i32) { - // Retakes the pointer which allows its memory to be freed. - let _ = Vec::from_raw_parts(ptr, 0, len as usize); -} ----- - -=== Data shapes - -It is not possible to share a Java object with the Wasm module directly, and as mentioned before, -data exchange leverages Wasm's memory that can be accessed by both the host and the guest runtimes. -At this stage, the data structure that the component exchange with the Wasm function is a subset of the Apache Camel Message, -containing headers the body encoded as a base64 string: - -._Java-only: data wrapper class definition_ -[source,java] ----- -public static class Wrapper { - @JsonProperty - public Map headers = new HashMap<>(); - - @JsonProperty - public byte[] body; -} ----- - -=== Data processing - -The component expects the processing function to have the following signature: - -[source,rust] ----- -fn function(ptr: u32, len: u32) -> u64 ----- - -* it accepts two 32bit unsigned integers arguments -** a pointer to the memory location when the input data has been written (`ptr`) -** the size of the input data (`len`) -* it returns a 64bit unsigned integer where: -** the first 32bit represents a pointer to the return data -** the last 31bit represents the size of the return data -** the most significant bit of the returned data size is reserved to signal an error, so if it is set, then the return data could contain an error message/code/etc - -Here's an example of a complete function: - -[source,rust] ----- -#[derive(Serialize, Deserialize)] -struct Message { - headers: HashMap, - - #[serde(with = "Base64Standard")] - body: Vec, -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "transform")] -#[no_mangle] -pub extern fn transform(ptr: u32, len: u32) -> u64 { - let bytes = unsafe { - slice::from_raw_parts_mut( - ptr as *mut u8, - len as usize) - }; - - let msg: Message = serde_json::from_slice(bytes).unwrap(); - let res = String::from_utf8(msg.body).unwrap().to_uppercase().as_bytes().to_vec(); - - let out_len = res.len(); - let out_ptr = alloc(out_len as u32); - - unsafe { - std::ptr::copy_nonoverlapping( - res.as_ptr(), - out_ptr, - out_len as usize) - }; - - return ((out_ptr as u64) << 32) | out_len as u64; -} ----- - -=== Errors and module state - -The module is instantiated once per `wasm` expression and that instance handles every message, one at a time, so data -the module keeps in its memory or globals carries over from one message to the next. - -* When the function returns with the error bit set, the error data is released with `dealloc` using its size without -the error bit, the error data becomes the message of the exception, and the instance is kept. -* When the call fails without returning, for example on a Rust `panic` or any other Wasm trap, the instance is -discarded and a new one is created from the module for the next message. Whatever the failed call allocated can no -longer be released, so keeping the instance would grow its memory with every failure. Any state the module kept in -the discarded instance is lost. -On a route where every call fails this way, the module is instantiated again for every message (its data segments -are copied and any start function runs), which costs more than a call on a kept instance. - -== Examples - -Supposing we have compiled a Wasm module containing the function above, then it can be called in a Camel Route by its name and module resource location: - -[tabs] -==== -Java:: -+ -[source,java] ----- -from("direct:in") - .transform() - .wasm("transform", "classpath://functions.wasm"); ----- - -XML:: -+ -[source,xml] ----- - - - - transform - - ----- - -YAML:: -+ -[source,yaml] ----- -- route: - from: - uri: direct:in - steps: - - transform: - expression: - wasm: - expression: transform - module: classpath://functions.wasm ----- -==== - - -== Using Wasm as a predicate - -When the function is used as a xref:manual::predicate.adoc[Predicate], for example with the -xref:eips:filter-eip.adoc[Filter] EIP, its result is converted to a boolean depending on the result type: - -* With the default result type (`byte[]`) or `String`, the returned bytes are read as a string and the -standard Camel rules apply: `true` and `false` (in any case) are parsed, empty data is `false`, and any -other value is `true`. So the function can simply return `true` or `false`. -* With the result type `Boolean`, only `true` and `false` (in any case) are accepted: any other value, -including empty data, is `false`. -* With a Jackson `JsonNode` result type, only the JSON boolean `true` matches. - -[tabs] -==== -Java:: -+ -[source,java] ----- -from("direct:in") - .filter().wasm("is_valid", "classpath://functions.wasm") - .to("direct:valid"); ----- - -XML:: -+ -[source,xml] ----- - - - - is_valid - - - ----- - -YAML:: -+ -[source,yaml] ----- -- route: - from: - uri: direct:in - steps: - - filter: - expression: - wasm: - expression: is_valid - module: classpath://functions.wasm - steps: - - to: - uri: direct:valid ----- -==== - - -== Dependencies - -If you use Maven you could add the following to your `pom.xml`, -substituting the version number for the latest and greatest release. - -[source,xml] ----- - - org.apache.camel - camel-wasm - x.x.x - ----- diff --git a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java b/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java deleted file mode 100644 index 163c2cba3bcfa..0000000000000 --- a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.language.wasm; - -import java.io.IOException; -import java.io.InputStream; - -import com.fasterxml.jackson.databind.JsonNode; -import org.apache.camel.CamelContext; -import org.apache.camel.Exchange; -import org.apache.camel.RuntimeCamelException; -import org.apache.camel.TypeConverter; -import org.apache.camel.spi.ExpressionResultTypeAware; -import org.apache.camel.spi.Resource; -import org.apache.camel.spi.ResourceLoader; -import org.apache.camel.support.ExpressionAdapter; -import org.apache.camel.support.PluginHelper; -import org.apache.camel.util.ObjectHelper; -import org.apache.camel.wasm.WasmFunction; -import org.apache.camel.wasm.WasmSupport; -import run.endive.wasm.Parser; - -public class WasmExpression extends ExpressionAdapter implements ExpressionResultTypeAware { - private final String expression; - private String module; - - private String resultTypeName; - private Class resultType; - - private String headerName; - private String propertyName; - - private TypeConverter typeConverter; - private WasmFunction function; - - public WasmExpression(String expression) { - this.expression = expression; - } - - @Override - public void init(CamelContext camelContext) { - super.init(camelContext); - - if (module == null) { - throw new IllegalArgumentException("Module must be configured"); - } - - this.typeConverter = camelContext.getTypeConverter(); - - if (resultTypeName != null && (resultType == null || resultType == Object.class)) { - resultType = camelContext.getClassResolver().resolveClass(resultTypeName); - } - if (resultType == null || resultType == Object.class) { - resultType = byte[].class; - } - - final ResourceLoader rl = PluginHelper.getResourceLoader(camelContext); - final Resource res = rl.resolveResource(module); - - try (InputStream is = res.getInputStream()) { - this.function = new WasmFunction(Parser.parse(is), expression); - } catch (IOException e) { - throw new RuntimeCamelException(e); - } - } - - @Override - public String getExpressionText() { - return this.expression; - } - - @Override - public Class getResultType() { - return this.resultType; - } - - public void setResultType(Class resultType) { - this.resultType = resultType; - } - - public String getResultTypeName() { - return resultTypeName; - } - - public void setResultTypeName(String resultTypeName) { - this.resultTypeName = resultTypeName; - } - - public String getHeaderName() { - return headerName; - } - - /** - * Name of the header to use as input instead of the message body. - *

- * It has higher precedence than the propertyName if both are set. - */ - public void setHeaderName(String headerName) { - this.headerName = headerName; - } - - public String getPropertyName() { - return propertyName; - } - - /** - * Name of the property to use as input instead of the message body. - *

- * It has lower precedence than the headerName if both are set. - */ - public void setPropertyName(String propertyName) { - this.propertyName = propertyName; - } - - public String getModule() { - return module; - } - - /** - * Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides - * the expression function. - */ - public void setModule(String module) { - this.module = module; - } - - @Override - public boolean matches(Exchange exchange) { - Object value = evaluate(exchange, Object.class); - - if (value instanceof JsonNode node) { - // a JSON result only matches when it is the boolean true - return node.isBoolean() && node.asBoolean(); - } - if (value instanceof byte[] bytes) { - // the default result type: the raw bytes returned by the function, such as "true" or "false" - value = typeConverter.convertTo(String.class, exchange, bytes); - } - - return ObjectHelper.evaluateValuePredicate(value); - } - - @Override - public Object evaluate(Exchange exchange) { - try { - byte[] in = WasmSupport.serialize(exchange); - byte[] result = function.run(in); - - return this.typeConverter.convertTo(resultType, exchange, result); - } catch (Exception e) { - throw new RuntimeCamelException(e); - } - } -} diff --git a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java b/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java deleted file mode 100644 index 07579ec2418e8..0000000000000 --- a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.language.wasm; - -import org.apache.camel.CamelContext; -import org.apache.camel.Expression; -import org.apache.camel.Predicate; -import org.apache.camel.spi.PropertyConfigurer; -import org.apache.camel.spi.annotations.Language; -import org.apache.camel.support.ExpressionToPredicateAdapter; -import org.apache.camel.support.TypedLanguageSupport; -import org.apache.camel.support.component.PropertyConfigurerSupport; -import org.apache.camel.wasm.Wasm; - -@Language(Wasm.SCHEME) -public class WasmLanguage extends TypedLanguageSupport implements PropertyConfigurer { - - private String module; - - public WasmLanguage() { - } - - public String getModule() { - return module; - } - - public void setModule(String module) { - this.module = module; - } - - @Override - public boolean configure(CamelContext camelContext, Object target, String name, Object value, boolean ignoreCase) { - if (target != this) { - throw new IllegalStateException("Can only configure our own instance !"); - } - - switch (ignoreCase ? name.toLowerCase() : name) { - case "module": - setModule(PropertyConfigurerSupport.property(camelContext, String.class, value)); - return true; - default: - return false; - } - } - - @Override - public Predicate createPredicate(String expression) { - return ExpressionToPredicateAdapter.toPredicate(createExpression(expression)); - } - - @Override - public Expression createExpression(String expression) { - return createExpression(expression, null); - } - - @Override - public Predicate createPredicate(String expression, Object[] properties) { - return ExpressionToPredicateAdapter.toPredicate(createExpression(expression, properties)); - } - - @Override - public Expression createExpression(String expression, Object[] properties) { - WasmExpression answer = new WasmExpression(expression); - answer.setResultType(property(Class.class, properties, 0, null)); - answer.setModule(property(String.class, properties, 1, getModule())); - if (getCamelContext() != null) { - answer.init(getCamelContext()); - } - return answer; - } -} diff --git a/components/camel-wasm/src/main/java/org/apache/camel/wasm/Wasm.java b/components/camel-wasm/src/main/java/org/apache/camel/wasm/Wasm.java index c93336f4889b7..c6ee9c9c2f633 100644 --- a/components/camel-wasm/src/main/java/org/apache/camel/wasm/Wasm.java +++ b/components/camel-wasm/src/main/java/org/apache/camel/wasm/Wasm.java @@ -20,8 +20,6 @@ public final class Wasm { public static final String SCHEME = "wasm"; - public static final String FN_ALLOC = "alloc"; - public static final String FN_DEALLOC = "dealloc"; private Wasm() { } diff --git a/components/camel-wasm/src/main/java/org/apache/camel/wasm/WasmFunction.java b/components/camel-wasm/src/main/java/org/apache/camel/wasm/WasmFunction.java deleted file mode 100644 index 2c3ef70f1ed4f..0000000000000 --- a/components/camel-wasm/src/main/java/org/apache/camel/wasm/WasmFunction.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.wasm; - -import java.nio.charset.StandardCharsets; -import java.util.Objects; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import run.endive.runtime.ExportFunction; -import run.endive.runtime.Instance; -import run.endive.wasm.WasmModule; - -public class WasmFunction implements AutoCloseable { - private static final Logger LOG = LoggerFactory.getLogger(WasmFunction.class); - - private final Lock lock; - - private final WasmModule module; - private final String functionName; - - // guarded by lock; null after a failed call until the next call creates a new instance - private Instance instance; - private ExportFunction function; - private ExportFunction alloc; - private ExportFunction dealloc; - - public WasmFunction(WasmModule module, String functionName) { - this.lock = new ReentrantLock(); - - this.module = Objects.requireNonNull(module); - this.functionName = Objects.requireNonNull(functionName); - - // the instance fields are not final: create the first instance under the lock, so that a first run() on - // another thread sees them - lock.lock(); - try { - createInstance(); - } finally { - lock.unlock(); - } - } - - public byte[] run(byte[] in) throws Exception { - Objects.requireNonNull(in); - - final int inSize = in.length; - final byte[] out; - final boolean error; - - // - // Wasm execution is not thread safe so we must put a - // synchronization guard around the function execution - // - lock.lock(); - try { - if (instance == null) { - createInstance(); - } - - try { - int inPtr = (int) alloc.apply(inSize)[0]; - instance.memory().write(inPtr, in); - - long[] results = function.apply(inPtr, inSize); - long ptrAndSize = results[0]; - - int outPtr = (int) (ptrAndSize >> 32); - int outSize = (int) ptrAndSize; - - // assume the max output is 31 bit, leverage the first bit for - // error detection - error = isError(outSize); - if (error) { - outSize = errSize(outSize); - } - - out = instance.memory().readBytes(outPtr, outSize); - - dealloc.apply(inPtr, inSize); - dealloc.apply(outPtr, outSize); - } catch (RuntimeException | Error e) { - // The guest trapped, was interrupted or failed otherwise: its memory and globals are left as the - // failed call left them, and whatever it allocated before the failure can never be released. - // Discard the instance instead of calling into it again, so the original exception is propagated - // as is, and create a new one on the next call. - discardInstance(e); - throw e; - } - } finally { - lock.unlock(); - } - - if (error) { - throw new RuntimeException(new String(out, StandardCharsets.UTF_8)); - } - - return out; - } - - @Override - public void close() throws Exception { - lock.lock(); - try { - if (instance != null) { - instance.close(); - } - clearInstance(); - } finally { - lock.unlock(); - } - } - - private void createInstance() { - Instance newInstance = Instance.builder(this.module).build(); - ExportFunction newFunction = newInstance.export(this.functionName); - ExportFunction newAlloc = newInstance.export(Wasm.FN_ALLOC); - ExportFunction newDealloc = newInstance.export(Wasm.FN_DEALLOC); - - // all four fields refer to the same instance, or are left as they were if an export is missing - this.instance = newInstance; - this.function = newFunction; - this.alloc = newAlloc; - this.dealloc = newDealloc; - } - - private void discardInstance(Throwable cause) { - LOG.debug("Discarding the Wasm instance of function {} after a failed call: {}", functionName, cause.getMessage()); - - try { - instance.close(); - } catch (RuntimeException e) { - cause.addSuppressed(e); - } - clearInstance(); - } - - private void clearInstance() { - this.instance = null; - this.function = null; - this.alloc = null; - this.dealloc = null; - } - - private static boolean isError(int number) { - return (number & (1 << 31)) != 0; - } - - private static int errSize(int number) { - return number & (~(1 << 31)); - } -} diff --git a/components/camel-wasm/src/main/java/org/apache/camel/wasm/WasmSupport.java b/components/camel-wasm/src/main/java/org/apache/camel/wasm/WasmSupport.java deleted file mode 100644 index 0fe5bddcb0f92..0000000000000 --- a/components/camel-wasm/src/main/java/org/apache/camel/wasm/WasmSupport.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.wasm; - -import java.util.HashMap; -import java.util.Map; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.json.JsonMapper; -import org.apache.camel.Exchange; - -public final class WasmSupport { - public static final ObjectMapper MAPPER = JsonMapper.builder().build(); - - private WasmSupport() { - } - - public static byte[] serialize(Exchange exchange) throws Exception { - Wrapper env = new Wrapper(); - env.body = exchange.getMessage().getBody(byte[].class); - - for (String headerName : exchange.getMessage().getHeaders().keySet()) { - env.headers.put(headerName, exchange.getMessage().getHeader(headerName, String.class)); - } - - return MAPPER.writeValueAsBytes(env); - } - - public static class Wrapper { - @JsonProperty - public Map headers = new HashMap<>(); - - @JsonProperty - public byte[] body; - } -} diff --git a/components/camel-wasm/src/test/java/org/apache/camel/component/wasm/WasmComponentTest.java b/components/camel-wasm/src/test/java/org/apache/camel/component/wasm/WasmComponentTest.java index b7137dcc87d22..d766ff2432cf0 100644 --- a/components/camel-wasm/src/test/java/org/apache/camel/component/wasm/WasmComponentTest.java +++ b/components/camel-wasm/src/test/java/org/apache/camel/component/wasm/WasmComponentTest.java @@ -972,8 +972,8 @@ void moduleIsLoadedAgainAfterAFailedLoad() throws Exception { @Test void moduleWithoutStartIsRejected() throws Exception { - // the test module of the wasm language exports functions, not a program - assertStartFails("wasm:classpath:functions.wasm", "has no _start function"); + // a module that exports functions, not a program + assertStartFails("wasm:" + wat("library", "(module (func (export \"process\")))"), "has no _start function"); } @Test diff --git a/components/camel-wasm/src/test/java/org/apache/camel/language/wasm/WasmLanguageTest.java b/components/camel-wasm/src/test/java/org/apache/camel/language/wasm/WasmLanguageTest.java deleted file mode 100644 index 86d027d6e78c9..0000000000000 --- a/components/camel-wasm/src/test/java/org/apache/camel/language/wasm/WasmLanguageTest.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.language.wasm; - -import org.apache.camel.CamelContext; -import org.apache.camel.Exchange; -import org.apache.camel.FluentProducerTemplate; -import org.apache.camel.ProducerTemplate; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.impl.DefaultCamelContext; -import org.apache.camel.util.StringHelper; -import org.assertj.core.api.InstanceOfAssertFactories; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; - -import static org.assertj.core.api.Assertions.as; -import static org.assertj.core.api.Assertions.assertThat; - -public class WasmLanguageTest { - - @ParameterizedTest - @ValueSource(strings = { - "transform@functions.wasm", - "transform@file:{{wasm.resources.path}}/functions.wasm" - }) - public void testLanguage(String expression) throws Exception { - try (CamelContext cc = new DefaultCamelContext()) { - - FluentProducerTemplate pt = cc.createFluentProducerTemplate(); - - cc.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - from("direct:in") - .transform() - .wasm( - StringHelper.before(expression, "@"), - StringHelper.after(expression, "@")); - } - }); - cc.start(); - - Exchange out = pt.to("direct:in") - .withHeader("foo", "bar") - .withBody("hello") - .request(Exchange.class); - - assertThat(out.getMessage().getHeaders()) - .containsEntry("foo", "bar"); - assertThat(out.getMessage().getBody(String.class)) - .isEqualTo("HELLO"); - - } - } - - @Test - public void testLanguageFailure() throws Exception { - try (CamelContext cc = new DefaultCamelContext()) { - - FluentProducerTemplate pt = cc.createFluentProducerTemplate(); - - cc.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - from("direct:in") - .transform() - .wasm("transform_err", "functions.wasm"); - } - }); - cc.start(); - - Exchange out = pt.to("direct:in") - .withHeader("foo", "bar") - .withBody("hello") - .request(Exchange.class); - - assertThat(out.getException()) - .isNotNull() - .hasCauseInstanceOf(RuntimeException.class) - .extracting(Throwable::getCause, as(InstanceOfAssertFactories.THROWABLE)) - .hasMessage("this is an error"); - } - } - - @ParameterizedTest - @ValueSource(classes = { byte[].class, String.class, Boolean.class }) - public void testPredicate(Class resultType) throws Exception { - try (CamelContext cc = new DefaultCamelContext()) { - - cc.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - // the transform function upper-cases the body, so it returns TRUE, FALSE or nothing - from("direct:in") - .filter() - .wasm("transform", "functions.wasm", resultType) - .to("mock:result"); - } - }); - cc.start(); - - MockEndpoint mock = cc.getEndpoint("mock:result", MockEndpoint.class); - mock.expectedBodiesReceived("true"); - - ProducerTemplate pt = cc.createProducerTemplate(); - pt.sendBody("direct:in", "false"); - pt.sendBody("direct:in", ""); - pt.sendBody("direct:in", "true"); - - mock.assertIsSatisfied(); - } - } -} diff --git a/components/camel-wasm/src/test/java/org/apache/camel/wasm/WasmFunctionTest.java b/components/camel-wasm/src/test/java/org/apache/camel/wasm/WasmFunctionTest.java deleted file mode 100644 index 3df5ad17aa000..0000000000000 --- a/components/camel-wasm/src/test/java/org/apache/camel/wasm/WasmFunctionTest.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.wasm; - -import java.util.Arrays; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; - -import org.junit.jupiter.api.Test; -import run.endive.runtime.TrapException; -import run.endive.runtime.WasmInterruptedException; -import run.endive.wabt.Wat2Wasm; -import run.endive.wasm.Parser; -import run.endive.wasm.WasmModule; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.awaitility.Awaitility.await; - -public class WasmFunctionTest { - - /** - * A guest with one page of memory (64 KiB) and an arena allocator that only gets its memory back when every - * allocation has been released. The process function looks at the first byte of its input: - *
    - *
  • {@code t} allocates 32 KiB and traps before returning, like a Rust panic on bad input
  • - *
  • {@code e} returns the error message {@code boom} with the error bit set on its size
  • - *
  • {@code s} spins until the calling thread is interrupted
  • - *
  • anything else is echoed back
  • - *
- * The dealloc function traps when it is given a size that does not fit in 31 bits. - */ - private static final String GUEST = """ - (module - (memory (export "memory") 1 1) - (data (i32.const 16) "boom") - (global $base i32 (i32.const 1024)) - (global $next (mut i32) (i32.const 1024)) - (global $live (mut i32) (i32.const 0)) - - (func $alloc (export "alloc") (param $size i32) (result i32) - (local $ptr i32) - (local.set $ptr (global.get $next)) - (if (i32.gt_u (i32.add (local.get $ptr) (local.get $size)) (i32.const 65536)) - (then unreachable)) - (global.set $next (i32.add (local.get $ptr) (local.get $size))) - (global.set $live (i32.add (global.get $live) (i32.const 1))) - (local.get $ptr)) - - (func (export "dealloc") (param $ptr i32) (param $len i32) - (if (i32.lt_s (local.get $len) (i32.const 0)) - (then unreachable)) - (global.set $live (i32.sub (global.get $live) (i32.const 1))) - (if (i32.eqz (global.get $live)) - (then (global.set $next (global.get $base))))) - - (func (export "process") (param $ptr i32) (param $len i32) (result i64) - (local $op i32) - (local $out i32) - (if (i32.gt_u (local.get $len) (i32.const 0)) - (then (local.set $op (i32.load8_u (local.get $ptr))))) - (if (i32.eq (local.get $op) (i32.const 116)) - (then - (drop (call $alloc (i32.const 32768))) - unreachable)) - (if (i32.eq (local.get $op) (i32.const 101)) - (then - (local.set $out (call $alloc (i32.const 4))) - (memory.copy (local.get $out) (i32.const 16) (i32.const 4)) - (return (i64.or - (i64.shl (i64.extend_i32_u (local.get $out)) (i64.const 32)) - (i64.const 0x80000004))))) - (if (i32.eq (local.get $op) (i32.const 115)) - (then (loop $spin (br $spin)))) - (local.set $out (call $alloc (local.get $len))) - (memory.copy (local.get $out) (local.get $ptr) (local.get $len)) - (i64.or - (i64.shl (i64.extend_i32_u (local.get $out)) (i64.const 32)) - (i64.extend_i32_u (local.get $len)))) - ) - """; - - private static WasmFunction newFunction() { - WasmModule module = Parser.parse(Wat2Wasm.parse(GUEST)); - return new WasmFunction(module, "process"); - } - - private static byte[] data(char first, int size) { - byte[] data = new byte[size]; - Arrays.fill(data, (byte) 'a'); - data[0] = (byte) first; - return data; - } - - @Test - public void testTrapDoesNotLeakGuestMemory() throws Exception { - WasmFunction function = newFunction(); - - // each trap leaves 32 KiB allocated in the guest, more than half of its memory - for (int i = 0; i < 3; i++) { - assertThatThrownBy(() -> function.run(data('t', 1))) - .isInstanceOf(TrapException.class); - } - - // needs 2 x 16 KiB: only fits if the memory of the failed calls was given back - byte[] in = data('a', 16 * 1024); - assertThat(function.run(in)).isEqualTo(in); - } - - @Test - public void testErrorIsDeallocatedWithItsSize() throws Exception { - WasmFunction function = newFunction(); - - // dealloc traps on a size with the error bit set, which would replace the error of the function - assertThatThrownBy(() -> function.run(data('e', 1))) - .isExactlyInstanceOf(RuntimeException.class) - .hasMessage("boom"); - - byte[] in = data('a', 16); - assertThat(function.run(in)).isEqualTo(in); - } - - @Test - public void testInterruptDoesNotLeakGuestMemory() throws Exception { - WasmFunction function = newFunction(); - AtomicReference failure = new AtomicReference<>(); - - // the input of the interrupted call takes 40 KiB of the guest memory until it is released - Thread caller = new Thread(() -> { - try { - function.run(data('s', 40 * 1024)); - } catch (Throwable e) { - failure.set(e); - } - }, "wasm-caller"); - // a daemon, so that a guest that is never interrupted cannot keep the test JVM from exiting - caller.setDaemon(true); - caller.start(); - - try { - await().atMost(10, TimeUnit.SECONDS).until(() -> isRunningGuestCode(caller)); - caller.interrupt(); - caller.join(TimeUnit.SECONDS.toMillis(10)); - - assertThat(caller.isAlive()).isFalse(); - assertThat(failure.get()).isInstanceOf(WasmInterruptedException.class); - - // needs 2 x 16 KiB: only fits if the input of the interrupted call was given back - byte[] in = data('a', 16 * 1024); - assertThat(function.run(in)).isEqualTo(in); - } finally { - // stop the spinning guest even when an assertion above failed - caller.interrupt(); - caller.join(TimeUnit.SECONDS.toMillis(10)); - } - } - - private static boolean isRunningGuestCode(Thread thread) { - // the package rather than a class, so that an engine switch or an internal rename does not break the probe - return Arrays.stream(thread.getStackTrace()) - .anyMatch(e -> e.getClassName().startsWith("run.endive.")); - } -} diff --git a/components/camel-wasm/src/test/resources/functions.wasm b/components/camel-wasm/src/test/resources/functions.wasm deleted file mode 100755 index c8b9e5c2838cd..0000000000000 Binary files a/components/camel-wasm/src/test/resources/functions.wasm and /dev/null differ diff --git a/components/camel-wasm/src/test/rust/Cargo.lock b/components/camel-wasm/src/test/rust/Cargo.lock deleted file mode 100644 index 5c446d78d16cf..0000000000000 --- a/components/camel-wasm/src/test/rust/Cargo.lock +++ /dev/null @@ -1,124 +0,0 @@ -# -# 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. -# - -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64-serde" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba368df5de76a5bea49aaf0cf1b39ccfbbef176924d1ba5db3e4135216cbe3c7" -dependencies = [ - "base64", - "serde", -] - -[[package]] -name = "functions" -version = "0.1.0" -dependencies = [ - "base64", - "base64-serde", - "serde", - "serde_json", -] - -[[package]] -name = "itoa" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" - -[[package]] -name = "proc-macro2" -version = "1.0.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "ryu" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" - -[[package]] -name = "serde" -version = "1.0.195" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.195" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "syn" -version = "2.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" diff --git a/components/camel-wasm/src/test/rust/Cargo.toml b/components/camel-wasm/src/test/rust/Cargo.toml deleted file mode 100644 index 4d07159e3f69f..0000000000000 --- a/components/camel-wasm/src/test/rust/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -[package] -name = "functions" -version = "0.1.0" -authors = ["lburgazzoli@gmail.com"] -edition = "2018" - -[lib] -crate-type = ["cdylib"] -path = "functions.rs" - -[dependencies] -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -base64 = "0.21.7" -base64-serde = "0.7.0" - -[profile.release] -opt-level = 0 -lto = "off" -codegen-units = 1 \ No newline at end of file diff --git a/components/camel-wasm/src/test/rust/build.sh b/components/camel-wasm/src/test/rust/build.sh deleted file mode 100755 index 455fe7892475e..0000000000000 --- a/components/camel-wasm/src/test/rust/build.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! /bin/bash -# -# 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. -# - -set -euxo pipefail - -# rustup target add wasm32-unknown-unknown - -cargo build --target wasm32-unknown-unknown --release - -cp target/wasm32-unknown-unknown/release/functions.wasm ../resources - diff --git a/components/camel-wasm/src/test/rust/functions.rs b/components/camel-wasm/src/test/rust/functions.rs deleted file mode 100644 index 017d59845a3d9..0000000000000 --- a/components/camel-wasm/src/test/rust/functions.rs +++ /dev/null @@ -1,134 +0,0 @@ -// -// 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. -// - -use std::mem; -use std::slice; -use std::collections::HashMap; - -use serde::{Deserialize, Serialize}; -use base64_serde::base64_serde_type; - -base64_serde_type!(Base64Standard, base64::engine::general_purpose::STANDARD); - -#[derive(Serialize, Deserialize)] -struct Message { - headers: HashMap, - - #[serde(with = "Base64Standard")] - body: Vec, -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "alloc")] -#[no_mangle] -pub extern "C" fn alloc(size: u32) -> *mut u8 { - let mut buf = Vec::with_capacity(size as usize); - let ptr = buf.as_mut_ptr(); - - // tell Rust not to clean this up - mem::forget(buf); - - ptr -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "dealloc")] -#[no_mangle] -pub unsafe extern "C" fn dealloc(ptr: &mut u8, len: i32) { - // Retakes the pointer which allows its memory to be freed. - let _ = Vec::from_raw_parts(ptr, 0, len as usize); -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "process")] -#[no_mangle] -pub extern fn process(ptr: u32, len: u32) -> u64 { - let bytes = unsafe { - slice::from_raw_parts_mut( - ptr as *mut u8, - len as usize) - }; - - let mut msg: Message = serde_json::from_slice(bytes).unwrap(); - msg.body = String::from_utf8(msg.body).unwrap().to_uppercase().as_bytes().to_vec(); - - let out_vec = serde_json::to_vec(&msg).unwrap(); - let out_len = out_vec.len(); - let out_ptr = alloc(out_len as u32); - - unsafe { - std::ptr::copy_nonoverlapping( - out_vec.as_ptr(), - out_ptr, - out_len as usize) - }; - - return ((out_ptr as u64) << 32) | out_len as u64; -} - - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "process_err")] -#[no_mangle] -pub extern fn process_err(ptr: u32, len: u32) -> u64 { - return fail(ptr, len) -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "transform")] -#[no_mangle] -pub extern fn transform(ptr: u32, len: u32) -> u64 { - let bytes = unsafe { - slice::from_raw_parts_mut( - ptr as *mut u8, - len as usize) - }; - - let msg: Message = serde_json::from_slice(bytes).unwrap(); - let res = String::from_utf8(msg.body).unwrap().to_uppercase().as_bytes().to_vec(); - - let out_len = res.len(); - let out_ptr = alloc(out_len as u32); - - unsafe { - std::ptr::copy_nonoverlapping( - res.as_ptr(), - out_ptr, - out_len as usize) - }; - - return ((out_ptr as u64) << 32) | out_len as u64; -} - -#[cfg_attr(all(target_arch = "wasm32"), export_name = "transform_err")] -#[no_mangle] -pub extern fn transform_err(ptr: u32, len: u32) -> u64 { - return fail(ptr, len) -} - - -pub fn fail(_ptr: u32, _len: u32) -> u64 { - let res = "this is an error"; - let mut out_len = res.len(); - let out_ptr = alloc(out_len as u32); - - unsafe { - std::ptr::copy_nonoverlapping( - res.as_ptr(), - out_ptr, - out_len as usize) - }; - - out_len |= 1 << 31; - - return ((out_ptr as u64) << 32) | out_len as u64; -} \ No newline at end of file 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 b44e99f13f841..289b5ccd13dd5 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 @@ -17,10 +17,10 @@ "note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The note for 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": "The description for 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": "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." }, - "correlationExpression": { "index": 4, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression used to calculate the correlation key to use for aggregation. Exchanges with the same correlation key are aggregated together. If the correlation key cannot be evaluated an Exception is thrown." }, - "completionPredicate": { "index": 5, "kind": "expression", "displayName": "Completion Predicate", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "A predicate to indicate when an aggregated exchange is complete. If not specified and the AggregationStrategy implements Predicate, it will be used as the completionPredicate." }, - "completionTimeoutExpression": { "index": 6, "kind": "expression", "displayName": "Completion Timeout Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Time in millis that an aggregated exchange should be inactive before its complete (timeout), evaluated as an expression allowing dynamic timeout values." }, - "completionSizeExpression": { "index": 7, "kind": "expression", "displayName": "Completion Size Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Number of messages aggregated before the aggregation is complete, evaluated as an expression allowing dynamic size values." }, + "correlationExpression": { "index": 4, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression used to calculate the correlation key to use for aggregation. Exchanges with the same correlation key are aggregated together. If the correlation key cannot be evaluated an Exception is thrown." }, + "completionPredicate": { "index": 5, "kind": "expression", "displayName": "Completion Predicate", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "A predicate to indicate when an aggregated exchange is complete. If not specified and the AggregationStrategy implements Predicate, it will be used as the completionPredicate." }, + "completionTimeoutExpression": { "index": 6, "kind": "expression", "displayName": "Completion Timeout Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Time in millis that an aggregated exchange should be inactive before its complete (timeout), evaluated as an expression allowing dynamic timeout values." }, + "completionSizeExpression": { "index": 7, "kind": "expression", "displayName": "Completion Size Expression", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Number of messages aggregated before the aggregation is complete, evaluated as an expression allowing dynamic size values." }, "optimisticLockRetryPolicy": { "index": 8, "kind": "element", "displayName": "Optimistic Lock Retry Policy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.OptimisticLockRetryPolicyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures retry settings when using optimistic locking." }, "parallelProcessing": { "index": 9, "kind": "attribute", "displayName": "Parallel Processing", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When completed exchanges are sent out of the aggregator, this option indicates whether Camel should use a thread pool with multiple threads for concurrency." }, "optimisticLocking": { "index": 10, "kind": "attribute", "displayName": "Optimistic Locking", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Turns on optimistic locking, which requires the aggregation repository to implement OptimisticLockingAggregationRepository." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/cache.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/cache.json index 08f5ce5c924b6..159cd3acf48a3 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/cache.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/cache.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to compute the cache key. Messages with the same key share the cached result." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to compute the cache key. Messages with the same key share the cached result." }, "keyValueRepository": { "index": 5, "kind": "attribute", "displayName": "Key Value Repository", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.KeyValueRepository", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the reference name of the KeyValueRepository to use as the cache backing store. If not set, a MemoryKeyValueRepository is auto-created." }, "ttl": { "index": 6, "kind": "attribute", "displayName": "Ttl", "group": "common", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "-1", "description": "Sets the time-to-live for cached entries. Supports duration syntax (e.g. 10m, 1h) or milliseconds. Default: -1 (no expiration)." }, "cacheNull": { "index": 7, "kind": "attribute", "displayName": "Cache Null", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache null results. By default, null message bodies are not cached." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/delay.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/delay.json index a1ad1e5f75d37..a70f33c5a93ac 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/delay.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/delay.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the delay duration in milliseconds." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the delay duration in milliseconds." }, "asyncDelayed": { "index": 5, "kind": "attribute", "displayName": "Async Delayed", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Enables asynchronous delay which means the thread will not block while delaying." }, "callerRunsWhenRejected": { "index": 6, "kind": "attribute", "displayName": "Caller Runs When Rejected", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not the caller should run the task when it was rejected by the thread pool." }, "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 if asyncDelay has been enabled." } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dynamicRouter.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dynamicRouter.json index 23ea567272053..5382f92c8cc8f 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dynamicRouter.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/dynamicRouter.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the next endpoint URI to route to. The expression is called iteratively until it returns null to indicate the end of routing." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the next endpoint URI to route to. The expression is called iteratively until it returns null to indicate the end of routing." }, "uriDelimiter": { "index": 5, "kind": "attribute", "displayName": "Uri Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "The delimiter used to separate endpoint URIs when the expression returns multiple endpoints. Default is comma." }, "ignoreInvalidEndpoints": { "index": 6, "kind": "attribute", "displayName": "Ignore Invalid Endpoints", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then invalid endpoint URIs are ignored and logged instead of throwing an exception." }, "cacheSize": { "index": 7, "kind": "attribute", "displayName": "Cache Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the cache size for ProducerCache which caches producers for reuse. The default cache size is 1000. Set to -1 to turn off caching." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/enrich.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/enrich.json index 757e68c4c0140..2f1da84e8b8bb 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/enrich.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/enrich.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to enrich from." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to enrich from." }, "variableSend": { "index": 5, "kind": "attribute", "displayName": "Variable Send", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a variable as the source for the message body to send. When using send variable then the message body is taken from this variable instead of the current message, however the headers from the message will still be used as well." }, "variableReceive": { "index": 6, "kind": "attribute", "displayName": "Variable Receive", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for user data and to easily control what data to use for sending and receiving." }, "aggregationStrategy": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message." }, 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 14e7752a5be72..4e72dc3ae81bb 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate. Messages where the predicate returns false are filtered out and not routed further." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate. Messages where the predicate returns false are filtered out and not routed further." }, "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 an exchange property to store whether the filter predicate matched or not. The value is stored as a boolean." }, "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List>", "oneOf": [ "a2aSubTask", "aggregate", "bean", "cache", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "pausable", "pipeline", "policy", "poll", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "switch", "threads", "throttle", "throwException", "to", "toD", "tokenizer", "transacted", "transform", "transformDataType", "unmarshal", "validate", "wireTap" ], "deprecated": false, "autowired": false, "secret": false } } 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 f027166a0bfc3..42b65e18142d4 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the unique message ID used for duplicate detection. Messages with the same ID are treated as duplicates and skipped." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the unique message ID used for duplicate detection. Messages with the same ID are treated as duplicates and skipped." }, "idempotentRepository": { "index": 5, "kind": "attribute", "displayName": "Idempotent Repository", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the reference name of the message id repository to use for storing processed message ids to detect duplicates." }, "eager": { "index": 6, "kind": "attribute", "displayName": "Eager", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to eagerly add the key to the idempotent repository or wait until the exchange is complete. Eager is default enabled." }, "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." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/language/wasm.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/language/wasm.json deleted file mode 100644 index f77d85b07c350..0000000000000 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/language/wasm.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "model": { - "kind": "model", - "name": "wasm", - "title": "Wasm", - "description": "Call a wasm (web assembly) function", - "deprecated": false, - "firstVersion": "4.5.0", - "label": "language", - "javaType": "org.apache.camel.model.language.WasmExpression", - "abstract": false, - "input": false, - "output": false - }, - "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": "The id of this node." }, - "expression": { "index": 1, "kind": "value", "displayName": "Expression", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The expression value in your chosen language syntax." }, - "module": { "index": 2, "kind": "attribute", "displayName": "Module", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function." }, - "resultType": { "index": 3, "kind": "attribute", "displayName": "Result Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The class of the result type (type from output)." }, - "trim": { "index": 4, "kind": "attribute", "displayName": "Trim", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to trim the source code to remove leading and trailing whitespaces and line breaks." }, - "resolveResource": { "index": 5, "kind": "attribute", "displayName": "Resolve Resource", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates\/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate." } - } -} diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadbalancer/stickyLoadBalancer.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadbalancer/stickyLoadBalancer.json index 948180acfcce4..87b2bc65e0d17 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadbalancer/stickyLoadBalancer.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/loadbalancer/stickyLoadBalancer.json @@ -13,6 +13,6 @@ }, "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": "The id of this node" }, - "correlationExpression": { "index": 1, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use to calculate the correlation key." } + "correlationExpression": { "index": 1, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use to calculate the correlation key." } } } 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 08cffb3e6a881..5d6a11f3e80f9 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the number of times to loop. The result is converted to an integer." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that determines the number of times to loop. The result is converted to an integer." }, "copy": { "index": 5, "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 enabled, a copy of the input Exchange is used for each iteration. That means each iteration will start from a copy of the same message." }, "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 enabled, the loop will not iterate until it reaches the end when Camel is shut down." }, 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 e0ed0003e5046..002a33850fee0 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 @@ -18,11 +18,11 @@ "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": "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": 4, "kind": "element", "displayName": "Exception", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "deprecated": false, "autowired": false, "secret": false, "description": "A list of exception class names to catch and handle." }, "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 this in specific situations" }, - "retryWhile": { "index": 6, "kind": "expression", "displayName": "Retry While", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Sets a predicate to control whether redelivery should continue. Redelivery continues as long as the predicate evaluates to true." }, + "retryWhile": { "index": 6, "kind": "expression", "displayName": "Retry While", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Sets a predicate to control whether redelivery should continue. Redelivery continues as long as the predicate evaluates to true." }, "redeliveryPolicy": { "index": 7, "kind": "element", "displayName": "Redelivery Policy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.RedeliveryPolicyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures redelivery options such as maximum redeliveries, delays, and logging behavior." }, "redeliveryPolicyRef": { "index": 8, "kind": "attribute", "displayName": "Redelivery Policy 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 redelivery policy to lookup in the registry to be used." }, - "handled": { "index": 9, "kind": "expression", "displayName": "Handled", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When handled is set to true, the exception is suppressed and not sent back to the caller. The original route stops at the point of failure and only the steps in this onException block execute. The response returned to the caller is whatever this onException block produces. Use continued instead if you want to resume the original route from the point of failure." }, - "continued": { "index": 10, "kind": "expression", "displayName": "Continued", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When continued is set to true, the exception is handled and routing continues from the point of failure. Unlike handled, which stops the original route and only runs the onException block, continued resumes the original route after the onException steps complete. The exception is considered handled as well." }, + "handled": { "index": 9, "kind": "expression", "displayName": "Handled", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When handled is set to true, the exception is suppressed and not sent back to the caller. The original route stops at the point of failure and only the steps in this onException block execute. The response returned to the caller is whatever this onException block produces. Use continued instead if you want to resume the original route from the point of failure." }, + "continued": { "index": 10, "kind": "expression", "displayName": "Continued", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "When continued is set to true, the exception is handled and routing continues from the point of failure. Unlike handled, which stops the original route and only runs the onException block, continued resumes the original route after the onException steps complete. The exception is considered handled as well." }, "onRedeliveryRef": { "index": 11, "kind": "attribute", "displayName": "On Redelivery 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 is invoked before each redelivery attempt. Can be used to change the exchange before it is redelivered." }, "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 is invoked just after an exception occurred. Can be used to perform custom logging. Any exception thrown from this processor is ignored." }, "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": "If enabled, uses the original input message (body and headers) when the exchange is moved to the dead letter queue after all redelivery attempts have been exhausted. Cannot be used together with useOriginalBody." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onWhen.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onWhen.json index c3a724a63f5c3..65b02b1ca1d94 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onWhen.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/onWhen.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": "The id of this node" }, "note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The note for 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": "The description for this node" }, - "expression": { "index": 3, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate." } + "expression": { "index": 3, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to evaluate." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pollEnrich.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pollEnrich.json index 2e7d3b6974529..6f0f77d21a78a 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pollEnrich.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/pollEnrich.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to poll-enrich from." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the endpoint URI to poll-enrich from." }, "variableReceive": { "index": 5, "kind": "attribute", "displayName": "Variable Receive", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for user data and to easily control what data to use for sending and receiving." }, "aggregationStrategy": { "index": 6, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message." }, "aggregationStrategyMethodName": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/propertyExpression.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/propertyExpression.json index 53c30ae235a6d..9c3015a2b0427 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/propertyExpression.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/propertyExpression.json @@ -13,6 +13,6 @@ }, "properties": { "key": { "index": 0, "kind": "attribute", "displayName": "Key", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The property key." }, - "expression": { "index": 1, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The property value as an expression." } + "expression": { "index": 1, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The property value as an expression." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/recipientList.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/recipientList.json index 1415f07766d02..0397c4dc6ae30 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/recipientList.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/recipientList.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the list of recipient endpoint URIs. The result can be a comma-separated string, a Collection, or an Iterator of endpoint URIs." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the list of recipient endpoint URIs. The result can be a comma-separated string, a Collection, or an Iterator of endpoint URIs." }, "delimiter": { "index": 5, "kind": "attribute", "displayName": "Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "Delimiter used if the Expression returned multiple endpoints. Can be turned off using the value false." }, "aggregationStrategy": { "index": 6, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the AggregationStrategy to be used to assemble the replies from the recipients, into a single outgoing message." }, "aggregationStrategyMethodName": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy." }, 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 a001f1f6d674c..09bf29d6f0f7a 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 @@ -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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to use for re-ordering the messages, such as a header with a sequence number." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression to use for re-ordering the messages, such as a header with a sequence number." }, "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": "Resequencer configuration using either batch or stream mode. Defaults to batch mode." }, "outputs": { "index": 6, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "a2aSubTask", "aggregate", "bean", "cache", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "pausable", "pipeline", "policy", "poll", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "switch", "threads", "throttle", "throwException", "to", "toD", "tokenizer", "transacted", "transform", "transformDataType", "unmarshal", "validate", "wireTap" ], "deprecated": false, "autowired": false, "secret": false } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/routingSlip.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/routingSlip.json index 55e085f625415..2ca6a67784d4a 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/routingSlip.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/routingSlip.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the routing slip of endpoint URIs. The result is a delimited list of endpoint URIs that defines the series of processing steps." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to compute the routing slip of endpoint URIs. The result is a delimited list of endpoint URIs that defines the series of processing steps." }, "uriDelimiter": { "index": 5, "kind": "attribute", "displayName": "Uri Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "The delimiter used to separate endpoint URIs in the routing slip expression. Default is comma." }, "ignoreInvalidEndpoints": { "index": 6, "kind": "attribute", "displayName": "Ignore Invalid Endpoints", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then invalid endpoint URIs are ignored and logged instead of throwing an exception." }, "cacheSize": { "index": 7, "kind": "attribute", "displayName": "Cache Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the cache size for ProducerCache which caches producers for reuse. The default cache size is 1000. Set to -1 to turn off caching." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/script.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/script.json index ed1908279726f..498f16f9ae011 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/script.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/script.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to evaluate as a script. The script result does not change the message body (use transform instead if that is desired)." } + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to evaluate as a script. The script result does not change the message body (use transform instead if that is desired)." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setBody.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setBody.json index 59124a53de246..3c1320e00ab66 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setBody.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setBody.json @@ -17,6 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the new message body." } + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the new message body." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeader.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeader.json index a56e8690c8ddd..a71ab721b5bf8 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeader.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setHeader.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": "The description for 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": "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": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of message header to set a new value. The simple language can be used to define a dynamic evaluated header name. Otherwise a constant name will be used." }, - "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the header value." } + "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the header value." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setProperty.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setProperty.json index 6d2e41ecc3a2d..cffb8d5d7c8d4 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setProperty.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setProperty.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": "The description for 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": "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": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of exchange property to set a new value. The simple language can be used to define a dynamic evaluated property name. Otherwise a constant name will be used." }, - "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the exchange property value." } + "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the exchange property value." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariable.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariable.json index cffc0d6c94e68..79f57c636c2c5 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariable.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/setVariable.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": "The description for 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": "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": 4, "kind": "attribute", "displayName": "Name", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of variable to set a new value. The simple language can be used to define a dynamic evaluated variable name. Otherwise a constant name will be used." }, - "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the variable value." } + "expression": { "index": 5, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result is used as the variable value." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/sort.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/sort.json index 012f5e7f4582a..c9dcd74b87c0a 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/sort.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/sort.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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to use for sorting. The message body is split into a list, sorted using this expression as the comparator key, and then reassembled." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to use for sorting. The message body is split into a list, sorted using this expression as the comparator key, and then reassembled." }, "comparator": { "index": 5, "kind": "attribute", "displayName": "Comparator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Comparator", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a reference to lookup for the comparator to use for sorting." } } } 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 9ac5f17714ad1..c3bc403d60600 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 @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that returns the value to use for splitting. The result can be an Iterator, Iterable, Array, Collection, Map, NodeList, or a delimited String." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression that returns the value to use for splitting. The result can be an Iterator, Iterable, Array, Collection, Map, NodeList, or a delimited String." }, "delimiter": { "index": 5, "kind": "attribute", "displayName": "Delimiter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "Delimiter used in splitting messages. Can be turned off using the value false. To force not splitting then the delimiter can be set to single to use the value as a single list. The default value is comma." }, "aggregationStrategy": { "index": 6, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to the AggregationStrategy to assemble the replies from the split messages into a single outgoing message. By default Camel uses the original incoming message." }, "aggregationStrategyMethodName": { "index": 7, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The method name to use when using a POJO as the AggregationStrategy." }, diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/switch.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/switch.json index b0a91281d33dd..3fb9b28b75e69 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/switch.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/switch.json @@ -18,7 +18,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": "The note for 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": "The description for 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": "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." }, - "selector": { "index": 4, "kind": "expression", "displayName": "Selector", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression evaluated once per entry. Returns a scalar value to match against the literal cases." }, + "selector": { "index": 4, "kind": "expression", "displayName": "Selector", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Expression evaluated once per entry. Returns a scalar value to match against the literal cases." }, "case": { "index": 5, "kind": "element", "displayName": "Case", "group": "common", "required": false, "type": "array", "javaType": "java.util.List", "deprecated": false, "autowired": false, "secret": false, "description": "Literal cases. Duplicate values are rejected at startup, ignoring case." }, "otherwise": { "index": 6, "kind": "element", "displayName": "Otherwise", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.SwitchOtherwiseDefinition", "oneOf": [ "otherwise" ], "deprecated": false, "autowired": false, "secret": false, "description": "Fixed fallback URI for null or unmatched selector results. Without a fallback processing continues." } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/throttle.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/throttle.json index 027a30aeddbaf..e1c1079fa3c65 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/throttle.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/throttle.json @@ -17,9 +17,9 @@ "note": { "index": 1, "kind": "attribute", "displayName": "Note", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to set the maximum request count (for TotalRequests mode) or the maximum number of concurrent requests (for ConcurrentRequests mode)." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression to set the maximum request count (for TotalRequests mode) or the maximum number of concurrent requests (for ConcurrentRequests mode)." }, "mode": { "index": 5, "kind": "attribute", "displayName": "Mode", "group": "common", "required": false, "type": "enum", "javaType": "org.apache.camel.model.ThrottlingMode", "enum": [ "TotalRequests", "ConcurrentRequests" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TotalRequests", "description": "Sets the throttling mode. TotalRequests limits the total number of requests within a time period. ConcurrentRequests uses a leaky-bucket algorithm to limit the number of concurrent requests being processed at the same time." }, - "correlationExpression": { "index": 6, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use for throttle grouping. Exchanges with the same correlation key are throttled together." }, + "correlationExpression": { "index": 6, "kind": "expression", "displayName": "Correlation Expression", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.model.ExpressionSubElementDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The correlation expression to use for throttle grouping. Exchanges with the same correlation key are throttled together." }, "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 (ScheduledExecutorService) by the throttler." }, "asyncDelayed": { "index": 8, "kind": "attribute", "displayName": "Async Delayed", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables asynchronous delay which means the thread will not block while delaying." }, "callerRunsWhenRejected": { "index": 9, "kind": "attribute", "displayName": "Caller Runs When Rejected", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not the caller should run the task when it was rejected by the thread pool." }, 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 cf53b151e5faf..fa8649dc61fff 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 @@ -17,6 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result replaces the message body." } + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "The expression whose result replaces the message body." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validate.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validate.json index 19423bee06c99..aa65030c329a4 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validate.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validate.json @@ -17,7 +17,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": "The note for 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": "The description for 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": "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": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to validate against the current message. If the predicate returns false, a PredicateValidationException is thrown." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to validate against the current message. If the predicate returns false, a PredicateValidationException is thrown." }, "predicateExceptionFactory": { "index": 5, "kind": "attribute", "displayName": "Predicate Exception Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PredicateExceptionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a custom PredicateExceptionFactory for creating the exception when validation fails." } } } diff --git a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json index f595bbb22f1d2..8cbbb2bd06d34 100644 --- a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json +++ b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/validator/predicateValidator.json @@ -12,7 +12,7 @@ "output": false }, "properties": { - "expression": { "index": 0, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to use for validation." }, + "expression": { "index": 0, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "The predicate expression to use for validation." }, "type": { "index": 1, "kind": "attribute", "displayName": "Type", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The data type name to validate. If you specify 'xml:XYZ', the validator is picked up when message type is 'xml:XYZ'. If you specify just 'xml', the validator matches all xml message types." } } } 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 44b0e97480e41..473d7716e8e9f 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 @@ -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": "The note for 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": "The description for 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", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "wasm", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Expression used as the predicate to evaluate whether this when should trigger and route the message or not." }, + "expression": { "index": 4, "kind": "expression", "displayName": "Expression", "group": "common", "required": true, "type": "object", "javaType": "org.apache.camel.model.language.ExpressionDefinition", "oneOf": [ "constant", "datasonnet", "exchangeProperty", "groovy", "header", "hl7terser", "jactl", "java", "jq", "js", "jsonpath", "language", "method", "mvel", "ognl", "python", "python3", "quickjs", "ref", "simple", "spel", "tokenize", "variable", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "asPredicate": true, "description": "Expression used as the predicate to evaluate whether this when should trigger and route the message or not." }, "outputs": { "index": 5, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List>", "oneOf": [ "a2aSubTask", "aggregate", "bean", "cache", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "pausable", "pipeline", "policy", "poll", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "switch", "threads", "throttle", "throwException", "to", "toD", "tokenizer", "transacted", "transform", "transformDataType", "unmarshal", "validate", "wireTap" ], "deprecated": false, "autowired": false, "secret": false } } } 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 b03878ae40e5f..40cb662821e2b 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 @@ -231,7 +231,6 @@ validate validators value variable -wasm weightedLoadBalancer when wireTap diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/jaxb.index index ebc5ca88678a7..16655f41fb173 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/jaxb.index +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/language/jaxb.index @@ -23,7 +23,6 @@ SimpleExpression SpELExpression TokenizerExpression VariableExpression -WasmExpression XMLTokenizerExpression XPathExpression XQueryExpression diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java index 1cfd1d2eb9193..ae7bf95517a6e 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java @@ -28,7 +28,6 @@ import org.apache.camel.model.language.MethodCallExpression; import org.apache.camel.model.language.SimpleExpression; import org.apache.camel.model.language.VariableExpression; -import org.apache.camel.model.language.WasmExpression; import org.apache.camel.util.ObjectHelper; /** @@ -323,21 +322,4 @@ public static ValueBuilder regexReplaceAll(Expression content, String regex, Exp Expression newExp = ExpressionBuilder.regexReplaceAll(content, regex, replacement); return new ValueBuilder(newExp); } - - /** - * Call a wasm (web assembly) function. - */ - public static ValueBuilder wasm(String value) { - WasmExpression exp = new WasmExpression(value); - return new ValueBuilder(exp); - } - - /** - * Call a wasm (web assembly) function. - */ - public static ValueBuilder wasm(String value, Class resultType) { - WasmExpression exp = new WasmExpression(value); - exp.setResultType(resultType); - return new ValueBuilder(exp); - } } diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java index 43df80a21bc55..5046eb6f9b594 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java @@ -1047,29 +1047,6 @@ public T xquery(String text, Map namespaces) { return delegate.xquery(text, namespaces); } - /** - * Evaluates a Wasm expression - * - * @param functionName the name of the Wasm function to be evaluated - * @param module the Wasm module providing the expression function - * @return the builder to continue processing the DSL - */ - public T wasm(String functionName, String module) { - return delegate.wasm(functionName, module); - } - - /** - * Evaluates a Wasm expression - * - * @param functionName the name of the Wasm function to be evaluated - * @param module the Wasm module providing the expression function - * @param resultType the return type expected by the expression - * @return the builder to continue processing the DSL - */ - public T wasm(String functionName, String module, Class resultType) { - return delegate.wasm(functionName, module, resultType); - } - /** * Evaluates a given language name with the expression text * diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java index 9e95800abb37a..8b14501a11381 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java @@ -48,7 +48,6 @@ import org.apache.camel.model.language.SpELExpression; import org.apache.camel.model.language.TokenizerExpression; import org.apache.camel.model.language.VariableExpression; -import org.apache.camel.model.language.WasmExpression; import org.apache.camel.model.language.XMLTokenizerExpression; import org.apache.camel.model.language.XPathExpression; import org.apache.camel.model.language.XQueryExpression; @@ -1213,31 +1212,6 @@ public T xquery(String text, Map namespaces) { return result; } - /** - * Evaluates Wasm expression - * - * @param functionName the name of the Wasm function to be evaluated - * @param module the Wasm module providing the expression function - * @return the builder to continue processing the DSL - */ - public T wasm(String functionName, String module) { - return expression(new WasmExpression(functionName, module)); - } - - /** - * Evaluates Wasm expression - * - * @param functionName the name of the Wasm function to be evaluated - * @param module the Wasm module providing the expression function - * @param resultType the return type expected by the expression - * @return the builder to continue processing the DSL - */ - public T wasm(String functionName, String module, Class resultType) { - WasmExpression exp = new WasmExpression(functionName, module); - exp.setResultType(resultType); - return expression(exp); - } - /** * Evaluates a given language name with the expression text * diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/LanguageBuilderFactory.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/LanguageBuilderFactory.java index bf906a200c060..cf938320a5f0c 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/LanguageBuilderFactory.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/LanguageBuilderFactory.java @@ -39,7 +39,6 @@ import org.apache.camel.model.language.SpELExpression; import org.apache.camel.model.language.TokenizerExpression; import org.apache.camel.model.language.VariableExpression; -import org.apache.camel.model.language.WasmExpression; import org.apache.camel.model.language.XMLTokenizerExpression; import org.apache.camel.model.language.XPathExpression; import org.apache.camel.model.language.XQueryExpression; @@ -484,21 +483,4 @@ public XQueryExpression.Builder xquery(String expression) { builder.expression(expression); return builder; } - - /** - * Uses the Wasm language - */ - public WasmExpression.Builder wasm() { - return new WasmExpression.Builder(); - } - - /** - * Uses the Wasm language - */ - public WasmExpression.Builder wasm(String module, String expression) { - var builder = wasm(); - builder.module(module); - builder.expression(expression); - return builder; - } } diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/language/WasmExpression.java b/core/camel-core-model/src/main/java/org/apache/camel/model/language/WasmExpression.java deleted file mode 100644 index a77e470335175..0000000000000 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/language/WasmExpression.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.model.language; - -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 jakarta.xml.bind.annotation.XmlTransient; - -import org.apache.camel.spi.Metadata; - -/** - * Call a wasm (web assembly) function. - */ -@Metadata(firstVersion = "4.5.0", label = "language", title = "Wasm", description = "Call a wasm (web assembly) function") -@XmlRootElement(name = "wasm") -@XmlAccessorType(XmlAccessType.FIELD) -public class WasmExpression extends TypedExpressionDefinition { - - @XmlAttribute - @Metadata(required = true, - description = "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function.") - private String module; - - public WasmExpression() { - } - - protected WasmExpression(WasmExpression source) { - super(source); - this.module = source.module; - } - - public WasmExpression(String expression) { - super(expression); - } - - public WasmExpression(String expression, String module) { - super(expression); - this.module = module; - } - - private WasmExpression(Builder builder) { - super(builder); - this.module = builder.module; - } - - @Override - public WasmExpression copyDefinition() { - return new WasmExpression(this); - } - - public String getModule() { - return module; - } - - public void setModule(String module) { - this.module = module; - } - - @Override - public String getLanguage() { - return "wasm"; - } - - /** - * {@code Builder} is a specific builder for {@link WasmExpression}. - */ - @XmlTransient - public static class Builder extends AbstractBuilder { - - private String module; - - /** - * Set the module, the distributable, loadable, and executable unit of code in WebAssembly that provides the - * expression function. - */ - public Builder module(String module) { - this.module = module; - return this; - } - - @Override - public WasmExpression end() { - return new WasmExpression(this); - } - } -} diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java index 5c46dd68d29a2..0e995ae41a00f 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java @@ -39,7 +39,6 @@ import org.apache.camel.model.language.SingleInputTypedExpressionDefinition; import org.apache.camel.model.language.TokenizerExpression; import org.apache.camel.model.language.TypedExpressionDefinition; -import org.apache.camel.model.language.WasmExpression; import org.apache.camel.model.language.XMLTokenizerExpression; import org.apache.camel.model.language.XPathExpression; import org.apache.camel.model.language.XQueryExpression; @@ -125,8 +124,6 @@ private static ExpressionReifier coreReifier( return new XPathExpressionReifier(camelContext, definition); } else if (definition instanceof XQueryExpression) { return new XQueryExpressionReifier(camelContext, definition); - } else if (definition instanceof WasmExpression) { - return new WasmExpressionReifier(camelContext, definition); } else if (definition instanceof SingleInputTypedExpressionDefinition) { return new SingleInputTypedExpressionReifier<>(camelContext, definition); } else if (definition instanceof TypedExpressionDefinition) { diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/WasmExpressionReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/WasmExpressionReifier.java deleted file mode 100644 index 4f3093ac1379b..0000000000000 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/WasmExpressionReifier.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.reifier.language; - -import org.apache.camel.CamelContext; -import org.apache.camel.model.language.ExpressionDefinition; -import org.apache.camel.model.language.WasmExpression; - -public class WasmExpressionReifier extends TypedExpressionReifier { - - public WasmExpressionReifier(CamelContext camelContext, ExpressionDefinition definition) { - super(camelContext, definition); - } - - @Override - public boolean isResolveOptionalExternalScriptEnabled() { - // simple language will handle to resolve external scripts as they can be dynamic using simple language itself - return false; - } - - @Override - protected Object[] createProperties() { - Object[] properties = new Object[2]; - properties[0] = asResultType(); - properties[1] = parseString(definition.getModule()); - return properties; - } -} diff --git a/core/camel-java-io/src/generated/java/org/apache/camel/java/out/JavaDslModelWriter.java b/core/camel-java-io/src/generated/java/org/apache/camel/java/out/JavaDslModelWriter.java index 08726f2dd734a..1df84eea2a3be 100644 --- a/core/camel-java-io/src/generated/java/org/apache/camel/java/out/JavaDslModelWriter.java +++ b/core/camel-java-io/src/generated/java/org/apache/camel/java/out/JavaDslModelWriter.java @@ -1419,13 +1419,6 @@ public String writeVariableExpression(VariableExpression def) { doWriteVariableExpression(sb, def); return sb.toString(); } - public String writeWasmExpression(WasmExpression def) { - resetState(); - StringBuilder sb = new StringBuilder(); - beginStep(sb, "wasm", def); - doWriteWasmExpression(sb, def); - return sb.toString(); - } public String writeXMLTokenizerExpression(XMLTokenizerExpression def) { resetState(); StringBuilder sb = new StringBuilder(); @@ -3677,11 +3670,6 @@ protected void doWriteVariableExpression(StringBuilder sb, VariableExpression de doWriteExpressionDefinitionAttributes(sb, def); doWriteValue(sb, def.getExpression()); } - protected void doWriteWasmExpression(StringBuilder sb, WasmExpression def) { - doWriteTypedExpressionDefinitionAttributes(sb, def); - doWriteAttribute(sb, "module", def.getModule(), null); - doWriteValue(sb, def.getExpression()); - } protected void doWriteXMLTokenizerExpression(StringBuilder sb, XMLTokenizerExpression def) { doWriteNamespaceAwareExpressionAttributes(sb, def); doWriteAttribute(sb, "mode", def.getMode(), "i"); @@ -6581,11 +6569,6 @@ protected void doWriteExpressionDefinitionRef(StringBuilder sb, ExpressionDefini doWriteVariableExpression(sb, (VariableExpression) v); endStep(sb, "variable", v); } - case "WasmExpression" -> { - beginStep(sb, "wasm", v); - doWriteWasmExpression(sb, (WasmExpression) v); - endStep(sb, "wasm", v); - } case "XMLTokenizerExpression" -> { beginStep(sb, "xtokenize", v); doWriteXMLTokenizerExpression(sb, (XMLTokenizerExpression) v); diff --git a/core/camel-java-io/src/main/java/org/apache/camel/java/out/JavaDslModelWriterSupport.java b/core/camel-java-io/src/main/java/org/apache/camel/java/out/JavaDslModelWriterSupport.java index 1a83c60b86937..259ff3780570b 100644 --- a/core/camel-java-io/src/main/java/org/apache/camel/java/out/JavaDslModelWriterSupport.java +++ b/core/camel-java-io/src/main/java/org/apache/camel/java/out/JavaDslModelWriterSupport.java @@ -92,7 +92,6 @@ import org.apache.camel.model.language.TokenizerExpression; import org.apache.camel.model.language.TypedExpressionDefinition; import org.apache.camel.model.language.VariableExpression; -import org.apache.camel.model.language.WasmExpression; import org.apache.camel.model.language.XMLTokenizerExpression; import org.apache.camel.model.language.XPathExpression; import org.apache.camel.model.language.XQueryExpression; @@ -1557,9 +1556,6 @@ private String expressionBuilderMethod(ExpressionDefinition expr) { if (expr instanceof RefExpression) { return "ref"; } - if (expr instanceof WasmExpression) { - return "wasm"; - } String factoryMethod = languageFactoryMethod(expr); if (factoryMethod != null) { return factoryMethod; @@ -1648,8 +1644,6 @@ private String expressionBuilderOptions(ExpressionDefinition expr) { } else if (expr instanceof XMLTokenizerExpression xt) { appendNonDefaultOption(opts, "mode", xt.getMode(), "i"); appendOption(opts, "group", xt.getGroup()); - } else if (expr instanceof WasmExpression w) { - appendOption(opts, "module", w.getModule()); } return opts.toString(); diff --git a/core/camel-java-io/src/test/resources/org/apache/camel/java/in/replay-builder-methods.txt b/core/camel-java-io/src/test/resources/org/apache/camel/java/in/replay-builder-methods.txt index 9bea8183c16c9..fbea2e183975d 100644 --- a/core/camel-java-io/src/test/resources/org/apache/camel/java/in/replay-builder-methods.txt +++ b/core/camel-java-io/src/test/resources/org/apache/camel/java/in/replay-builder-methods.txt @@ -41,8 +41,6 @@ Builder.simple,java.lang.String,java.lang.Class,boolean,boolean Builder.systemProperty,java.lang.String Builder.systemProperty,java.lang.String,java.lang.String Builder.variable,java.lang.String -Builder.wasm,java.lang.String -Builder.wasm,java.lang.String,java.lang.Class BuilderSupport.body BuilderSupport.bodyAs,java.lang.Class BuilderSupport.constant,[Ljava.lang.Object; diff --git a/core/camel-main/src/generated/resources/org/apache/camel/main/languages.properties b/core/camel-main/src/generated/resources/org/apache/camel/main/languages.properties index 96c24835cd37d..1ecd8457f67cb 100644 --- a/core/camel-main/src/generated/resources/org/apache/camel/main/languages.properties +++ b/core/camel-main/src/generated/resources/org/apache/camel/main/languages.properties @@ -24,7 +24,6 @@ spel tokenize typesafe-ai variable -wasm xpath xquery xtokenize diff --git a/core/camel-util/src/main/java/org/apache/camel/util/ArtifactUtils.java b/core/camel-util/src/main/java/org/apache/camel/util/ArtifactUtils.java index a600dfc7a8f9b..da151cdbdc49d 100644 --- a/core/camel-util/src/main/java/org/apache/camel/util/ArtifactUtils.java +++ b/core/camel-util/src/main/java/org/apache/camel/util/ArtifactUtils.java @@ -479,7 +479,6 @@ public final class ArtifactUtils { Map.entry("tokenize", "camel-core-languages"), Map.entry("typesafe-ai", "camel-typesafe-ai"), Map.entry("variable", "camel-core-languages"), - Map.entry("wasm", "camel-wasm"), Map.entry("xpath", "camel-xpath"), Map.entry("xquery", "camel-saxon"), Map.entry("xtokenize", "camel-stax") 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 8beb70e5816d3..fe26844ade6b2 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 @@ -2395,12 +2395,6 @@ protected TokenizerExpression doParseTokenizerExpression() throws IOException, X protected VariableExpression doParseVariableExpression() throws IOException, XmlPullParserException { return doParse(new VariableExpression(), expressionDefinitionAttributeHandler(), noElementHandler(), expressionDefinitionValueHandler()); } - protected WasmExpression doParseWasmExpression() throws IOException, XmlPullParserException { - return doParse(new WasmExpression(), (def, key, val) -> switch (key) { - case "module": def.setModule(val); yield true; - default: yield typedExpressionDefinitionAttributeHandler().accept(def, key, val); - }, noElementHandler(), expressionDefinitionValueHandler()); - } protected XMLTokenizerExpression doParseXMLTokenizerExpression() throws IOException, XmlPullParserException { return doParse(new XMLTokenizerExpression(), (def, key, val) -> switch (key) { case "group": def.setGroup(val); yield true; @@ -2902,7 +2896,6 @@ protected ExpressionDefinition doParseExpressionDefinitionRef(String key) throws case "spel": return doParseSpELExpression(); case "tokenize": return doParseTokenizerExpression(); case "variable": return doParseVariableExpression(); - case "wasm": return doParseWasmExpression(); case "xtokenize": return doParseXMLTokenizerExpression(); case "xpath": return doParseXPathExpression(); case "xquery": return doParseXQueryExpression(); 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 554ece49b2586..824c2a5978089 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 @@ -645,9 +645,6 @@ public void writeTokenizerExpression(TokenizerExpression def) throws IOException public void writeVariableExpression(VariableExpression def) throws IOException { doWriteVariableExpression("variable", def); } - public void writeWasmExpression(WasmExpression def) throws IOException { - doWriteWasmExpression("wasm", def); - } public void writeXMLTokenizerExpression(XMLTokenizerExpression def) throws IOException { doWriteXMLTokenizerExpression("xtokenize", def); } @@ -3152,13 +3149,6 @@ protected void doWriteVariableExpression(String name, VariableExpression def) th doWriteValue(def.getExpression()); endElement(name); } - protected void doWriteWasmExpression(String name, WasmExpression def) throws IOException { - startElement(name); - doWriteTypedExpressionDefinitionAttributes(def); - doWriteAttribute("module", def.getModule(), null); - doWriteValue(def.getExpression()); - endElement(name); - } protected void doWriteXMLTokenizerExpression(String name, XMLTokenizerExpression def) throws IOException { startElement(name); doWriteNamespaceAwareExpressionAttributes(def); @@ -3973,7 +3963,6 @@ protected void doWriteExpressionDefinitionRef(String n, ExpressionDefinition v) case "SpELExpression" -> doWriteSpELExpression("spel", (SpELExpression) v); case "TokenizerExpression" -> doWriteTokenizerExpression("tokenize", (TokenizerExpression) v); case "VariableExpression" -> doWriteVariableExpression("variable", (VariableExpression) v); - case "WasmExpression" -> doWriteWasmExpression("wasm", (WasmExpression) v); case "XMLTokenizerExpression" -> doWriteXMLTokenizerExpression("xtokenize", (XMLTokenizerExpression) v); case "XPathExpression" -> doWriteXPathExpression("xpath", (XPathExpression) v); case "XQueryExpression" -> doWriteXQueryExpression("xquery", (XQueryExpression) v); diff --git a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/YamlModelWriter.java b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/YamlModelWriter.java index 85612baebdc6a..7a1096e27a801 100644 --- a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/YamlModelWriter.java +++ b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/YamlModelWriter.java @@ -637,9 +637,6 @@ public JsonObject writeTokenizerExpression(TokenizerExpression def) { public JsonObject writeVariableExpression(VariableExpression def) { return wrapNode("variable", doWriteVariableExpression(def)); } - public JsonObject writeWasmExpression(WasmExpression def) { - return wrapNode("wasm", doWriteWasmExpression(def)); - } public JsonObject writeXMLTokenizerExpression(XMLTokenizerExpression def) { return wrapNode("xtokenize", doWriteXMLTokenizerExpression(def)); } @@ -3153,13 +3150,6 @@ protected JsonObject doWriteVariableExpression(VariableExpression def) { doWriteValue(jo, def.getExpression()); return jo; } - protected JsonObject doWriteWasmExpression(WasmExpression def) { - JsonObject jo = new JsonObject(); - doWriteTypedExpressionDefinitionAttributes(jo, def); - doWriteAttribute(jo, "module", def.getModule(), null); - doWriteValue(jo, def.getExpression()); - return jo; - } protected JsonObject doWriteXMLTokenizerExpression(XMLTokenizerExpression def) { JsonObject jo = new JsonObject(); doWriteNamespaceAwareExpressionAttributes(jo, def); @@ -4006,7 +3996,6 @@ protected JsonObject doWriteExpressionDefinitionRef(ExpressionDefinition v) { case "SpELExpression" -> wrapNode("spel", doWriteSpELExpression((SpELExpression) v)); case "TokenizerExpression" -> wrapNode("tokenize", doWriteTokenizerExpression((TokenizerExpression) v)); case "VariableExpression" -> wrapNode("variable", doWriteVariableExpression((VariableExpression) v)); - case "WasmExpression" -> wrapNode("wasm", doWriteWasmExpression((WasmExpression) v)); case "XMLTokenizerExpression" -> wrapNode("xtokenize", doWriteXMLTokenizerExpression((XMLTokenizerExpression) v)); case "XPathExpression" -> wrapNode("xpath", doWriteXPathExpression((XPathExpression) v)); case "XQueryExpression" -> wrapNode("xquery", doWriteXQueryExpression((XQueryExpression) v)); diff --git a/docs/components/modules/languages/examples/json/wasm.json b/docs/components/modules/languages/examples/json/wasm.json deleted file mode 120000 index 49ec420960e5e..0000000000000 --- a/docs/components/modules/languages/examples/json/wasm.json +++ /dev/null @@ -1 +0,0 @@ -../../../../../../components/camel-wasm/src/generated/resources/META-INF/org/apache/camel/language/wasm/wasm.json \ No newline at end of file diff --git a/docs/components/modules/languages/nav.adoc b/docs/components/modules/languages/nav.adoc index d82a164af5625..923ffe7383326 100644 --- a/docs/components/modules/languages/nav.adoc +++ b/docs/components/modules/languages/nav.adoc @@ -32,7 +32,6 @@ ** xref:tokenize-language.adoc[Tokenize] ** xref:typesafe-ai-language.adoc[TypeSafe AI] ** xref:variable-language.adoc[Variable] -** xref:wasm-language.adoc[Wasm] ** xref:xtokenize-language.adoc[XML Tokenize] ** xref:xpath-language.adoc[XPath] ** xref:xquery-language.adoc[XQuery] diff --git a/docs/components/modules/languages/pages/wasm-language.adoc b/docs/components/modules/languages/pages/wasm-language.adoc deleted file mode 120000 index ef311001e30b5..0000000000000 --- a/docs/components/modules/languages/pages/wasm-language.adoc +++ /dev/null @@ -1 +0,0 @@ -../../../../../components/camel-wasm/src/main/docs/wasm-language.adoc \ No newline at end of file diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc index b4812a11b4e91..aea05f938b29b 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc @@ -547,11 +547,15 @@ body, the exit code and standard error are in `CamelWasmExitCode` and `CamelWasm custom `alloc`/`dealloc` and JSON message ABI. The URI path is now the module (`wasm:classpath:upper.wasm`); the function name and the `module` option are removed, and a header reaches the module only when listed in `environmentHeaders`. To migrate, turn the function into a program that reads standard input and writes standard -output, built for `wasm32-wasip1` (Rust) or with `GOOS=wasip1 GOARCH=wasm` (Go). The `wasm` language is unchanged. +output, built for `wasm32-wasip1` (Rust) or with `GOOS=wasip1 GOARCH=wasm` (Go). The endpoint runs every exchange on a new instance of the module, so a module can no longer keep state from one -message to the next. The 4.23 note that a failed call discards the Wasm instance therefore now only applies to the -`wasm` expression. +message to the next. The 4.23 note that a failed call discards the Wasm instance no longer applies. + +The `wasm` language is removed: the `wasm` expression of the Java, XML and YAML DSLs, `WasmExpression` of the model, +and `WasmLanguage`, `WasmFunction`, `WasmSupport`, `Wasm.FN_ALLOC` and `Wasm.FN_DEALLOC` of `camel-wasm`. Call the +module with the `wasm` endpoint as a route step instead, for example `.to("wasm:classpath:transform.wasm")`, built as a +WASI command module as described above, and use its output (the new message body) in the next steps. The following API of `camel-wasm` is removed or changed with the old ABI: diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java index 85d6a1c5b689c..f722f9ef34a2a 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java @@ -11130,10 +11130,10 @@ public static LangChain4jWebSearchEndpointBuilderFactory.LangChain4jWebSearchEnd * * Path parameter: languageName (required) * Sets the name of the language to use - * There are 27 enums and the value can be one of: bean, constant, + * There are 26 enums and the value can be one of: bean, constant, * datasonnet, exchangeProperty, file, groovy, header, hl7terser, java, * joor, jq, js, jsonpath, mvel, ognl, python, python3, quickjs, ref, - * simple, spel, tokenize, variable, wasm, xpath, xquery, xtokenize + * simple, spel, tokenize, variable, xpath, xquery, xtokenize * * Path parameter: resourceUri * Path to the resource, or a reference to lookup a bean in the Registry to @@ -11159,10 +11159,10 @@ public static LanguageEndpointBuilderFactory.LanguageEndpointBuilder language(St * * Path parameter: languageName (required) * Sets the name of the language to use - * There are 27 enums and the value can be one of: bean, constant, + * There are 26 enums and the value can be one of: bean, constant, * datasonnet, exchangeProperty, file, groovy, header, hl7terser, java, * joor, jq, js, jsonpath, mvel, ognl, python, python3, quickjs, ref, - * simple, spel, tokenize, variable, wasm, xpath, xquery, xtokenize + * simple, spel, tokenize, variable, xpath, xquery, xtokenize * * Path parameter: resourceUri * Path to the resource, or a reference to lookup a bean in the Registry to diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LanguageEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LanguageEndpointBuilderFactory.java index 453791461a2a0..e7e63d89e8cfe 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LanguageEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LanguageEndpointBuilderFactory.java @@ -362,10 +362,10 @@ default LanguageHeaderNameBuilder language() { * * Path parameter: languageName (required) * Sets the name of the language to use - * There are 27 enums and the value can be one of: bean, constant, + * There are 26 enums and the value can be one of: bean, constant, * datasonnet, exchangeProperty, file, groovy, header, hl7terser, java, * joor, jq, js, jsonpath, mvel, ognl, python, python3, quickjs, ref, - * simple, spel, tokenize, variable, wasm, xpath, xquery, xtokenize + * simple, spel, tokenize, variable, xpath, xquery, xtokenize * * Path parameter: resourceUri * Path to the resource, or a reference to lookup a bean in the Registry @@ -391,10 +391,10 @@ default LanguageEndpointBuilder language(String path) { * * Path parameter: languageName (required) * Sets the name of the language to use - * There are 27 enums and the value can be one of: bean, constant, + * There are 26 enums and the value can be one of: bean, constant, * datasonnet, exchangeProperty, file, groovy, header, hl7terser, java, * joor, jq, js, jsonpath, mvel, ognl, python, python3, quickjs, ref, - * simple, spel, tokenize, variable, wasm, xpath, xquery, xtokenize + * simple, spel, tokenize, variable, xpath, xquery, xtokenize * * Path parameter: resourceUri * Path to the resource, or a reference to lookup a bean in the Registry diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/BeanRefChecks.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/BeanRefChecks.java index d92d0ce65886f..8fc7bdd66067c 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/BeanRefChecks.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/BeanRefChecks.java @@ -614,7 +614,7 @@ public static List validateResourceRefs(String content, Path directory) /** The languages whose text is a script that returns a value (a returned 'resource:...' string stays text). */ private static final Set SCRIPT_LANGUAGES = Set.of("groovy", "jq", "js", "javascript", "python", "mvel", - "ognl", "java", "spel", "jactl", "quickjs", "datasonnet", "wasm"); + "ognl", "java", "spel", "jactl", "quickjs", "datasonnet"); /** A quoted resource:... literal inside a script: the script returns that text. */ private static final Pattern QUOTED_RESOURCE_LITERAL = Pattern.compile("['\"](resource:(?:classpath:|file:|ref:|bean:)?[^'\"\\\\\\s]+)['\"]"); diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteRefactorings.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteRefactorings.java index 10be7500e3e18..c4da017c54757 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteRefactorings.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteRefactorings.java @@ -50,7 +50,7 @@ record Value(int start, int end, String text) { "routes", "route", "camel", "beans", "from", "when", "otherwise", "doCatch", "doFinally", "onFallback", "expression", "simple", "constant", "header", "exchangeProperty", "variable", "jsonpath", "xpath", "groovy", "language", "method", "tokenize", "jq", "ref", "datasonnet", "spel", "mvel", "ognl", "js", - "python", "java", "wasm", "xquery", "xtokenize", "hl7terser", "jactl", "csimple", "joor"); + "python", "java", "xquery", "xtokenize", "hl7terser", "jactl", "csimple", "joor"); private RouteRefactorings() { } diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ExpressionDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ExpressionDeserializers.java index 07f8d5c0579db..70eac89be8036 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ExpressionDeserializers.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ExpressionDeserializers.java @@ -115,9 +115,6 @@ public static ExpressionDefinition constructExpressionType(String id, Node node) case "variable": { return asType(node, org.apache.camel.model.language.VariableExpression.class); } - case "wasm": { - return asType(node, org.apache.camel.model.language.WasmExpression.class); - } case "xpath": { return asType(node, org.apache.camel.model.language.XPathExpression.class); } @@ -167,7 +164,6 @@ public static ExpressionDefinition constructExpressionType(String id, Node node) @YamlProperty(name = "spel", type = "object:org.apache.camel.model.language.SpELExpression", oneOf = "expression"), @YamlProperty(name = "tokenize", type = "object:org.apache.camel.model.language.TokenizerExpression", oneOf = "expression"), @YamlProperty(name = "variable", type = "object:org.apache.camel.model.language.VariableExpression", oneOf = "expression"), - @YamlProperty(name = "wasm", type = "object:org.apache.camel.model.language.WasmExpression", oneOf = "expression"), @YamlProperty(name = "xpath", type = "object:org.apache.camel.model.language.XPathExpression", oneOf = "expression"), @YamlProperty(name = "xquery", type = "object:org.apache.camel.model.language.XQueryExpression", oneOf = "expression"), @YamlProperty(name = "xtokenize", type = "object:org.apache.camel.model.language.XMLTokenizerExpression", oneOf = "expression") @@ -207,7 +203,6 @@ public Object construct(Node node) { @YamlProperty(name = "spel", type = "object:org.apache.camel.model.language.SpELExpression", oneOf = "expression"), @YamlProperty(name = "tokenize", type = "object:org.apache.camel.model.language.TokenizerExpression", oneOf = "expression"), @YamlProperty(name = "variable", type = "object:org.apache.camel.model.language.VariableExpression", oneOf = "expression"), - @YamlProperty(name = "wasm", type = "object:org.apache.camel.model.language.WasmExpression", oneOf = "expression"), @YamlProperty(name = "xpath", type = "object:org.apache.camel.model.language.XPathExpression", oneOf = "expression"), @YamlProperty(name = "xquery", type = "object:org.apache.camel.model.language.XQueryExpression", oneOf = "expression"), @YamlProperty(name = "xtokenize", type = "object:org.apache.camel.model.language.XMLTokenizerExpression", oneOf = "expression") 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 cc102eea2e2e0..1aed45545458b 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 @@ -204,7 +204,6 @@ import org.apache.camel.model.language.SpELExpression; import org.apache.camel.model.language.TokenizerExpression; import org.apache.camel.model.language.VariableExpression; -import org.apache.camel.model.language.WasmExpression; import org.apache.camel.model.language.XMLTokenizerExpression; import org.apache.camel.model.language.XPathExpression; import org.apache.camel.model.language.XQueryExpression; @@ -20960,91 +20959,6 @@ protected boolean setProperty(VariableExpression target, String propertyKey, } } - @YamlType( - nodes = "wasm", - inline = true, - types = org.apache.camel.model.language.WasmExpression.class, - order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, - displayName = "Wasm", - description = "Call a wasm (web assembly) function", - deprecated = false, - properties = { - @YamlProperty(name = "expression", type = "string", required = true, description = "The expression value in your chosen language syntax.", displayName = "Expression"), - @YamlProperty(name = "id", type = "string", description = "The id of this node.", displayName = "Id"), - @YamlProperty(name = "module", type = "string", required = true, description = "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function.", displayName = "Module"), - @YamlProperty(name = "resolveResource", type = "boolean", defaultValue = "false", description = "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate.", displayName = "Resolve Resource"), - @YamlProperty(name = "resultType", type = "string", description = "The class of the result type (type from output).", displayName = "Result Type"), - @YamlProperty(name = "trim", type = "boolean", defaultValue = "true", description = "Whether to trim the source code to remove leading and trailing whitespaces and line breaks.", displayName = "Trim") - } - ) - public static class WasmExpressionDeserializer extends YamlDeserializerBase { - public WasmExpressionDeserializer() { - super(WasmExpression.class); - } - - @Override - protected WasmExpression newInstance() { - return new WasmExpression(); - } - - @Override - protected WasmExpression newInstance(String value) { - return new WasmExpression(value); - } - - @Override - protected boolean setProperty(WasmExpression target, String propertyKey, - String propertyName, Node node) { - propertyKey = org.apache.camel.util.StringHelper.dashToCamelCase(propertyKey); - switch(propertyKey) { - case "expression": { - String val = asText(node); - target.setExpression(val); - break; - } - case "id": { - String val = asText(node); - target.setId(val); - break; - } - case "module": { - String val = asText(node); - target.setModule(val); - break; - } - case "resolveResource": { - String val = asText(node); - target.setResolveResource(val); - break; - } - case "resultType": { - String val = asText(node); - target.setResultTypeName(val); - break; - } - case "trim": { - String val = asText(node); - target.setTrim(val); - break; - } - default: { - ExpressionDefinition ed = target.getExpressionType(); - if (ed != null) { - throw new org.apache.camel.dsl.yaml.common.exception.DuplicateFieldException(node, propertyName, "as an expression"); - } - ed = ExpressionDeserializers.constructExpressionType(propertyKey, node); - if (ed != null) { - target.setExpressionType(ed); - warnCompactNotation(node); - } else { - return false; - } - } - } - return true; - } - } - @YamlType( nodes = "weightedLoadBalancer", types = org.apache.camel.model.loadbalancer.WeightedLoadBalancerDefinition.class, 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 853a854e8332f..f9dc87a03a8c0 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 @@ -468,8 +468,6 @@ public ConstructNode resolve(String id) { case "org.apache.camel.model.ValueDefinition": return new ModelDeserializers.ValueDefinitionDeserializer(); case "variable": return new ModelDeserializers.VariableExpressionDeserializer(); case "org.apache.camel.model.language.VariableExpression": return new ModelDeserializers.VariableExpressionDeserializer(); - case "wasm": return new ModelDeserializers.WasmExpressionDeserializer(); - case "org.apache.camel.model.language.WasmExpression": return new ModelDeserializers.WasmExpressionDeserializer(); case "weightedLoadBalancer": return new ModelDeserializers.WeightedLoadBalancerDefinitionDeserializer(); case "org.apache.camel.model.loadbalancer.WeightedLoadBalancerDefinition": return new ModelDeserializers.WeightedLoadBalancerDefinitionDeserializer(); case "when": return new ModelDeserializers.WhenDefinitionDeserializer(); diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java index 55829a6d6a896..6e94906e8dc3d 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java @@ -841,7 +841,7 @@ String languageForm(String language) { "delay", "delay: {expression: {constant: {expression: \"1000\"}}}"); private static final Set SCRIPT_LANGUAGES = Set.of("groovy", "js", "python", "python3", "mvel", "ognl", - "jq", "jsonpath", "xpath", "xquery", "spel", "jactl", "java", "joor", "quickjs", "wasm", "datasonnet"); + "jq", "jsonpath", "xpath", "xquery", "spel", "jactl", "java", "joor", "quickjs", "datasonnet"); /** * ${body.value} < 1 written as a groovy expression: Simple syntax inside another language, which groovy reads as a diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json index ae62903636aad..d00487c75d8ab 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json @@ -1436,9 +1436,6 @@ "variable" : { "$ref" : "#/items/definitions/org.apache.camel.model.language.VariableExpression" }, - "wasm" : { - "$ref" : "#/items/definitions/org.apache.camel.model.language.WasmExpression" - }, "xpath" : { "$ref" : "#/items/definitions/org.apache.camel.model.language.XPathExpression" }, @@ -9887,9 +9884,6 @@ "variable" : { "$ref" : "#/items/definitions/org.apache.camel.model.language.VariableExpression" }, - "wasm" : { - "$ref" : "#/items/definitions/org.apache.camel.model.language.WasmExpression" - }, "xpath" : { "$ref" : "#/items/definitions/org.apache.camel.model.language.XPathExpression" }, @@ -10764,47 +10758,6 @@ }, "required" : [ "expression" ] }, - "org.apache.camel.model.language.WasmExpression" : { - "title" : "Wasm", - "description" : "Call a wasm (web assembly) function", - "type" : "object", - "additionalProperties" : false, - "properties" : { - "expression" : { - "type" : "string", - "title" : "Expression", - "description" : "The expression value in your chosen language syntax." - }, - "id" : { - "type" : "string", - "title" : "Id", - "description" : "The id of this node." - }, - "module" : { - "type" : "string", - "title" : "Module", - "description" : "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function." - }, - "resolveResource" : { - "type" : "boolean", - "title" : "Resolve Resource", - "description" : "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate.", - "default" : false - }, - "resultType" : { - "type" : "string", - "title" : "Result Type", - "description" : "The class of the result type (type from output)." - }, - "trim" : { - "type" : "boolean", - "title" : "Trim", - "description" : "Whether to trim the source code to remove leading and trailing whitespaces and line breaks.", - "default" : true - } - }, - "required" : [ "expression", "module" ] - }, "org.apache.camel.model.language.XMLTokenizerExpression" : { "title" : "XML Tokenize", "description" : "Tokenize XML payloads", diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json index 60af524015b79..52a9a833e1cd4 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json @@ -761,13 +761,6 @@ "title" : "Variable", "description" : "Gets a variable", "label" : "language,core" - }, { - "name" : "wasm", - "type" : "object", - "ref" : "wasm", - "title" : "Wasm", - "description" : "Call a wasm (web assembly) function", - "label" : "language" }, { "name" : "xpath", "type" : "object", @@ -2730,10 +2723,6 @@ "name" : "variable", "type" : "object", "ref" : "variable" - }, { - "name" : "wasm", - "type" : "object", - "ref" : "wasm" }, { "name" : "xpath", "type" : "object", @@ -16326,72 +16315,6 @@ "label" : "advanced" } ] }, - "wasm" : { - "title" : "Wasm", - "description" : "Call a wasm (web assembly) function", - "label" : "language", - "children" : [ { - "name" : "id", - "type" : "string", - "description" : "The id of this node.", - "title" : "Id", - "displayName" : "Id", - "kind" : "attribute", - "index" : 0, - "group" : "common" - }, { - "name" : "expression", - "type" : "string", - "description" : "The expression value in your chosen language syntax.", - "title" : "Expression", - "required" : true, - "displayName" : "Expression", - "kind" : "value", - "index" : 1, - "group" : "common" - }, { - "name" : "module", - "type" : "string", - "description" : "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function.", - "title" : "Module", - "required" : true, - "displayName" : "Module", - "kind" : "attribute", - "index" : 2, - "group" : "common" - }, { - "name" : "resultType", - "type" : "string", - "description" : "The class of the result type (type from output).", - "title" : "Result Type", - "displayName" : "Result Type", - "kind" : "attribute", - "index" : 3, - "group" : "common" - }, { - "name" : "trim", - "type" : "boolean", - "description" : "Whether to trim the source code to remove leading and trailing whitespaces and line breaks.", - "title" : "Trim", - "default" : "true", - "displayName" : "Trim", - "kind" : "attribute", - "index" : 4, - "group" : "advanced", - "label" : "advanced" - }, { - "name" : "resolveResource", - "type" : "boolean", - "description" : "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate.", - "title" : "Resolve Resource", - "default" : "false", - "displayName" : "Resolve Resource", - "kind" : "attribute", - "index" : 5, - "group" : "advanced", - "label" : "advanced" - } ] - }, "xMLTokenizer" : { "title" : "XML Tokenize", "description" : "Tokenize XML payloads", 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 fb5f7c8b3b381..76323a11e6f17 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 @@ -838,7 +838,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -1341,7 +1340,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -1435,7 +1433,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -1572,7 +1569,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -1725,8 +1721,6 @@ "required" : [ "tokenize" ] }, { "required" : [ "variable" ] - }, { - "required" : [ "wasm" ] }, { "required" : [ "xpath" ] }, { @@ -1911,14 +1905,6 @@ "$ref" : "#/items/definitions/org.apache.camel.model.language.VariableExpression" } } - }, { - "type" : "object", - "required" : [ "wasm" ], - "properties" : { - "wasm" : { - "$ref" : "#/items/definitions/org.apache.camel.model.language.WasmExpression" - } - } }, { "type" : "object", "required" : [ "xpath" ], @@ -1969,7 +1955,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { } @@ -2128,7 +2113,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -2336,7 +2320,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -2837,7 +2820,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -3712,7 +3694,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -4176,7 +4157,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -4286,7 +4266,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -4450,7 +4429,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -4915,7 +4893,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -5599,7 +5576,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -5793,7 +5769,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -5865,7 +5840,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -5982,7 +5956,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -6097,7 +6070,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -6175,7 +6147,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -6278,8 +6249,6 @@ "required" : [ "tokenize" ] }, { "required" : [ "variable" ] - }, { - "required" : [ "wasm" ] }, { "required" : [ "xpath" ] }, { @@ -6350,7 +6319,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -6533,7 +6501,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -7013,7 +6980,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -7453,7 +7419,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -8076,7 +8041,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -8171,7 +8135,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }, @@ -12225,14 +12188,6 @@ "$ref" : "#/items/definitions/org.apache.camel.model.language.VariableExpression" } } - }, { - "type" : "object", - "required" : [ "wasm" ], - "properties" : { - "wasm" : { - "$ref" : "#/items/definitions/org.apache.camel.model.language.WasmExpression" - } - } }, { "type" : "object", "required" : [ "xpath" ], @@ -12283,7 +12238,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { } @@ -13228,51 +13182,6 @@ } ], "required" : [ "expression" ] }, - "org.apache.camel.model.language.WasmExpression" : { - "title" : "Wasm", - "description" : "Call a wasm (web assembly) function", - "oneOf" : [ { - "type" : "string" - }, { - "type" : "object", - "additionalProperties" : false, - "properties" : { - "expression" : { - "type" : "string", - "title" : "Expression", - "description" : "The expression value in your chosen language syntax." - }, - "id" : { - "type" : "string", - "title" : "Id", - "description" : "The id of this node." - }, - "module" : { - "type" : "string", - "title" : "Module", - "description" : "Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the expression function." - }, - "resolveResource" : { - "type" : "boolean", - "title" : "Resolve Resource", - "description" : "Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate.", - "default" : false - }, - "resultType" : { - "type" : "string", - "title" : "Result Type", - "description" : "The class of the result type (type from output)." - }, - "trim" : { - "type" : "boolean", - "title" : "Trim", - "description" : "Whether to trim the source code to remove leading and trailing whitespaces and line breaks.", - "default" : true - } - } - } ], - "required" : [ "expression", "module" ] - }, "org.apache.camel.model.language.XMLTokenizerExpression" : { "title" : "XML Tokenize", "description" : "Tokenize XML payloads", @@ -16919,14 +16828,6 @@ "$ref" : "#/items/definitions/org.apache.camel.model.language.VariableExpression" } } - }, { - "type" : "object", - "required" : [ "wasm" ], - "properties" : { - "wasm" : { - "$ref" : "#/items/definitions/org.apache.camel.model.language.WasmExpression" - } - } }, { "type" : "object", "required" : [ "xpath" ], @@ -16977,7 +16878,6 @@ "spel" : { }, "tokenize" : { }, "variable" : { }, - "wasm" : { }, "xpath" : { }, "xquery" : { }, "xtokenize" : { }