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

davsclaus pushed a commit to branch fix/CAMEL-24479
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ed9f28fabd8508f9ee30143a9f7d09f4569f20d7
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Aug 27 19:52:51 2026 +0200

    CAMEL-24479: camel-yaml-dsl - Restore additionalProperties:false for 
explicit expression/inline-hosted definitions
    
    The classic (non-canonical) YAML DSL schema strips 
additionalProperties:false
    from any definition referenced via the "__extends" inline shorthand 
mechanism
    (e.g. org.apache.camel.model.language.ExpressionDefinition, inlined onto
    filter/resequence/onException/... so that "filter: { simple: '...' }" works
    without an explicit "expression:" wrapper). That's needed for the 
closed-schema
    extension trick described at
    
https://json-schema.org/understanding-json-schema/reference/object.html#extending-closed-schemas,
    since a $ref'd schema merged directly onto a closed host must itself be 
open.
    
    But this removal was applied to the single, shared definition, so the SAME
    type also lost its closedness when referenced independently via its own 
named
    property (e.g. the explicit "expression: { groovy: {...} }" form used by 
many
    EIPs). That silently let unknown properties and duplicate/conflicting
    language or data format choices slip through validation, as long as at least
    one alternative structurally matched - "expression: { groovy: {...}, 
simple: {},
    hello: world }" reported "Validation success" instead of flagging "hello" 
and
    the groovy/simple conflict.
    
    Clone the definition instead of mutating it in place: only the clone loses
    additionalProperties and is substituted into the bare $ref oneOf/anyOf
    branches used for inlining, while the original definition - referenced by
    every explicit named property - stays closed.
    
    Co-Authored-By: Claude Sonnet 5 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../maven/dsl/yaml/GenerateYamlSchemaMojo.java     |  40 ++-
 .../dsl/yaml/validator/YamlValidatorTest.java      |  22 ++
 .../src/test/resources/CAMEL-24479.yaml            |  49 +++
 .../test/resources/inline-expression-object.yaml   |  26 ++
 .../generated/resources/schema/camelYamlDsl.json   | 347 +++++++++++++++++++--
 5 files changed, 451 insertions(+), 33 deletions(-)

diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
index 2fd42f59817f..e00456472f88 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
@@ -610,11 +610,25 @@ public class GenerateYamlSchemaMojo extends 
GenerateYamlSupportMojo {
      * @param inlineDefinitions    The name of the definitions that has inline 
option enabled
      */
     private void postProcessInheritance(Set<String> inheritedDefinitions, 
Set<String> inlineDefinitions) {
-        // additionalProperties=false prevents inheritance with 
allOf/anyOf/oneOf
-        // Remove it to be true by default
+        // additionalProperties=false prevents inheritance with 
allOf/anyOf/oneOf, so it needs to be removed
+        // to allow a type such as ExpressionDefinition to be inlined directly 
onto a host's own closed schema
+        // (e.g. filter: { simple: "...", steps: [...] } merges 
ExpressionDefinition's properties onto
+        // FilterDefinition). But the very same type is also used standalone, 
referenced by its own named
+        // property (e.g. the explicit filter: { expression: { simple: "..." } 
} form) - if additionalProperties
+        // is removed from the shared definition itself, that explicit, 
non-inlined usage loses its closedness
+        // too and silently accepts unknown/duplicate properties (CAMEL-24479).
+        //
+        // Clone the definition instead of mutating it in place: the open 
clone is only substituted into the
+        // bare $ref oneOf/anyOf branches used for inlining, while the 
original definition - referenced by
+        // every named property - stays closed.
+        Map<String, String> inlineClones = new HashMap<>();
         for (String inherited : inheritedDefinitions) {
-            ObjectNode node = definitions.withObject("/" + inherited);
-            node.remove("additionalProperties");
+            ObjectNode original = definitions.withObject("/" + inherited);
+            String cloneName = inherited + "$Inline";
+            ObjectNode clone = original.deepCopy();
+            clone.remove("additionalProperties");
+            definitions.set(cloneName, clone);
+            inlineClones.put(inherited, cloneName);
         }
 
         // Redeclare the inherited properties
