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

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


The following commit(s) were added to refs/heads/main by this push:
     new a1ce91f20b7 [CAMEL-19813] camel-yaml-dsl - Error handler should be 
oneOf (#11281)
a1ce91f20b7 is described below

commit a1ce91f20b713eb5ca10ba1a3dd034aaa644d57b
Author: Tomohisa Igarashi <[email protected]>
AuthorDate: Fri Sep 1 12:00:19 2023 -0400

    [CAMEL-19813] camel-yaml-dsl - Error handler should be oneOf (#11281)
    
    Unfortunately `additionalProperties: false` seems to be needed to do the 
validation test for this. I'll follow up in CAMEL-19700.
---
 .../ErrorHandlerBuilderDeserializer.java           | 18 +++--
 .../generated/resources/schema/camelYamlDsl.json   | 91 +++++++++++++++++-----
 2 files changed, 85 insertions(+), 24 deletions(-)

diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
index 5b8212f9e15..2f9c4fdd5cb 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/ErrorHandlerBuilderDeserializer.java
@@ -49,17 +49,23 @@ import static 
org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.setDeseri
           order = YamlDeserializerResolver.ORDER_DEFAULT,
           properties = {
                   @YamlProperty(name = "dead-letter-channel",
-                                type = 
"object:org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"),
+                                type = 
"object:org.apache.camel.model.errorhandler.DeadLetterChannelDefinition",
+                                oneOf = "error-handler"),
                   @YamlProperty(name = "default-error-handler",
-                                type = 
"object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"),
+                                type = 
"object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition",
+                                oneOf = "error-handler"),
                   @YamlProperty(name = "jta-transaction-error-handler",
-                                type = 
"object:org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"),
+                                type = 
"object:org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition",
+                                oneOf = "error-handler"),
                   @YamlProperty(name = "no-error-handler",
-                                type = 
"object:org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"),
+                                type = 
"object:org.apache.camel.model.errorhandler.NoErrorHandlerDefinition",
+                                oneOf = "error-handler"),
                   @YamlProperty(name = "ref-error-handler",
-                                type = 
"object:org.apache.camel.model.errorhandler.RefErrorHandlerDefinition"),
+                                type = 
"object:org.apache.camel.model.errorhandler.RefErrorHandlerDefinition",
+                                oneOf = "error-handler"),
                   @YamlProperty(name = "spring-transaction-error-handler",
-                                type = 
"object:org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"),
+                                type = 
"object:org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition",
+                                oneOf = "error-handler"),
           })
 public class ErrorHandlerBuilderDeserializer implements ConstructNode {
 
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 26eff2dafa7..fea10503fad 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
@@ -210,25 +210,80 @@
       },
       
"org.apache.camel.dsl.yaml.deserializers.ErrorHandlerBuilderDeserializer" : {
         "type" : "object",
+        "anyOf" : [ {
+          "oneOf" : [ {
+            "type" : "object",
+            "required" : [ "deadLetterChannel" ],
+            "properties" : {
+              "deadLetterChannel" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
+              }
+            }
+          }, {
+            "not" : {
+              "anyOf" : [ {
+                "required" : [ "dead-letter-channel" ]
+              }, {
+                "required" : [ "default-error-handler" ]
+              }, {
+                "required" : [ "jta-transaction-error-handler" ]
+              }, {
+                "required" : [ "no-error-handler" ]
+              }, {
+                "required" : [ "ref-error-handler" ]
+              }, {
+                "required" : [ "spring-transaction-error-handler" ]
+              } ]
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "defaultErrorHandler" ],
+            "properties" : {
+              "defaultErrorHandler" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "jtaTransactionErrorHandler" ],
+            "properties" : {
+              "jtaTransactionErrorHandler" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "noErrorHandler" ],
+            "properties" : {
+              "noErrorHandler" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "refErrorHandler" ],
+            "properties" : {
+              "refErrorHandler" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.RefErrorHandlerDefinition"
+              }
+            }
+          }, {
+            "type" : "object",
+            "required" : [ "springTransactionErrorHandler" ],
+            "properties" : {
+              "springTransactionErrorHandler" : {
+                "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
+              }
+            }
+          } ]
+        } ],
         "properties" : {
-          "deadLetterChannel" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
-          },
-          "defaultErrorHandler" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
-          },
-          "jtaTransactionErrorHandler" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
-          },
-          "noErrorHandler" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
-          },
-          "refErrorHandler" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.RefErrorHandlerDefinition"
-          },
-          "springTransactionErrorHandler" : {
-            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
-          }
+          "deadLetterChannel" : { },
+          "defaultErrorHandler" : { },
+          "jtaTransactionErrorHandler" : { },
+          "noErrorHandler" : { },
+          "refErrorHandler" : { },
+          "springTransactionErrorHandler" : { }
         }
       },
       "org.apache.camel.dsl.yaml.deserializers.OutputAwareFromDefinition" : {

Reply via email to