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" : {