@@ -630,9 +644,9 @@ public class GenerateYamlSchemaMojo extends 
GenerateYamlSupportMojo {
             if (temp.has("anyOf")) {
                 final var definition = temp;
                 StreamSupport.stream(temp.withArray("anyOf").spliterator(), 
false)
-                        .forEach(group -> postProcessComposition(name, 
definition, group, inheritedDefinitions));
+                        .forEach(group -> postProcessComposition(name, 
definition, group, inheritedDefinitions, inlineClones));
             } else {
-                postProcessComposition(name, temp, temp, inheritedDefinitions);
+                postProcessComposition(name, temp, temp, inheritedDefinitions, 
inlineClones);
             }
         });
     }
@@ -650,7 +664,8 @@ public class GenerateYamlSchemaMojo extends 
GenerateYamlSupportMojo {
     }
 
     private void postProcessComposition(
-            String name, JsonNode definition, JsonNode inherited, Set<String> 
inheritedDefinitions) {
+            String name, JsonNode definition, JsonNode inherited, Set<String> 
inheritedDefinitions,
+            Map<String, String> inlineClones) {
         ArrayNode composition = extractComposition(inherited);
         if (composition == null) {
             return;
@@ -674,7 +689,7 @@ public class GenerateYamlSchemaMojo extends 
GenerateYamlSupportMojo {
                         .filter(prop -> 
!definition.withObject("/properties").has(prop.getKey()))
                         .forEach(prop -> 
definition.withObject("/properties").putObject(prop.getKey()));
             }
-            postProcessComposition(name, definition, compositionEntry, 
inheritedDefinitions);
+            postProcessComposition(name, definition, compositionEntry, 
inheritedDefinitions, inlineClones);
 
             if (!compositionEntry.has("$ref")) {
                 continue;
@@ -683,8 +698,13 @@ public class GenerateYamlSchemaMojo extends 
GenerateYamlSupportMojo {
             if (!inheritedDefinitions.contains(parentName)) {
                 continue;
             }
-            JsonNode parent = definitions.withObject("/" + parentName);
-            postProcessComposition(parentName, definition, parent, 
inheritedDefinitions);
+            // This is a bare $ref composition branch (no wrapping 
"properties"), i.e. the type is being
+            // inlined directly onto the host's own schema - repoint it to the 
open clone so the host's
+            // sibling properties aren't rejected, without touching the 
original (still closed) definition.
+            String cloneName = inlineClones.get(parentName);
+            ((ObjectNode) compositionEntry).put("$ref", "#/items/definitions/" 
+ cloneName);
+            JsonNode parent = definitions.withObject("/" + cloneName);
+            postProcessComposition(parentName, definition, parent, 
inheritedDefinitions, inlineClones);
             parent
                     .withObject("/properties")
                     .properties()
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/YamlValidatorTest.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/YamlValidatorTest.java
index fb8ade0b0537..bc828f50c412 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/YamlValidatorTest.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/YamlValidatorTest.java
@@ -86,4 +86,26 @@ public class YamlValidatorTest {
         Assertions.assertFalse(report.isEmpty());
         Assertions.assertTrue(report.stream().anyMatch(error -> 
error.getMessage().contains("parserStep")));
     }
+
+    @Test
+    public void testInlineExpressionObjectFormStillValidates() throws 
Exception {
+        // Guards the fix for CAMEL-24479: restoring 
additionalProperties:false on ExpressionDefinition
+        // must not break the inline shorthand merge (filter: { groovy: {...} 
} without an "expression:"
+        // wrapper), which relies on ExpressionDefinition's properties being 
redeclared onto FilterDefinition.
+        var report = validator.validate(new 
File("src/test/resources/inline-expression-object.yaml"));
+        Assertions.assertTrue(report.isEmpty(), "Inline expression object form 
should still pass validation but got: "
+                                                + report.stream().map(e -> 
e.getMessage()).toList());
+    }
+
+    @Test
+    public void testUnknownPropertyInExpressionBlockFailsValidation() throws 
Exception {
+        // CAMEL-24479: an explicit "expression: {...}" wrapper block with an 
unknown property (hello) must
+        // be rejected. Before the fix, ExpressionDefinition's schema had lost 
its additionalProperties:false
+        // as a side effect of also supporting inline expression shorthands 
(e.g. filter: { simple: "..." }),
+        // so unknown/duplicate properties were silently accepted whenever any 
single valid language was present.
+        var report = validator.validate(new 
File("src/test/resources/CAMEL-24479.yaml"));
+        Assertions.assertFalse(report.isEmpty(), "Unknown property 'hello' in 
the expression block should be reported");
+        Assertions.assertTrue(report.stream().anyMatch(e -> 
e.getMessage().contains("hello")),
+                "Should identify the unknown property 'hello', got: " + 
report.stream().map(e -> e.getMessage()).toList());
+    }
 }
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/resources/CAMEL-24479.yaml
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/resources/CAMEL-24479.yaml
new file mode 100644
index 000000000000..a825b4324bf7
--- /dev/null
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/resources/CAMEL-24479.yaml
@@ -0,0 +1,49 @@
+#
+# 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.
+#
+
+- route:
+    id: route-from-jb
+    description: On message
+    nodePrefixId: route-from-jb
+    from:
+      id: from-e92e
+      description: From JB
+      uri: vertx
+      variableReceive: message
+      parameters:
+        address: EVENTS_FROM_JB
+        pubSub: true
+      steps:
+        - choice:
+            id: choice-5f68
+            when:
+              - id: when-8c1e
+                expression:
+                  groovy:
+                    id: simple-4df51
+                    expression: ${variable.message[messageType]} == "ACK"
+                  simple: {}
+                  hello: world2
+                steps:
+                  - setVariable:
+                      id: setVariable-7f68
+                      description: Set Ack
+                      name: ack
+                      expression:
+                        groovy:
+                          id: groovy-e040
+                          expression: '"hello"'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/resources/inline-expression-object.yaml
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/resources/inline-expression-object.yaml
new file mode 100644
index 000000000000..8a1a57c41f2e
--- /dev/null
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/resources/inline-expression-object.yaml
@@ -0,0 +1,26 @@
+#
+# 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.
+#
+
+- route:
+    from:
+      uri: direct:start
+      steps:
+        - filter:
+            groovy:
+              expression: "true"
+            steps:
+              - to: mock:result
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 42e25c573ed0..d4bb3400cda2 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
@@ -307,6 +307,7 @@
       },
       "org.apache.camel.dsl.yaml.deserializers.OutputAwareFromDefinition" : {
         "type" : "object",
+        "additionalProperties" : false,
         "properties" : {
           "description" : {
             "type" : "string"
@@ -1158,7 +1159,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -1313,7 +1314,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -1473,7 +1474,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -2171,7 +2172,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -2421,7 +2422,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -2994,7 +2995,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -4068,7 +4069,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -4532,7 +4533,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -4784,7 +4785,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -4905,7 +4906,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -5495,7 +5496,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -6242,7 +6243,7 @@
           "additionalProperties" : false,
           "anyOf" : [ {
             "oneOf" : [ {
-              "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+              "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
             }, {
               "not" : {
                 "anyOf" : [ {
@@ -6524,7 +6525,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -6662,7 +6663,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -6840,7 +6841,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -7021,7 +7022,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -7165,7 +7166,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -7346,7 +7347,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -7489,7 +7490,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -8003,7 +8004,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -8550,7 +8551,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -9234,7 +9235,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -9394,7 +9395,7 @@
         "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition"
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExpressionDefinition$Inline"
           }, {
             "not" : {
               "anyOf" : [ {
@@ -13402,6 +13403,7 @@
       },
       "org.apache.camel.model.language.ExpressionDefinition" : {
         "type" : "object",
+        "additionalProperties" : false,
         "anyOf" : [ {
           "oneOf" : [ {
             "type" : "object",
@@ -17745,6 +17747,305 @@
             "$ref" : 
"#/items/definitions/org.apache.camel.model.validator.PredicateValidatorDefinition"
           }
         }
+      },
+      
"org.apache.camel.dsl.yaml.deserializers.OutputAwareFromDefinition$Inline" : {
+        "type" : "object",
+        "properties" : {
+          "description" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "note" : {
+            "type" : "string"
+          },
+          "parameters" : {
+            "type" : "object"
+          },
+          "steps" : {
+            "type" : "array",
+            "items" : {
+              "$ref" : 
"#/items/definitions/org.apache.camel.model.ProcessorDefinition"
+            }
+          },
+          "uri" : {
+            "type" : "string"
+          },
+          "variableReceive" : {
+            "type" : "string"
+          }
+        },
+        "required" : [ "steps", "uri" ]
+      },
+      "org.apache.camel.model.language.ExpressionDefinition$Inline" : {
+        "type" : "object",
+        "anyOf" : [ {
+          "oneOf" : [ {
+            "type" : "object",
+            "required" : [ "constant" ],
+            "properties" : {
+              "constant" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ConstantExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "csimple" ],
+            "properties" : {
+              "csimple" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.CSimpleExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "datasonnet" ],
+            "properties" : {
+              "datasonnet" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.DatasonnetExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "exchangeProperty" ],
+            "properties" : {
+              "exchangeProperty" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.ExchangePropertyExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "groovy" ],
+            "properties" : {
+              "groovy" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.GroovyExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "header" ],
+            "properties" : {
+              "header" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.HeaderExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "hl7terser" ],
+            "properties" : {
+              "hl7terser" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.Hl7TerserExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "jactl" ],
+            "properties" : {
+              "jactl" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.JactlExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "java" ],
+            "properties" : {
+              "java" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.JavaExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "joor" ],
+            "properties" : {
+              "joor" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.JoorExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "jq" ],
+            "properties" : {
+              "jq" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.JqExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "js" ],
+            "properties" : {
+              "js" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.JavaScriptExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "jsonpath" ],
+            "properties" : {
+              "jsonpath" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.JsonPathExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "language" ],
+            "properties" : {
+              "language" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.LanguageExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "method" ],
+            "properties" : {
+              "method" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.MethodCallExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "mvel" ],
+            "properties" : {
+              "mvel" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.MvelExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "ognl" ],
+            "properties" : {
+              "ognl" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.OgnlExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "python" ],
+            "properties" : {
+              "python" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.PythonExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "python3" ],
+            "properties" : {
+              "python3" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.Python3Expression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "quickjs" ],
+            "properties" : {
+              "quickjs" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.QuickjsExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "ref" ],
+            "properties" : {
+              "ref" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.RefExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "simple" ],
+            "properties" : {
+              "simple" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.SimpleExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "spel" ],
+            "properties" : {
+              "spel" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.SpELExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "tokenize" ],
+            "properties" : {
+              "tokenize" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.TokenizerExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "variable" ],
+            "properties" : {
+              "variable" : {
+                "$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" ],
+            "properties" : {
+              "xpath" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.XPathExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "xquery" ],
+            "properties" : {
+              "xquery" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.XQueryExpression"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "xtokenize" ],
+            "properties" : {
+              "xtokenize" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.language.XMLTokenizerExpression"
+              }
+            }
+          } ]
+        } ],
+        "properties" : {
+          "constant" : { },
+          "csimple" : { },
+          "datasonnet" : { },
+          "exchangeProperty" : { },
+          "groovy" : { },
+          "header" : { },
+          "hl7terser" : { },
+          "jactl" : { },
+          "java" : { },
+          "joor" : { },
+          "jq" : { },
+          "js" : { },
+          "jsonpath" : { },
+          "language" : { },
+          "method" : { },
+          "mvel" : { },
+          "ognl" : { },
+          "python" : { },
+          "python3" : { },
+          "quickjs" : { },
+          "ref" : { },
+          "simple" : { },
+          "spel" : { },
+          "tokenize" : { },
+          "variable" : { },
+          "wasm" : { },
+          "xpath" : { },
+          "xquery" : { },
+          "xtokenize" : { }
+        }
       }
     },
     "properties" : {

Reply via email to