You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/04/07 10:36:57 UTC

[camel] branch errorhandler-in-dsl updated (6a683aa405b -> 2600f5cb3bf)

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

davsclaus pushed a change to branch errorhandler-in-dsl
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 6a683aa405b CAMEL-16834: error handler in model DSL. WIP
     new 19a46f43ac9 CAMEL-16834: error handler in model DSL. WIP
     new c5ab200f22e CAMEL-16834: error handler in model DSL. WIP
     new 2600f5cb3bf CAMEL-16834: error handler in model DSL. WIP

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../dsl/yaml/deserializers/ModelDeserializers.java | 529 ++++++++++++++++++---
 .../deserializers/ModelDeserializersResolver.java  |  25 +-
 .../ErrorHandlerBuilderDeserializer.java           |  29 +-
 .../dsl/yaml/GenerateYamlDeserializersMojo.java    |  29 +-
 .../src/generated/resources/camel-yaml-dsl.json    | 354 ++++++++++----
 .../src/generated/resources/camelYamlDsl.json      | 348 ++++++++++----
 .../camel/dsl/yaml/YamlRoutesBuilderLoader.java    |  31 +-
 .../apache/camel/dsl/yaml/ErrorHandlerTest.groovy  |  20 +-
 .../camel/dsl/yaml/KameletBindingLoaderTest.groovy |  34 +-
 9 files changed, 1067 insertions(+), 332 deletions(-)


[camel] 01/03: CAMEL-16834: error handler in model DSL. WIP

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 19a46f43ac9fb997a03c6d889a69f86f94df44fc
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Apr 7 12:11:54 2022 +0200

    CAMEL-16834: error handler in model DSL. WIP
---
 .../dsl/yaml/deserializers/ModelDeserializers.java | 682 ++++++++++++++++++++-
 .../deserializers/ModelDeserializersResolver.java  |  21 +
 .../src/generated/resources/camel-yaml-dsl.json    | 253 ++++++++
 .../src/generated/resources/camelYamlDsl.json      | 253 ++++++++
 .../camel/dsl/yaml/YamlRoutesBuilderLoader.java    |  31 +-
 .../camel/dsl/yaml/KameletBindingLoaderTest.groovy |  34 +-
 6 files changed, 1225 insertions(+), 49 deletions(-)

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 12a5b583a78..164793b45b9 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
@@ -26,6 +26,7 @@ import org.apache.camel.model.DelayDefinition;
 import org.apache.camel.model.DescriptionDefinition;
 import org.apache.camel.model.DynamicRouterDefinition;
 import org.apache.camel.model.EnrichDefinition;
+import org.apache.camel.model.ErrorHandlerDefinition;
 import org.apache.camel.model.FaultToleranceConfigurationDefinition;
 import org.apache.camel.model.FilterDefinition;
 import org.apache.camel.model.FinallyDefinition;
@@ -167,6 +168,12 @@ import org.apache.camel.model.dataformat.YAMLDataFormat;
 import org.apache.camel.model.dataformat.YAMLTypeFilterDefinition;
 import org.apache.camel.model.dataformat.ZipDeflaterDataFormat;
 import org.apache.camel.model.dataformat.ZipFileDataFormat;
+import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
+import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
 import org.apache.camel.model.language.CSimpleExpression;
 import org.apache.camel.model.language.ConstantExpression;
 import org.apache.camel.model.language.DatasonnetExpression;
@@ -3918,6 +3925,133 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            inline = true,
+            types = org.apache.camel.model.errorhandler.DeadLetterChannelDefinition.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "dead-letter-channel",
+                    "deadLetterChannel"
+            },
+            properties = {
+                    @YamlProperty(name = "dead-letter-handle-new-exception", type = "boolean"),
+                    @YamlProperty(name = "dead-letter-uri", type = "string", required = true),
+                    @YamlProperty(name = "executor-service-ref", type = "string"),
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "level", type = "enum:DEBUG,ERROR,INFO,OFF,TRACE,WARN"),
+                    @YamlProperty(name = "log-name", type = "string"),
+                    @YamlProperty(name = "logger-ref", type = "string"),
+                    @YamlProperty(name = "on-exception-occurred-ref", type = "string"),
+                    @YamlProperty(name = "on-prepare-failure-ref", type = "string"),
+                    @YamlProperty(name = "on-redelivery-ref", type = "string"),
+                    @YamlProperty(name = "redelivery-policy", type = "object:org.apache.camel.model.RedeliveryPolicyDefinition"),
+                    @YamlProperty(name = "redelivery-policy-ref", type = "string"),
+                    @YamlProperty(name = "retry-while-ref", type = "string"),
+                    @YamlProperty(name = "use-original-body", type = "boolean"),
+                    @YamlProperty(name = "use-original-message", type = "boolean")
+            }
+    )
+    public static class DeadLetterChannelDefinitionDeserializer extends YamlDeserializerBase<DeadLetterChannelDefinition> {
+        public DeadLetterChannelDefinitionDeserializer() {
+            super(DeadLetterChannelDefinition.class);
+        }
+
+        @Override
+        protected DeadLetterChannelDefinition newInstance() {
+            return new DeadLetterChannelDefinition();
+        }
+
+        @Override
+        protected DeadLetterChannelDefinition newInstance(String value) {
+            return new DeadLetterChannelDefinition(value);
+        }
+
+        @Override
+        protected boolean setProperty(DeadLetterChannelDefinition target, String propertyKey,
+                String propertyName, Node node) {
+            switch(propertyKey) {
+                case "dead-letter-handle-new-exception": {
+                    String val = asText(node);
+                    target.setDeadLetterHandleNewException(val);
+                    break;
+                }
+                case "dead-letter-uri": {
+                    String val = asText(node);
+                    target.setDeadLetterUri(val);
+                    break;
+                }
+                case "executor-service-ref": {
+                    String val = asText(node);
+                    target.setExecutorServiceRef(val);
+                    break;
+                }
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                case "level": {
+                    target.setLevel(asEnum(node, org.apache.camel.LoggingLevel.class));
+                    break;
+                }
+                case "log-name": {
+                    String val = asText(node);
+                    target.setLogName(val);
+                    break;
+                }
+                case "logger-ref": {
+                    String val = asText(node);
+                    target.setLoggerRef(val);
+                    break;
+                }
+                case "on-exception-occurred-ref": {
+                    String val = asText(node);
+                    target.setOnExceptionOccurredRef(val);
+                    break;
+                }
+                case "on-prepare-failure-ref": {
+                    String val = asText(node);
+                    target.setOnPrepareFailureRef(val);
+                    break;
+                }
+                case "on-redelivery-ref": {
+                    String val = asText(node);
+                    target.setOnRedeliveryRef(val);
+                    break;
+                }
+                case "redelivery-policy": {
+                    org.apache.camel.model.RedeliveryPolicyDefinition val = asType(node, org.apache.camel.model.RedeliveryPolicyDefinition.class);
+                    target.setRedeliveryPolicy(val);
+                    break;
+                }
+                case "redelivery-policy-ref": {
+                    String val = asText(node);
+                    target.setRedeliveryPolicyRef(val);
+                    break;
+                }
+                case "retry-while-ref": {
+                    String val = asText(node);
+                    target.setRetryWhileRef(val);
+                    break;
+                }
+                case "use-original-body": {
+                    String val = asText(node);
+                    target.setUseOriginalBody(val);
+                    break;
+                }
+                case "use-original-message": {
+                    String val = asText(node);
+                    target.setUseOriginalMessage(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             types = org.apache.camel.builder.DefaultErrorHandlerBuilder.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -3994,6 +4128,115 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            types = org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "default-error-handler",
+                    "defaultErrorHandler"
+            },
+            properties = {
+                    @YamlProperty(name = "executor-service-ref", type = "string"),
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "level", type = "enum:DEBUG,ERROR,INFO,OFF,TRACE,WARN"),
+                    @YamlProperty(name = "log-name", type = "string"),
+                    @YamlProperty(name = "logger-ref", type = "string"),
+                    @YamlProperty(name = "on-exception-occurred-ref", type = "string"),
+                    @YamlProperty(name = "on-prepare-failure-ref", type = "string"),
+                    @YamlProperty(name = "on-redelivery-ref", type = "string"),
+                    @YamlProperty(name = "redelivery-policy", type = "object:org.apache.camel.model.RedeliveryPolicyDefinition"),
+                    @YamlProperty(name = "redelivery-policy-ref", type = "string"),
+                    @YamlProperty(name = "retry-while-ref", type = "string"),
+                    @YamlProperty(name = "use-original-body", type = "boolean"),
+                    @YamlProperty(name = "use-original-message", type = "boolean")
+            }
+    )
+    public static class DefaultErrorHandlerDefinitionDeserializer extends YamlDeserializerBase<DefaultErrorHandlerDefinition> {
+        public DefaultErrorHandlerDefinitionDeserializer() {
+            super(DefaultErrorHandlerDefinition.class);
+        }
+
+        @Override
+        protected DefaultErrorHandlerDefinition newInstance() {
+            return new DefaultErrorHandlerDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(DefaultErrorHandlerDefinition target, String propertyKey,
+                String propertyName, Node node) {
+            switch(propertyKey) {
+                case "executor-service-ref": {
+                    String val = asText(node);
+                    target.setExecutorServiceRef(val);
+                    break;
+                }
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                case "level": {
+                    target.setLevel(asEnum(node, org.apache.camel.LoggingLevel.class));
+                    break;
+                }
+                case "log-name": {
+                    String val = asText(node);
+                    target.setLogName(val);
+                    break;
+                }
+                case "logger-ref": {
+                    String val = asText(node);
+                    target.setLoggerRef(val);
+                    break;
+                }
+                case "on-exception-occurred-ref": {
+                    String val = asText(node);
+                    target.setOnExceptionOccurredRef(val);
+                    break;
+                }
+                case "on-prepare-failure-ref": {
+                    String val = asText(node);
+                    target.setOnPrepareFailureRef(val);
+                    break;
+                }
+                case "on-redelivery-ref": {
+                    String val = asText(node);
+                    target.setOnRedeliveryRef(val);
+                    break;
+                }
+                case "redelivery-policy": {
+                    org.apache.camel.model.RedeliveryPolicyDefinition val = asType(node, org.apache.camel.model.RedeliveryPolicyDefinition.class);
+                    target.setRedeliveryPolicy(val);
+                    break;
+                }
+                case "redelivery-policy-ref": {
+                    String val = asText(node);
+                    target.setRedeliveryPolicyRef(val);
+                    break;
+                }
+                case "retry-while-ref": {
+                    String val = asText(node);
+                    target.setRetryWhileRef(val);
+                    break;
+                }
+                case "use-original-body": {
+                    String val = asText(node);
+                    target.setUseOriginalBody(val);
+                    break;
+                }
+                case "use-original-message": {
+                    String val = asText(node);
+                    target.setUseOriginalMessage(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             types = org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -4654,40 +4897,163 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
 
     @YamlType(
             inline = true,
-            types = org.apache.camel.builder.ErrorHandlerBuilderRef.class,
+            types = org.apache.camel.builder.ErrorHandlerBuilderRef.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            properties = {
+                    @YamlProperty(name = "ref", type = "string"),
+                    @YamlProperty(name = "support-transacted", type = "boolean")
+            }
+    )
+    public static class ErrorHandlerBuilderRefDeserializer extends YamlDeserializerBase<ErrorHandlerBuilderRef> {
+        public ErrorHandlerBuilderRefDeserializer() {
+            super(ErrorHandlerBuilderRef.class);
+        }
+
+        @Override
+        protected ErrorHandlerBuilderRef newInstance() {
+            return new ErrorHandlerBuilderRef();
+        }
+
+        @Override
+        protected ErrorHandlerBuilderRef newInstance(String value) {
+            return new ErrorHandlerBuilderRef(value);
+        }
+
+        @Override
+        protected boolean setProperty(ErrorHandlerBuilderRef target, String propertyKey,
+                String propertyName, Node node) {
+            switch(propertyKey) {
+                case "ref": {
+                    String val = asText(node);
+                    target.setRef(val);
+                    break;
+                }
+                case "support-transacted": {
+                    boolean val = asBoolean(node);
+                    target.setSupportTransacted(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
+    @YamlType(
+            types = org.apache.camel.model.ErrorHandlerDefinition.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "error-handler",
+                    "errorHandler"
+            },
+            properties = {
+                    @YamlProperty(name = "dead-letter-channel", type = "object:org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"),
+                    @YamlProperty(name = "default-error-handler", type = "object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"),
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "jta-transaction-error-handler", type = "object:org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"),
+                    @YamlProperty(name = "no-error-handler", type = "object:org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"),
+                    @YamlProperty(name = "spring-transaction-error-handler", type = "object:org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition")
+            }
+    )
+    public static class ErrorHandlerDefinitionDeserializer extends YamlDeserializerBase<ErrorHandlerDefinition> {
+        public ErrorHandlerDefinitionDeserializer() {
+            super(ErrorHandlerDefinition.class);
+        }
+
+        @Override
+        protected ErrorHandlerDefinition newInstance() {
+            return new ErrorHandlerDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(ErrorHandlerDefinition target, String propertyKey,
+                String propertyName, Node node) {
+            switch(propertyKey) {
+                case "error-handler-type": {
+                    MappingNode val = asMappingNode(node);
+                    setProperties(target, val);
+                    break;
+                }
+                case "dead-letter-channel": {
+                    org.apache.camel.model.errorhandler.DeadLetterChannelDefinition val = asType(node, org.apache.camel.model.errorhandler.DeadLetterChannelDefinition.class);
+                    target.setErrorHandlerType(val);
+                    break;
+                }
+                case "default-error-handler": {
+                    org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition val = asType(node, org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition.class);
+                    target.setErrorHandlerType(val);
+                    break;
+                }
+                case "no-error-handler": {
+                    org.apache.camel.model.errorhandler.NoErrorHandlerDefinition val = asType(node, org.apache.camel.model.errorhandler.NoErrorHandlerDefinition.class);
+                    target.setErrorHandlerType(val);
+                    break;
+                }
+                case "jta-transaction-error-handler": {
+                    org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition val = asType(node, org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition.class);
+                    target.setErrorHandlerType(val);
+                    break;
+                }
+                case "spring-transaction-error-handler": {
+                    org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition val = asType(node, org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition.class);
+                    target.setErrorHandlerType(val);
+                    break;
+                }
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
+    @YamlType(
+            inline = true,
+            types = org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "error-handler-ref",
+                    "errorHandlerRef"
+            },
             properties = {
-                    @YamlProperty(name = "ref", type = "string"),
-                    @YamlProperty(name = "support-transacted", type = "boolean")
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "ref", type = "string", required = true)
             }
     )
-    public static class ErrorHandlerBuilderRefDeserializer extends YamlDeserializerBase<ErrorHandlerBuilderRef> {
-        public ErrorHandlerBuilderRefDeserializer() {
-            super(ErrorHandlerBuilderRef.class);
+    public static class ErrorHandlerRefDefinitionDeserializer extends YamlDeserializerBase<ErrorHandlerRefDefinition> {
+        public ErrorHandlerRefDefinitionDeserializer() {
+            super(ErrorHandlerRefDefinition.class);
         }
 
         @Override
-        protected ErrorHandlerBuilderRef newInstance() {
-            return new ErrorHandlerBuilderRef();
+        protected ErrorHandlerRefDefinition newInstance() {
+            return new ErrorHandlerRefDefinition();
         }
 
         @Override
-        protected ErrorHandlerBuilderRef newInstance(String value) {
-            return new ErrorHandlerBuilderRef(value);
+        protected ErrorHandlerRefDefinition newInstance(String value) {
+            return new ErrorHandlerRefDefinition(value);
         }
 
         @Override
-        protected boolean setProperty(ErrorHandlerBuilderRef target, String propertyKey,
+        protected boolean setProperty(ErrorHandlerRefDefinition target, String propertyKey,
                 String propertyName, Node node) {
             switch(propertyKey) {
-                case "ref": {
+                case "id": {
                     String val = asText(node);
-                    target.setRef(val);
+                    target.setId(val);
                     break;
                 }
-                case "support-transacted": {
-                    boolean val = asBoolean(node);
-                    target.setSupportTransacted(val);
+                case "ref": {
+                    String val = asText(node);
+                    target.setRef(val);
                     break;
                 }
                 default: {
@@ -7392,6 +7758,127 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            types = org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "jta-transaction-error-handler",
+                    "jtaTransactionErrorHandler"
+            },
+            properties = {
+                    @YamlProperty(name = "executor-service-ref", type = "string"),
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "level", type = "enum:DEBUG,ERROR,INFO,OFF,TRACE,WARN"),
+                    @YamlProperty(name = "log-name", type = "string"),
+                    @YamlProperty(name = "logger-ref", type = "string"),
+                    @YamlProperty(name = "on-exception-occurred-ref", type = "string"),
+                    @YamlProperty(name = "on-prepare-failure-ref", type = "string"),
+                    @YamlProperty(name = "on-redelivery-ref", type = "string"),
+                    @YamlProperty(name = "redelivery-policy", type = "object:org.apache.camel.model.RedeliveryPolicyDefinition"),
+                    @YamlProperty(name = "redelivery-policy-ref", type = "string"),
+                    @YamlProperty(name = "retry-while-ref", type = "string"),
+                    @YamlProperty(name = "rollback-logging-level", type = "string"),
+                    @YamlProperty(name = "transacted-policy-ref", type = "string"),
+                    @YamlProperty(name = "use-original-body", type = "boolean"),
+                    @YamlProperty(name = "use-original-message", type = "boolean")
+            }
+    )
+    public static class JtaTransactionErrorHandlerDefinitionDeserializer extends YamlDeserializerBase<JtaTransactionErrorHandlerDefinition> {
+        public JtaTransactionErrorHandlerDefinitionDeserializer() {
+            super(JtaTransactionErrorHandlerDefinition.class);
+        }
+
+        @Override
+        protected JtaTransactionErrorHandlerDefinition newInstance() {
+            return new JtaTransactionErrorHandlerDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(JtaTransactionErrorHandlerDefinition target,
+                String propertyKey, String propertyName, Node node) {
+            switch(propertyKey) {
+                case "executor-service-ref": {
+                    String val = asText(node);
+                    target.setExecutorServiceRef(val);
+                    break;
+                }
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                case "level": {
+                    target.setLevel(asEnum(node, org.apache.camel.LoggingLevel.class));
+                    break;
+                }
+                case "log-name": {
+                    String val = asText(node);
+                    target.setLogName(val);
+                    break;
+                }
+                case "logger-ref": {
+                    String val = asText(node);
+                    target.setLoggerRef(val);
+                    break;
+                }
+                case "on-exception-occurred-ref": {
+                    String val = asText(node);
+                    target.setOnExceptionOccurredRef(val);
+                    break;
+                }
+                case "on-prepare-failure-ref": {
+                    String val = asText(node);
+                    target.setOnPrepareFailureRef(val);
+                    break;
+                }
+                case "on-redelivery-ref": {
+                    String val = asText(node);
+                    target.setOnRedeliveryRef(val);
+                    break;
+                }
+                case "redelivery-policy": {
+                    org.apache.camel.model.RedeliveryPolicyDefinition val = asType(node, org.apache.camel.model.RedeliveryPolicyDefinition.class);
+                    target.setRedeliveryPolicy(val);
+                    break;
+                }
+                case "redelivery-policy-ref": {
+                    String val = asText(node);
+                    target.setRedeliveryPolicyRef(val);
+                    break;
+                }
+                case "retry-while-ref": {
+                    String val = asText(node);
+                    target.setRetryWhileRef(val);
+                    break;
+                }
+                case "rollback-logging-level": {
+                    String val = asText(node);
+                    target.setRollbackLoggingLevel(val);
+                    break;
+                }
+                case "transacted-policy-ref": {
+                    String val = asText(node);
+                    target.setTransactedPolicyRef(val);
+                    break;
+                }
+                case "use-original-body": {
+                    String val = asText(node);
+                    target.setUseOriginalBody(val);
+                    break;
+                }
+                case "use-original-message": {
+                    String val = asText(node);
+                    target.setUseOriginalMessage(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             types = org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -8619,6 +9106,42 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            types = org.apache.camel.model.errorhandler.NoErrorHandlerDefinition.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "no-error-handler",
+                    "noErrorHandler"
+            },
+            properties = @YamlProperty(name = "id", type = "string")
+    )
+    public static class NoErrorHandlerDefinitionDeserializer extends YamlDeserializerBase<NoErrorHandlerDefinition> {
+        public NoErrorHandlerDefinitionDeserializer() {
+            super(NoErrorHandlerDefinition.class);
+        }
+
+        @Override
+        protected NoErrorHandlerDefinition newInstance() {
+            return new NoErrorHandlerDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(NoErrorHandlerDefinition target, String propertyKey,
+                String propertyName, Node node) {
+            switch(propertyKey) {
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             types = org.apache.camel.model.rest.OAuth2Definition.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -10762,6 +11285,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "delay-pattern", type = "string"),
                     @YamlProperty(name = "disable-redelivery", type = "boolean"),
                     @YamlProperty(name = "exchange-formatter-ref", type = "string"),
+                    @YamlProperty(name = "id", type = "string"),
                     @YamlProperty(name = "log-continued", type = "boolean"),
                     @YamlProperty(name = "log-exhausted", type = "boolean"),
                     @YamlProperty(name = "log-exhausted-message-body", type = "boolean"),
@@ -10830,6 +11354,11 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     target.setExchangeFormatterRef(val);
                     break;
                 }
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
                 case "log-continued": {
                     String val = asText(node);
                     target.setLogContinued(val);
@@ -14456,6 +14985,127 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            types = org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition.class,
+            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            nodes = {
+                    "spring-transaction-error-handler",
+                    "springTransactionErrorHandler"
+            },
+            properties = {
+                    @YamlProperty(name = "executor-service-ref", type = "string"),
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "level", type = "enum:DEBUG,ERROR,INFO,OFF,TRACE,WARN"),
+                    @YamlProperty(name = "log-name", type = "string"),
+                    @YamlProperty(name = "logger-ref", type = "string"),
+                    @YamlProperty(name = "on-exception-occurred-ref", type = "string"),
+                    @YamlProperty(name = "on-prepare-failure-ref", type = "string"),
+                    @YamlProperty(name = "on-redelivery-ref", type = "string"),
+                    @YamlProperty(name = "redelivery-policy", type = "object:org.apache.camel.model.RedeliveryPolicyDefinition"),
+                    @YamlProperty(name = "redelivery-policy-ref", type = "string"),
+                    @YamlProperty(name = "retry-while-ref", type = "string"),
+                    @YamlProperty(name = "rollback-logging-level", type = "string"),
+                    @YamlProperty(name = "transacted-policy-ref", type = "string"),
+                    @YamlProperty(name = "use-original-body", type = "boolean"),
+                    @YamlProperty(name = "use-original-message", type = "boolean")
+            }
+    )
+    public static class SpringTransactionErrorHandlerDefinitionDeserializer extends YamlDeserializerBase<SpringTransactionErrorHandlerDefinition> {
+        public SpringTransactionErrorHandlerDefinitionDeserializer() {
+            super(SpringTransactionErrorHandlerDefinition.class);
+        }
+
+        @Override
+        protected SpringTransactionErrorHandlerDefinition newInstance() {
+            return new SpringTransactionErrorHandlerDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(SpringTransactionErrorHandlerDefinition target,
+                String propertyKey, String propertyName, Node node) {
+            switch(propertyKey) {
+                case "executor-service-ref": {
+                    String val = asText(node);
+                    target.setExecutorServiceRef(val);
+                    break;
+                }
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                case "level": {
+                    target.setLevel(asEnum(node, org.apache.camel.LoggingLevel.class));
+                    break;
+                }
+                case "log-name": {
+                    String val = asText(node);
+                    target.setLogName(val);
+                    break;
+                }
+                case "logger-ref": {
+                    String val = asText(node);
+                    target.setLoggerRef(val);
+                    break;
+                }
+                case "on-exception-occurred-ref": {
+                    String val = asText(node);
+                    target.setOnExceptionOccurredRef(val);
+                    break;
+                }
+                case "on-prepare-failure-ref": {
+                    String val = asText(node);
+                    target.setOnPrepareFailureRef(val);
+                    break;
+                }
+                case "on-redelivery-ref": {
+                    String val = asText(node);
+                    target.setOnRedeliveryRef(val);
+                    break;
+                }
+                case "redelivery-policy": {
+                    org.apache.camel.model.RedeliveryPolicyDefinition val = asType(node, org.apache.camel.model.RedeliveryPolicyDefinition.class);
+                    target.setRedeliveryPolicy(val);
+                    break;
+                }
+                case "redelivery-policy-ref": {
+                    String val = asText(node);
+                    target.setRedeliveryPolicyRef(val);
+                    break;
+                }
+                case "retry-while-ref": {
+                    String val = asText(node);
+                    target.setRetryWhileRef(val);
+                    break;
+                }
+                case "rollback-logging-level": {
+                    String val = asText(node);
+                    target.setRollbackLoggingLevel(val);
+                    break;
+                }
+                case "transacted-policy-ref": {
+                    String val = asText(node);
+                    target.setTransactedPolicyRef(val);
+                    break;
+                }
+                case "use-original-body": {
+                    String val = asText(node);
+                    target.setUseOriginalBody(val);
+                    break;
+                }
+                case "use-original-message": {
+                    String val = asText(node);
+                    target.setUseOriginalMessage(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             types = org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
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 98d2e68933c..af3d0ca1d18 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
@@ -104,7 +104,13 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "datasonnet": return new ModelDeserializers.DatasonnetExpressionDeserializer();
             case "org.apache.camel.model.language.DatasonnetExpression": return new ModelDeserializers.DatasonnetExpressionDeserializer();
             case "org.apache.camel.builder.DeadLetterChannelBuilder": return new ModelDeserializers.DeadLetterChannelBuilderDeserializer();
+            case "dead-letter-channel": return new ModelDeserializers.DeadLetterChannelDefinitionDeserializer();
+            case "deadLetterChannel": return new ModelDeserializers.DeadLetterChannelDefinitionDeserializer();
+            case "org.apache.camel.model.errorhandler.DeadLetterChannelDefinition": return new ModelDeserializers.DeadLetterChannelDefinitionDeserializer();
             case "org.apache.camel.builder.DefaultErrorHandlerBuilder": return new ModelDeserializers.DefaultErrorHandlerBuilderDeserializer();
+            case "default-error-handler": return new ModelDeserializers.DefaultErrorHandlerDefinitionDeserializer();
+            case "defaultErrorHandler": return new ModelDeserializers.DefaultErrorHandlerDefinitionDeserializer();
+            case "org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition": return new ModelDeserializers.DefaultErrorHandlerDefinitionDeserializer();
             case "default-load-balancer": return new ModelDeserializers.DefaultServiceCallServiceLoadBalancerConfigurationDeserializer();
             case "defaultLoadBalancer": return new ModelDeserializers.DefaultServiceCallServiceLoadBalancerConfigurationDeserializer();
             case "org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration": return new ModelDeserializers.DefaultServiceCallServiceLoadBalancerConfigurationDeserializer();
@@ -125,6 +131,12 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "enrich": return new ModelDeserializers.EnrichDefinitionDeserializer();
             case "org.apache.camel.model.EnrichDefinition": return new ModelDeserializers.EnrichDefinitionDeserializer();
             case "org.apache.camel.builder.ErrorHandlerBuilderRef": return new ModelDeserializers.ErrorHandlerBuilderRefDeserializer();
+            case "error-handler": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
+            case "errorHandler": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
+            case "org.apache.camel.model.ErrorHandlerDefinition": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
+            case "error-handler-ref": return new ModelDeserializers.ErrorHandlerRefDefinitionDeserializer();
+            case "errorHandlerRef": return new ModelDeserializers.ErrorHandlerRefDefinitionDeserializer();
+            case "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition": return new ModelDeserializers.ErrorHandlerRefDefinitionDeserializer();
             case "etcd-service-discovery": return new ModelDeserializers.EtcdServiceCallServiceDiscoveryConfigurationDeserializer();
             case "etcdServiceDiscovery": return new ModelDeserializers.EtcdServiceCallServiceDiscoveryConfigurationDeserializer();
             case "org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration": return new ModelDeserializers.EtcdServiceCallServiceDiscoveryConfigurationDeserializer();
@@ -211,6 +223,9 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.dataformat.JsonDataFormat": return new ModelDeserializers.JsonDataFormatDeserializer();
             case "jsonpath": return new ModelDeserializers.JsonPathExpressionDeserializer();
             case "org.apache.camel.model.language.JsonPathExpression": return new ModelDeserializers.JsonPathExpressionDeserializer();
+            case "jta-transaction-error-handler": return new ModelDeserializers.JtaTransactionErrorHandlerDefinitionDeserializer();
+            case "jtaTransactionErrorHandler": return new ModelDeserializers.JtaTransactionErrorHandlerDefinitionDeserializer();
+            case "org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition": return new ModelDeserializers.JtaTransactionErrorHandlerDefinitionDeserializer();
             case "kubernetes-service-discovery": return new ModelDeserializers.KubernetesServiceCallServiceDiscoveryConfigurationDeserializer();
             case "kubernetesServiceDiscovery": return new ModelDeserializers.KubernetesServiceCallServiceDiscoveryConfigurationDeserializer();
             case "org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration": return new ModelDeserializers.KubernetesServiceCallServiceDiscoveryConfigurationDeserializer();
@@ -240,6 +255,9 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "mvel": return new ModelDeserializers.MvelExpressionDeserializer();
             case "org.apache.camel.model.language.MvelExpression": return new ModelDeserializers.MvelExpressionDeserializer();
             case "org.apache.camel.builder.NoErrorHandlerBuilder": return new ModelDeserializers.NoErrorHandlerBuilderDeserializer();
+            case "no-error-handler": return new ModelDeserializers.NoErrorHandlerDefinitionDeserializer();
+            case "noErrorHandler": return new ModelDeserializers.NoErrorHandlerDefinitionDeserializer();
+            case "org.apache.camel.model.errorhandler.NoErrorHandlerDefinition": return new ModelDeserializers.NoErrorHandlerDefinitionDeserializer();
             case "oauth2": return new ModelDeserializers.OAuth2DefinitionDeserializer();
             case "org.apache.camel.model.rest.OAuth2Definition": return new ModelDeserializers.OAuth2DefinitionDeserializer();
             case "ognl": return new ModelDeserializers.OgnlExpressionDeserializer();
@@ -428,6 +446,9 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.language.SpELExpression": return new ModelDeserializers.SpELExpressionDeserializer();
             case "split": return new ModelDeserializers.SplitDefinitionDeserializer();
             case "org.apache.camel.model.SplitDefinition": return new ModelDeserializers.SplitDefinitionDeserializer();
+            case "spring-transaction-error-handler": return new ModelDeserializers.SpringTransactionErrorHandlerDefinitionDeserializer();
+            case "springTransactionErrorHandler": return new ModelDeserializers.SpringTransactionErrorHandlerDefinitionDeserializer();
+            case "org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition": return new ModelDeserializers.SpringTransactionErrorHandlerDefinitionDeserializer();
             case "static-service-discovery": return new ModelDeserializers.StaticServiceCallServiceDiscoveryConfigurationDeserializer();
             case "staticServiceDiscovery": return new ModelDeserializers.StaticServiceCallServiceDiscoveryConfigurationDeserializer();
             case "org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration": return new ModelDeserializers.StaticServiceCallServiceDiscoveryConfigurationDeserializer();
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
index 55307a6b77e..bfbac83269c 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
@@ -874,6 +874,29 @@
           }
         }
       },
+      "org.apache.camel.model.ErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "dead-letter-channel" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
+          },
+          "default-error-handler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "jta-transaction-error-handler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
+          },
+          "no-error-handler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
+          },
+          "spring-transaction-error-handler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
+          }
+        }
+      },
       "org.apache.camel.model.ExpressionSubElementDefinition" : {
         "type" : "object",
         "properties" : {
@@ -2026,6 +2049,9 @@
           "exchange-formatter-ref" : {
             "type" : "string"
           },
+          "id" : {
+            "type" : "string"
+          },
           "log-continued" : {
             "type" : "boolean"
           },
@@ -5724,6 +5750,233 @@
           }
         }
       },
+      "org.apache.camel.model.errorhandler.DeadLetterChannelDefinition" : {
+        "oneOf" : [ {
+          "type" : "string"
+        }, {
+          "type" : "object",
+          "properties" : {
+            "dead-letter-handle-new-exception" : {
+              "type" : "boolean"
+            },
+            "dead-letter-uri" : {
+              "type" : "string"
+            },
+            "executor-service-ref" : {
+              "type" : "string"
+            },
+            "id" : {
+              "type" : "string"
+            },
+            "level" : {
+              "type" : "string",
+              "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+            },
+            "log-name" : {
+              "type" : "string"
+            },
+            "logger-ref" : {
+              "type" : "string"
+            },
+            "on-exception-occurred-ref" : {
+              "type" : "string"
+            },
+            "on-prepare-failure-ref" : {
+              "type" : "string"
+            },
+            "on-redelivery-ref" : {
+              "type" : "string"
+            },
+            "redelivery-policy" : {
+              "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+            },
+            "redelivery-policy-ref" : {
+              "type" : "string"
+            },
+            "retry-while-ref" : {
+              "type" : "string"
+            },
+            "use-original-body" : {
+              "type" : "boolean"
+            },
+            "use-original-message" : {
+              "type" : "boolean"
+            }
+          }
+        } ],
+        "required" : [ "dead-letter-uri" ]
+      },
+      "org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "executor-service-ref" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "level" : {
+            "type" : "string",
+            "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+          },
+          "log-name" : {
+            "type" : "string"
+          },
+          "logger-ref" : {
+            "type" : "string"
+          },
+          "on-exception-occurred-ref" : {
+            "type" : "string"
+          },
+          "on-prepare-failure-ref" : {
+            "type" : "string"
+          },
+          "on-redelivery-ref" : {
+            "type" : "string"
+          },
+          "redelivery-policy" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+          },
+          "redelivery-policy-ref" : {
+            "type" : "string"
+          },
+          "retry-while-ref" : {
+            "type" : "string"
+          },
+          "use-original-body" : {
+            "type" : "boolean"
+          },
+          "use-original-message" : {
+            "type" : "boolean"
+          }
+        }
+      },
+      "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition" : {
+        "oneOf" : [ {
+          "type" : "string"
+        }, {
+          "type" : "object",
+          "properties" : {
+            "id" : {
+              "type" : "string"
+            },
+            "ref" : {
+              "type" : "string"
+            }
+          }
+        } ],
+        "required" : [ "ref" ]
+      },
+      "org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "executor-service-ref" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "level" : {
+            "type" : "string",
+            "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+          },
+          "log-name" : {
+            "type" : "string"
+          },
+          "logger-ref" : {
+            "type" : "string"
+          },
+          "on-exception-occurred-ref" : {
+            "type" : "string"
+          },
+          "on-prepare-failure-ref" : {
+            "type" : "string"
+          },
+          "on-redelivery-ref" : {
+            "type" : "string"
+          },
+          "redelivery-policy" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+          },
+          "redelivery-policy-ref" : {
+            "type" : "string"
+          },
+          "retry-while-ref" : {
+            "type" : "string"
+          },
+          "rollback-logging-level" : {
+            "type" : "string"
+          },
+          "transacted-policy-ref" : {
+            "type" : "string"
+          },
+          "use-original-body" : {
+            "type" : "boolean"
+          },
+          "use-original-message" : {
+            "type" : "boolean"
+          }
+        }
+      },
+      "org.apache.camel.model.errorhandler.NoErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "id" : {
+            "type" : "string"
+          }
+        }
+      },
+      "org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "executor-service-ref" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "level" : {
+            "type" : "string",
+            "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+          },
+          "log-name" : {
+            "type" : "string"
+          },
+          "logger-ref" : {
+            "type" : "string"
+          },
+          "on-exception-occurred-ref" : {
+            "type" : "string"
+          },
+          "on-prepare-failure-ref" : {
+            "type" : "string"
+          },
+          "on-redelivery-ref" : {
+            "type" : "string"
+          },
+          "redelivery-policy" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+          },
+          "redelivery-policy-ref" : {
+            "type" : "string"
+          },
+          "retry-while-ref" : {
+            "type" : "string"
+          },
+          "rollback-logging-level" : {
+            "type" : "string"
+          },
+          "transacted-policy-ref" : {
+            "type" : "string"
+          },
+          "use-original-body" : {
+            "type" : "boolean"
+          },
+          "use-original-message" : {
+            "type" : "boolean"
+          }
+        }
+      },
       "org.apache.camel.model.language.CSimpleExpression" : {
         "oneOf" : [ {
           "type" : "string"
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
index 2e8efc36b90..88c780667bb 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
@@ -781,6 +781,29 @@
           }
         }
       },
+      "org.apache.camel.model.ErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "deadLetterChannel" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
+          },
+          "defaultErrorHandler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "jtaTransactionErrorHandler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
+          },
+          "noErrorHandler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
+          },
+          "springTransactionErrorHandler" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
+          }
+        }
+      },
       "org.apache.camel.model.ExpressionSubElementDefinition" : {
         "type" : "object",
         "properties" : {
@@ -1930,6 +1953,9 @@
           "exchangeFormatterRef" : {
             "type" : "string"
           },
+          "id" : {
+            "type" : "string"
+          },
           "logContinued" : {
             "type" : "boolean"
           },
@@ -5628,6 +5654,233 @@
           }
         }
       },
+      "org.apache.camel.model.errorhandler.DeadLetterChannelDefinition" : {
+        "oneOf" : [ {
+          "type" : "string"
+        }, {
+          "type" : "object",
+          "properties" : {
+            "deadLetterHandleNewException" : {
+              "type" : "boolean"
+            },
+            "deadLetterUri" : {
+              "type" : "string"
+            },
+            "executorServiceRef" : {
+              "type" : "string"
+            },
+            "id" : {
+              "type" : "string"
+            },
+            "level" : {
+              "type" : "string",
+              "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+            },
+            "logName" : {
+              "type" : "string"
+            },
+            "loggerRef" : {
+              "type" : "string"
+            },
+            "onExceptionOccurredRef" : {
+              "type" : "string"
+            },
+            "onPrepareFailureRef" : {
+              "type" : "string"
+            },
+            "onRedeliveryRef" : {
+              "type" : "string"
+            },
+            "redeliveryPolicy" : {
+              "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+            },
+            "redeliveryPolicyRef" : {
+              "type" : "string"
+            },
+            "retryWhileRef" : {
+              "type" : "string"
+            },
+            "useOriginalBody" : {
+              "type" : "boolean"
+            },
+            "useOriginalMessage" : {
+              "type" : "boolean"
+            }
+          }
+        } ],
+        "required" : [ "deadLetterUri" ]
+      },
+      "org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "executorServiceRef" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "level" : {
+            "type" : "string",
+            "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+          },
+          "logName" : {
+            "type" : "string"
+          },
+          "loggerRef" : {
+            "type" : "string"
+          },
+          "onExceptionOccurredRef" : {
+            "type" : "string"
+          },
+          "onPrepareFailureRef" : {
+            "type" : "string"
+          },
+          "onRedeliveryRef" : {
+            "type" : "string"
+          },
+          "redeliveryPolicy" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+          },
+          "redeliveryPolicyRef" : {
+            "type" : "string"
+          },
+          "retryWhileRef" : {
+            "type" : "string"
+          },
+          "useOriginalBody" : {
+            "type" : "boolean"
+          },
+          "useOriginalMessage" : {
+            "type" : "boolean"
+          }
+        }
+      },
+      "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition" : {
+        "oneOf" : [ {
+          "type" : "string"
+        }, {
+          "type" : "object",
+          "properties" : {
+            "id" : {
+              "type" : "string"
+            },
+            "ref" : {
+              "type" : "string"
+            }
+          }
+        } ],
+        "required" : [ "ref" ]
+      },
+      "org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "executorServiceRef" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "level" : {
+            "type" : "string",
+            "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+          },
+          "logName" : {
+            "type" : "string"
+          },
+          "loggerRef" : {
+            "type" : "string"
+          },
+          "onExceptionOccurredRef" : {
+            "type" : "string"
+          },
+          "onPrepareFailureRef" : {
+            "type" : "string"
+          },
+          "onRedeliveryRef" : {
+            "type" : "string"
+          },
+          "redeliveryPolicy" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+          },
+          "redeliveryPolicyRef" : {
+            "type" : "string"
+          },
+          "retryWhileRef" : {
+            "type" : "string"
+          },
+          "rollbackLoggingLevel" : {
+            "type" : "string"
+          },
+          "transactedPolicyRef" : {
+            "type" : "string"
+          },
+          "useOriginalBody" : {
+            "type" : "boolean"
+          },
+          "useOriginalMessage" : {
+            "type" : "boolean"
+          }
+        }
+      },
+      "org.apache.camel.model.errorhandler.NoErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "id" : {
+            "type" : "string"
+          }
+        }
+      },
+      "org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition" : {
+        "type" : "object",
+        "properties" : {
+          "executorServiceRef" : {
+            "type" : "string"
+          },
+          "id" : {
+            "type" : "string"
+          },
+          "level" : {
+            "type" : "string",
+            "enum" : [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ]
+          },
+          "logName" : {
+            "type" : "string"
+          },
+          "loggerRef" : {
+            "type" : "string"
+          },
+          "onExceptionOccurredRef" : {
+            "type" : "string"
+          },
+          "onPrepareFailureRef" : {
+            "type" : "string"
+          },
+          "onRedeliveryRef" : {
+            "type" : "string"
+          },
+          "redeliveryPolicy" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.RedeliveryPolicyDefinition"
+          },
+          "redeliveryPolicyRef" : {
+            "type" : "string"
+          },
+          "retryWhileRef" : {
+            "type" : "string"
+          },
+          "rollbackLoggingLevel" : {
+            "type" : "string"
+          },
+          "transactedPolicyRef" : {
+            "type" : "string"
+          },
+          "useOriginalBody" : {
+            "type" : "boolean"
+          },
+          "useOriginalMessage" : {
+            "type" : "boolean"
+          }
+        }
+      },
       "org.apache.camel.model.language.CSimpleExpression" : {
         "oneOf" : [ {
           "type" : "string"
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
index 1849c7c9a63..6e965242975 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
@@ -29,13 +29,10 @@ import java.util.Set;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.api.management.ManagedResource;
-import org.apache.camel.builder.DeadLetterChannelBuilder;
-import org.apache.camel.builder.DefaultErrorHandlerBuilder;
-import org.apache.camel.builder.ErrorHandlerBuilder;
-import org.apache.camel.builder.NoErrorHandlerBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.builder.RouteConfigurationBuilder;
 import org.apache.camel.component.properties.PropertiesLocation;
@@ -52,7 +49,9 @@ import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RouteTemplateDefinition;
 import org.apache.camel.model.TemplatedRouteDefinition;
 import org.apache.camel.model.ToDefinition;
-import org.apache.camel.model.errorhandler.DefaultErrorHandlerProperties;
+import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
+import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
 import org.apache.camel.model.rest.RestConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.VerbDefinition;
@@ -171,12 +170,12 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
                     CamelContextAware.trySetCamelContext(getRouteCollection(), getCamelContext());
                     getRouteCollection().getOnExceptions().add((OnExceptionDefinition) item);
                     return true;
-                } else if (item instanceof ErrorHandlerBuilder) {
+                } else if (item instanceof ErrorHandlerFactory) {
                     if (!getRouteCollection().getRoutes().isEmpty()) {
                         throw new IllegalArgumentException(
                                 "errorHandler must be defined before any routes in the RouteBuilder");
                     }
-                    errorHandler((ErrorHandlerBuilder) item);
+                    errorHandler((ErrorHandlerFactory) item);
                     return true;
                 } else if (item instanceof RouteTemplateDefinition) {
                     CamelContextAware.trySetCamelContext(getRouteTemplateCollection(), getCamelContext());
@@ -573,23 +572,23 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
                 NodeTuple nt = errorHandler.getValue().get(0);
                 String ehName = asText(nt.getKeyNode());
 
-                DefaultErrorHandlerProperties ehb = null;
+                ErrorHandlerFactory ehf = null;
                 if ("sink".equals(ehName)) {
                     // a sink is a dead letter queue
-                    DeadLetterChannelBuilder dlch = new DeadLetterChannelBuilder();
+                    DeadLetterChannelDefinition dlcd = new DeadLetterChannelDefinition();
                     MappingNode endpoint = asMappingNode(nodeAt(nt.getValueNode(), "/endpoint"));
                     String dlq = extractCamelEndpointUri(endpoint);
-                    dlch.setDeadLetterUri(dlq);
-                    ehb = dlch;
+                    dlcd.setDeadLetterUri(dlq);
+                    ehf = dlcd;
                 } else if ("log".equals(ehName)) {
                     // log is the default error handler
-                    ehb = new DefaultErrorHandlerBuilder();
+                    ehf = new DefaultErrorHandlerDefinition();
                 } else if ("none".equals(ehName)) {
-                    route.errorHandler(new NoErrorHandlerBuilder());
+                    route.errorHandler(new NoErrorHandlerDefinition());
                 }
 
                 // some error handlers support additional parameters
-                if (ehb != null) {
+                if (ehf != null) {
                     // properties that are general for all kind of error handlers
                     MappingNode prop = asMappingNode(nodeAt(nt.getValueNode(), "/parameters"));
                     Map<String, Object> params = asMap(prop);
@@ -599,11 +598,11 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
                                 .withFluentBuilder(true)
                                 .withRemoveParameters(true)
                                 .withCamelContext(getCamelContext())
-                                .withTarget(ehb)
+                                .withTarget(ehf)
                                 .withProperties(params)
                                 .bind();
                     }
-                    route.errorHandler(ehb);
+                    route.errorHandler(ehf);
                 }
             }
 
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy
index 177828f2712..a4c4a97ae64 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderTest.groovy
@@ -18,13 +18,13 @@ package org.apache.camel.dsl.yaml
 
 import org.apache.camel.Exchange
 import org.apache.camel.Processor
-import org.apache.camel.builder.DeadLetterChannelBuilder
-import org.apache.camel.builder.DefaultErrorHandlerBuilder
-import org.apache.camel.builder.NoErrorHandlerBuilder
 import org.apache.camel.component.mock.MockEndpoint
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.KameletDefinition
 import org.apache.camel.model.ToDefinition
+import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition
+import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition
+import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition
 
 class KameletBindingLoaderTest extends YamlTestSupport {
     @Override
@@ -351,11 +351,11 @@ class KameletBindingLoaderTest extends YamlTestSupport {
 
         with (context.routeDefinitions[0]) {
             errorHandlerFactory != null
-            errorHandlerFactory instanceof DeadLetterChannelBuilder
-            var eh = errorHandlerFactory as DeadLetterChannelBuilder
+            errorHandlerFactory instanceof DeadLetterChannelDefinition
+            var eh = errorHandlerFactory as DeadLetterChannelDefinition
             eh.deadLetterUri == 'kamelet:error-handler?kafkaTopic=my-first-test&logMessage=ERROR%21&kafkaServiceAccountId=scott&kafkaBrokers=my-broker&kafkaServiceAccountSecret=tiger'
-            eh.redeliveryPolicy.maximumRedeliveries == 1
-            eh.redeliveryPolicy.redeliveryDelay == 2000
+            eh.redeliveryPolicy.maximumRedeliveries == "1"
+            eh.redeliveryPolicy.redeliveryDelay == "2000"
             routeId == 'timer-event-source'
             input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
             outputs.size() == 1
@@ -413,11 +413,11 @@ class KameletBindingLoaderTest extends YamlTestSupport {
 
         with (context.routeDefinitions[0]) {
             errorHandlerFactory != null
-            errorHandlerFactory instanceof DeadLetterChannelBuilder
-            var eh = errorHandlerFactory as DeadLetterChannelBuilder
+            errorHandlerFactory instanceof DeadLetterChannelDefinition
+            var eh = errorHandlerFactory as DeadLetterChannelDefinition
             eh.deadLetterUri == 'mock:dead'
-            eh.redeliveryPolicy.maximumRedeliveries == 3
-            eh.redeliveryPolicy.redeliveryDelay == 100
+            eh.redeliveryPolicy.maximumRedeliveries == "3"
+            eh.redeliveryPolicy.redeliveryDelay == "100"
         }
     }
 
@@ -457,11 +457,11 @@ class KameletBindingLoaderTest extends YamlTestSupport {
 
         with (context.routeDefinitions[0]) {
             errorHandlerFactory != null
-            errorHandlerFactory instanceof DefaultErrorHandlerBuilder
-            var eh = errorHandlerFactory as DefaultErrorHandlerBuilder
-            eh.redeliveryPolicy.maximumRedeliveries == 1
-            eh.redeliveryPolicy.redeliveryDelay == 2000
-            eh.isUseOriginalMessage() == true
+            errorHandlerFactory instanceof DefaultErrorHandlerDefinition
+            var eh = errorHandlerFactory as DefaultErrorHandlerDefinition
+            eh.redeliveryPolicy.maximumRedeliveries == "1"
+            eh.redeliveryPolicy.redeliveryDelay == "2000"
+            eh.getUseOriginalMessage() == "true"
             routeId == 'timer-event-source'
             input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
             outputs.size() == 1
@@ -503,7 +503,7 @@ class KameletBindingLoaderTest extends YamlTestSupport {
 
         with (context.routeDefinitions[0]) {
             errorHandlerFactory != null
-            errorHandlerFactory instanceof NoErrorHandlerBuilder
+            errorHandlerFactory instanceof NoErrorHandlerDefinition
             routeId == 'timer-event-source'
             input.endpointUri == 'kamelet:timer-source?message=Hello+world%21'
             outputs.size() == 1


[camel] 03/03: CAMEL-16834: error handler in model DSL. WIP

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 2600f5cb3bfb610fc79f086edc63b1ee991b6086
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Apr 7 12:35:49 2022 +0200

    CAMEL-16834: error handler in model DSL. WIP
---
 .../dsl/yaml/deserializers/ModelDeserializers.java | 245 ---------------------
 .../deserializers/ModelDeserializersResolver.java  |   4 -
 .../dsl/yaml/GenerateYamlDeserializersMojo.java    |  29 +--
 .../src/generated/resources/camel-yaml-dsl.json    |  86 --------
 .../src/generated/resources/camelYamlDsl.json      |  86 --------
 5 files changed, 5 insertions(+), 445 deletions(-)

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 164793b45b9..1d72cbbbe41 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
@@ -6,10 +6,6 @@ import java.lang.Override;
 import java.lang.String;
 import java.util.Map;
 import org.apache.camel.CamelContext;
-import org.apache.camel.builder.DeadLetterChannelBuilder;
-import org.apache.camel.builder.DefaultErrorHandlerBuilder;
-import org.apache.camel.builder.ErrorHandlerBuilderRef;
-import org.apache.camel.builder.NoErrorHandlerBuilder;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerBase;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerEndpointAwareBase;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerSupport;
@@ -3831,100 +3827,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            inline = true,
-            types = org.apache.camel.builder.DeadLetterChannelBuilder.class,
-            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            properties = {
-                    @YamlProperty(name = "async-delayed-redelivery", type = "boolean"),
-                    @YamlProperty(name = "dead-letter-handle-new-exception", type = "boolean"),
-                    @YamlProperty(name = "dead-letter-uri", type = "string"),
-                    @YamlProperty(name = "executor-service-ref", type = "string"),
-                    @YamlProperty(name = "on-exception-occurred-ref", type = "string"),
-                    @YamlProperty(name = "on-prepare-failure-ref", type = "string"),
-                    @YamlProperty(name = "on-redelivery-ref", type = "string"),
-                    @YamlProperty(name = "retry-while-ref", type = "string"),
-                    @YamlProperty(name = "use-original-body", type = "boolean"),
-                    @YamlProperty(name = "use-original-message", type = "boolean")
-            }
-    )
-    public static class DeadLetterChannelBuilderDeserializer extends YamlDeserializerBase<DeadLetterChannelBuilder> {
-        public DeadLetterChannelBuilderDeserializer() {
-            super(DeadLetterChannelBuilder.class);
-        }
-
-        @Override
-        protected DeadLetterChannelBuilder newInstance() {
-            return new DeadLetterChannelBuilder();
-        }
-
-        @Override
-        protected DeadLetterChannelBuilder newInstance(String value) {
-            return new DeadLetterChannelBuilder(value);
-        }
-
-        @Override
-        protected boolean setProperty(DeadLetterChannelBuilder target, String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "async-delayed-redelivery": {
-                    boolean val = asBoolean(node);
-                    target.setAsyncDelayedRedelivery(val);
-                    break;
-                }
-                case "dead-letter-handle-new-exception": {
-                    boolean val = asBoolean(node);
-                    target.setDeadLetterHandleNewException(val);
-                    break;
-                }
-                case "dead-letter-uri": {
-                    String val = asText(node);
-                    target.setDeadLetterUri(val);
-                    break;
-                }
-                case "executor-service-ref": {
-                    String val = asText(node);
-                    target.setExecutorServiceRef(val);
-                    break;
-                }
-                case "on-exception-occurred-ref": {
-                    String val = asText(node);
-                    target.setOnExceptionOccurredRef(val);
-                    break;
-                }
-                case "on-prepare-failure-ref": {
-                    String val = asText(node);
-                    target.setOnPrepareFailureRef(val);
-                    break;
-                }
-                case "on-redelivery-ref": {
-                    String val = asText(node);
-                    target.setOnRedeliveryRef(val);
-                    break;
-                }
-                case "retry-while-ref": {
-                    String val = asText(node);
-                    target.setRetryWhileRef(val);
-                    break;
-                }
-                case "use-original-body": {
-                    boolean val = asBoolean(node);
-                    target.setUseOriginalBody(val);
-                    break;
-                }
-                case "use-original-message": {
-                    boolean val = asBoolean(node);
-                    target.setUseOriginalMessage(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
     @YamlType(
             inline = true,
             types = org.apache.camel.model.errorhandler.DeadLetterChannelDefinition.class,
@@ -4052,82 +3954,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            types = org.apache.camel.builder.DefaultErrorHandlerBuilder.class,
-            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            properties = {
-                    @YamlProperty(name = "async-delayed-redelivery", type = "boolean"),
-                    @YamlProperty(name = "executor-service-ref", type = "string"),
-                    @YamlProperty(name = "on-exception-occurred-ref", type = "string"),
-                    @YamlProperty(name = "on-prepare-failure-ref", type = "string"),
-                    @YamlProperty(name = "on-redelivery-ref", type = "string"),
-                    @YamlProperty(name = "retry-while-ref", type = "string"),
-                    @YamlProperty(name = "use-original-body", type = "boolean"),
-                    @YamlProperty(name = "use-original-message", type = "boolean")
-            }
-    )
-    public static class DefaultErrorHandlerBuilderDeserializer extends YamlDeserializerBase<DefaultErrorHandlerBuilder> {
-        public DefaultErrorHandlerBuilderDeserializer() {
-            super(DefaultErrorHandlerBuilder.class);
-        }
-
-        @Override
-        protected DefaultErrorHandlerBuilder newInstance() {
-            return new DefaultErrorHandlerBuilder();
-        }
-
-        @Override
-        protected boolean setProperty(DefaultErrorHandlerBuilder target, String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "async-delayed-redelivery": {
-                    boolean val = asBoolean(node);
-                    target.setAsyncDelayedRedelivery(val);
-                    break;
-                }
-                case "executor-service-ref": {
-                    String val = asText(node);
-                    target.setExecutorServiceRef(val);
-                    break;
-                }
-                case "on-exception-occurred-ref": {
-                    String val = asText(node);
-                    target.setOnExceptionOccurredRef(val);
-                    break;
-                }
-                case "on-prepare-failure-ref": {
-                    String val = asText(node);
-                    target.setOnPrepareFailureRef(val);
-                    break;
-                }
-                case "on-redelivery-ref": {
-                    String val = asText(node);
-                    target.setOnRedeliveryRef(val);
-                    break;
-                }
-                case "retry-while-ref": {
-                    String val = asText(node);
-                    target.setRetryWhileRef(val);
-                    break;
-                }
-                case "use-original-body": {
-                    boolean val = asBoolean(node);
-                    target.setUseOriginalBody(val);
-                    break;
-                }
-                case "use-original-message": {
-                    boolean val = asBoolean(node);
-                    target.setUseOriginalMessage(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
     @YamlType(
             types = org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -4895,52 +4721,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            inline = true,
-            types = org.apache.camel.builder.ErrorHandlerBuilderRef.class,
-            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            properties = {
-                    @YamlProperty(name = "ref", type = "string"),
-                    @YamlProperty(name = "support-transacted", type = "boolean")
-            }
-    )
-    public static class ErrorHandlerBuilderRefDeserializer extends YamlDeserializerBase<ErrorHandlerBuilderRef> {
-        public ErrorHandlerBuilderRefDeserializer() {
-            super(ErrorHandlerBuilderRef.class);
-        }
-
-        @Override
-        protected ErrorHandlerBuilderRef newInstance() {
-            return new ErrorHandlerBuilderRef();
-        }
-
-        @Override
-        protected ErrorHandlerBuilderRef newInstance(String value) {
-            return new ErrorHandlerBuilderRef(value);
-        }
-
-        @Override
-        protected boolean setProperty(ErrorHandlerBuilderRef target, String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "ref": {
-                    String val = asText(node);
-                    target.setRef(val);
-                    break;
-                }
-                case "support-transacted": {
-                    boolean val = asBoolean(node);
-                    target.setSupportTransacted(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
     @YamlType(
             types = org.apache.camel.model.ErrorHandlerDefinition.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
@@ -9081,31 +8861,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            types = org.apache.camel.builder.NoErrorHandlerBuilder.class,
-            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1
-    )
-    public static class NoErrorHandlerBuilderDeserializer extends YamlDeserializerBase<NoErrorHandlerBuilder> {
-        public NoErrorHandlerBuilderDeserializer() {
-            super(NoErrorHandlerBuilder.class);
-        }
-
-        @Override
-        protected NoErrorHandlerBuilder newInstance() {
-            return new NoErrorHandlerBuilder();
-        }
-
-        @Override
-        protected boolean setProperty(NoErrorHandlerBuilder target, String propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                default: {
-                    return false;
-                }
-            }
-        }
-    }
-
     @YamlType(
             types = org.apache.camel.model.errorhandler.NoErrorHandlerDefinition.class,
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
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 af3d0ca1d18..90f6fe2e9f9 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
@@ -103,11 +103,9 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.dataformat.DataFormatsDefinition": return new ModelDeserializers.DataFormatsDefinitionDeserializer();
             case "datasonnet": return new ModelDeserializers.DatasonnetExpressionDeserializer();
             case "org.apache.camel.model.language.DatasonnetExpression": return new ModelDeserializers.DatasonnetExpressionDeserializer();
-            case "org.apache.camel.builder.DeadLetterChannelBuilder": return new ModelDeserializers.DeadLetterChannelBuilderDeserializer();
             case "dead-letter-channel": return new ModelDeserializers.DeadLetterChannelDefinitionDeserializer();
             case "deadLetterChannel": return new ModelDeserializers.DeadLetterChannelDefinitionDeserializer();
             case "org.apache.camel.model.errorhandler.DeadLetterChannelDefinition": return new ModelDeserializers.DeadLetterChannelDefinitionDeserializer();
-            case "org.apache.camel.builder.DefaultErrorHandlerBuilder": return new ModelDeserializers.DefaultErrorHandlerBuilderDeserializer();
             case "default-error-handler": return new ModelDeserializers.DefaultErrorHandlerDefinitionDeserializer();
             case "defaultErrorHandler": return new ModelDeserializers.DefaultErrorHandlerDefinitionDeserializer();
             case "org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition": return new ModelDeserializers.DefaultErrorHandlerDefinitionDeserializer();
@@ -130,7 +128,6 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.validator.EndpointValidatorDefinition": return new ModelDeserializers.EndpointValidatorDefinitionDeserializer();
             case "enrich": return new ModelDeserializers.EnrichDefinitionDeserializer();
             case "org.apache.camel.model.EnrichDefinition": return new ModelDeserializers.EnrichDefinitionDeserializer();
-            case "org.apache.camel.builder.ErrorHandlerBuilderRef": return new ModelDeserializers.ErrorHandlerBuilderRefDeserializer();
             case "error-handler": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
             case "errorHandler": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
             case "org.apache.camel.model.ErrorHandlerDefinition": return new ModelDeserializers.ErrorHandlerDefinitionDeserializer();
@@ -254,7 +251,6 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.rest.MutualTLSDefinition": return new ModelDeserializers.MutualTLSDefinitionDeserializer();
             case "mvel": return new ModelDeserializers.MvelExpressionDeserializer();
             case "org.apache.camel.model.language.MvelExpression": return new ModelDeserializers.MvelExpressionDeserializer();
-            case "org.apache.camel.builder.NoErrorHandlerBuilder": return new ModelDeserializers.NoErrorHandlerBuilderDeserializer();
             case "no-error-handler": return new ModelDeserializers.NoErrorHandlerDefinitionDeserializer();
             case "noErrorHandler": return new ModelDeserializers.NoErrorHandlerDefinitionDeserializer();
             case "org.apache.camel.model.errorhandler.NoErrorHandlerDefinition": return new ModelDeserializers.NoErrorHandlerDefinitionDeserializer();
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
index 086d3a9c48d..e1d14cab14f 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
@@ -305,7 +305,8 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
         all()
             .filter(ci -> {
                 return !ci.name().equals(EXPRESSION_DEFINITION_CLASS)
-                    && !ci.name().equals(EXPRESSION_SUBELEMENT_DEFINITION_CLASS);
+                    && !ci.name().equals(EXPRESSION_SUBELEMENT_DEFINITION_CLASS)
+                    && !implementType(ci, ERROR_HANDLER_BUILDER_CLASS);
             })
             .map(this::generateParser)
             .sorted(Comparator.comparing(o -> o.type.name))
@@ -437,29 +438,9 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
         CodeBlock.Builder setProperty = CodeBlock.builder();
         setProperty.beginControlFlow("switch(propertyKey)");
 
-        if (implementType(info, ERROR_HANDLER_BUILDER_CLASS)) {
-            List<MethodInfo> methods = methods(info).stream()
-                .filter(mi -> java.lang.reflect.Modifier.isPublic(mi.flags()))
-                .filter(mi -> mi.name().matches("^set[1-9A-Z].*$"))
-                .filter(mi -> mi.parameters().size() == 1)
-                .filter(mi -> PRIMITIVE_CLASSES.contains(mi.parameters().get(0).name().toString()))
-                .filter(mi -> mi.returnType().kind() == Type.Kind.VOID)
-                .filter(mi -> acceptErrorHandlerBuilderMethod(info, mi))
-                .collect(Collectors.toList());
-
-            // error handler is special so we need to filter out specific methods which we should not include
-
-
-            for (MethodInfo method : methods) {
-                if (generateSetValue(setProperty, method, properties)) {
-                    caseAdded = true;
-                }
-            }
-        } else {
-            for (FieldInfo field : fields(info)) {
-                if (generateSetValue(setProperty, field, properties)) {
-                    caseAdded = true;
-                }
+        for (FieldInfo field : fields(info)) {
+            if (generateSetValue(setProperty, field, properties)) {
+                caseAdded = true;
             }
         }
 
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
index 6b5367b3b48..3d65021207c 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
@@ -298,92 +298,6 @@
           }
         }
       },
-      "org.apache.camel.builder.DeadLetterChannelBuilder" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "async-delayed-redelivery" : {
-              "type" : "boolean"
-            },
-            "dead-letter-handle-new-exception" : {
-              "type" : "boolean"
-            },
-            "dead-letter-uri" : {
-              "type" : "string"
-            },
-            "executor-service-ref" : {
-              "type" : "string"
-            },
-            "on-exception-occurred-ref" : {
-              "type" : "string"
-            },
-            "on-prepare-failure-ref" : {
-              "type" : "string"
-            },
-            "on-redelivery-ref" : {
-              "type" : "string"
-            },
-            "retry-while-ref" : {
-              "type" : "string"
-            },
-            "use-original-body" : {
-              "type" : "boolean"
-            },
-            "use-original-message" : {
-              "type" : "boolean"
-            }
-          }
-        } ]
-      },
-      "org.apache.camel.builder.DefaultErrorHandlerBuilder" : {
-        "type" : "object",
-        "properties" : {
-          "async-delayed-redelivery" : {
-            "type" : "boolean"
-          },
-          "executor-service-ref" : {
-            "type" : "string"
-          },
-          "on-exception-occurred-ref" : {
-            "type" : "string"
-          },
-          "on-prepare-failure-ref" : {
-            "type" : "string"
-          },
-          "on-redelivery-ref" : {
-            "type" : "string"
-          },
-          "retry-while-ref" : {
-            "type" : "string"
-          },
-          "use-original-body" : {
-            "type" : "boolean"
-          },
-          "use-original-message" : {
-            "type" : "boolean"
-          }
-        }
-      },
-      "org.apache.camel.builder.ErrorHandlerBuilderRef" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "ref" : {
-              "type" : "string"
-            },
-            "support-transacted" : {
-              "type" : "boolean"
-            }
-          }
-        } ]
-      },
-      "org.apache.camel.builder.NoErrorHandlerBuilder" : {
-        "type" : "object"
-      },
       "org.apache.camel.dsl.yaml.deserializers.BeansDeserializer" : {
         "type" : "array",
         "items" : {
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
index 329836579be..9aaa857d365 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
@@ -205,92 +205,6 @@
           }
         }
       },
-      "org.apache.camel.builder.DeadLetterChannelBuilder" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "asyncDelayedRedelivery" : {
-              "type" : "boolean"
-            },
-            "deadLetterHandleNewException" : {
-              "type" : "boolean"
-            },
-            "deadLetterUri" : {
-              "type" : "string"
-            },
-            "executorServiceRef" : {
-              "type" : "string"
-            },
-            "onExceptionOccurredRef" : {
-              "type" : "string"
-            },
-            "onPrepareFailureRef" : {
-              "type" : "string"
-            },
-            "onRedeliveryRef" : {
-              "type" : "string"
-            },
-            "retryWhileRef" : {
-              "type" : "string"
-            },
-            "useOriginalBody" : {
-              "type" : "boolean"
-            },
-            "useOriginalMessage" : {
-              "type" : "boolean"
-            }
-          }
-        } ]
-      },
-      "org.apache.camel.builder.DefaultErrorHandlerBuilder" : {
-        "type" : "object",
-        "properties" : {
-          "asyncDelayedRedelivery" : {
-            "type" : "boolean"
-          },
-          "executorServiceRef" : {
-            "type" : "string"
-          },
-          "onExceptionOccurredRef" : {
-            "type" : "string"
-          },
-          "onPrepareFailureRef" : {
-            "type" : "string"
-          },
-          "onRedeliveryRef" : {
-            "type" : "string"
-          },
-          "retryWhileRef" : {
-            "type" : "string"
-          },
-          "useOriginalBody" : {
-            "type" : "boolean"
-          },
-          "useOriginalMessage" : {
-            "type" : "boolean"
-          }
-        }
-      },
-      "org.apache.camel.builder.ErrorHandlerBuilderRef" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "ref" : {
-              "type" : "string"
-            },
-            "supportTransacted" : {
-              "type" : "boolean"
-            }
-          }
-        } ]
-      },
-      "org.apache.camel.builder.NoErrorHandlerBuilder" : {
-        "type" : "object"
-      },
       "org.apache.camel.dsl.yaml.deserializers.BeansDeserializer" : {
         "type" : "array",
         "items" : {


[camel] 02/03: CAMEL-16834: error handler in model DSL. WIP

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c5ab200f22efd942760b8262f3b69c7c399f196f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Apr 7 12:23:29 2022 +0200

    CAMEL-16834: error handler in model DSL. WIP
---
 .../ErrorHandlerBuilderDeserializer.java           | 29 +++++-----
 .../src/generated/resources/camel-yaml-dsl.json    | 65 +++++++++++-----------
 .../src/generated/resources/camelYamlDsl.json      | 59 ++++++++++----------
 .../apache/camel/dsl/yaml/ErrorHandlerTest.groovy  | 20 +++----
 4 files changed, 86 insertions(+), 87 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 9a03732b99a..c52fdaf279d 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
@@ -17,16 +17,16 @@
 package org.apache.camel.dsl.yaml.deserializers;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.ExtendedCamelContext;
-import org.apache.camel.builder.DeadLetterChannelBuilder;
-import org.apache.camel.builder.DefaultErrorHandlerBuilder;
-import org.apache.camel.builder.ErrorHandlerBuilder;
-import org.apache.camel.builder.ErrorHandlerBuilderRef;
-import org.apache.camel.builder.NoErrorHandlerBuilder;
 import org.apache.camel.dsl.yaml.common.YamlDeserializationContext;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerResolver;
 import org.apache.camel.dsl.yaml.common.exception.UnsupportedFieldException;
 import org.apache.camel.dsl.yaml.common.exception.YamlDeserializationException;
+import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition;
+import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
 import org.apache.camel.spi.CamelContextCustomizer;
 import org.apache.camel.spi.annotations.YamlIn;
 import org.apache.camel.spi.annotations.YamlProperty;
@@ -45,18 +45,19 @@ import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.setDeseri
 @YamlIn
 @YamlType(
           nodes = { "error-handler", "errorHandler" },
-          types = ErrorHandlerBuilderRef.class,
+          types = ErrorHandlerRefDefinition.class,
           order = YamlDeserializerResolver.ORDER_DEFAULT,
           properties = {
                   @YamlProperty(name = "ref", type = "string"),
-                  @YamlProperty(name = "none", type = "object:org.apache.camel.builder.NoErrorHandlerBuilder"),
-                  @YamlProperty(name = "log", type = "object:org.apache.camel.builder.DefaultErrorHandlerBuilder"),
+                  @YamlProperty(name = "none", type = "object:org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"),
+                  @YamlProperty(name = "log",
+                                type = "object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"),
                   @YamlProperty(name = "dead-letter-channel",
-                                type = "object:org.apache.camel.builder.DeadLetterChannelBuilder"),
+                                type = "object:org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"),
           })
 public class ErrorHandlerBuilderDeserializer implements ConstructNode {
 
-    private static CamelContextCustomizer customizer(ErrorHandlerBuilder builder) {
+    private static CamelContextCustomizer customizer(ErrorHandlerFactory builder) {
         return new CamelContextCustomizer() {
             @Override
             public void configure(CamelContext camelContext) {
@@ -78,13 +79,13 @@ public class ErrorHandlerBuilderDeserializer implements ConstructNode {
 
             switch (key) {
                 case "ref":
-                    return customizer(asType(val, ErrorHandlerBuilderRef.class));
+                    return customizer(asType(val, ErrorHandlerRefDefinition.class));
                 case "none":
-                    return customizer(asType(val, NoErrorHandlerBuilder.class));
+                    return customizer(asType(val, NoErrorHandlerDefinition.class));
                 case "dead-letter-channel":
-                    return customizer(asType(val, DeadLetterChannelBuilder.class));
+                    return customizer(asType(val, DeadLetterChannelDefinition.class));
                 case "log":
-                    return customizer(asType(val, DefaultErrorHandlerBuilder.class));
+                    return customizer(asType(val, DefaultErrorHandlerDefinition.class));
                 default:
                     throw new UnsupportedFieldException(val, key);
             }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
index bfbac83269c..6b5367b3b48 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
@@ -367,21 +367,19 @@
         }
       },
       "org.apache.camel.builder.ErrorHandlerBuilderRef" : {
-        "type" : "object",
-        "properties" : {
-          "dead-letter-channel" : {
-            "$ref" : "#/items/definitions/org.apache.camel.builder.DeadLetterChannelBuilder"
-          },
-          "log" : {
-            "$ref" : "#/items/definitions/org.apache.camel.builder.DefaultErrorHandlerBuilder"
-          },
-          "none" : {
-            "$ref" : "#/items/definitions/org.apache.camel.builder.NoErrorHandlerBuilder"
-          },
-          "ref" : {
-            "type" : "string"
+        "oneOf" : [ {
+          "type" : "string"
+        }, {
+          "type" : "object",
+          "properties" : {
+            "ref" : {
+              "type" : "string"
+            },
+            "support-transacted" : {
+              "type" : "boolean"
+            }
           }
-        }
+        } ]
       },
       "org.apache.camel.builder.NoErrorHandlerBuilder" : {
         "type" : "object"
@@ -5852,20 +5850,21 @@
         }
       },
       "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "id" : {
-              "type" : "string"
-            },
-            "ref" : {
-              "type" : "string"
-            }
+        "type" : "object",
+        "properties" : {
+          "dead-letter-channel" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
+          },
+          "log" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
+          },
+          "none" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
+          },
+          "ref" : {
+            "type" : "string"
           }
-        } ],
-        "required" : [ "ref" ]
+        }
       },
       "org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition" : {
         "type" : "object",
@@ -7785,12 +7784,6 @@
       }
     },
     "properties" : {
-      "error-handler" : {
-        "$ref" : "#/items/definitions/org.apache.camel.builder.ErrorHandlerBuilderRef"
-      },
-      "errorHandler" : {
-        "$ref" : "#/items/definitions/org.apache.camel.builder.ErrorHandlerBuilderRef"
-      },
       "beans" : {
         "$ref" : "#/items/definitions/org.apache.camel.dsl.yaml.deserializers.BeansDeserializer"
       },
@@ -7818,6 +7811,12 @@
       "templatedRoute" : {
         "$ref" : "#/items/definitions/org.apache.camel.model.TemplatedRouteDefinition"
       },
+      "error-handler" : {
+        "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+      },
+      "errorHandler" : {
+        "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+      },
       "rest" : {
         "$ref" : "#/items/definitions/org.apache.camel.model.rest.RestDefinition"
       }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
index 88c780667bb..329836579be 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
@@ -274,21 +274,19 @@
         }
       },
       "org.apache.camel.builder.ErrorHandlerBuilderRef" : {
-        "type" : "object",
-        "properties" : {
-          "deadLetterChannel" : {
-            "$ref" : "#/items/definitions/org.apache.camel.builder.DeadLetterChannelBuilder"
-          },
-          "log" : {
-            "$ref" : "#/items/definitions/org.apache.camel.builder.DefaultErrorHandlerBuilder"
-          },
-          "none" : {
-            "$ref" : "#/items/definitions/org.apache.camel.builder.NoErrorHandlerBuilder"
-          },
-          "ref" : {
-            "type" : "string"
+        "oneOf" : [ {
+          "type" : "string"
+        }, {
+          "type" : "object",
+          "properties" : {
+            "ref" : {
+              "type" : "string"
+            },
+            "supportTransacted" : {
+              "type" : "boolean"
+            }
           }
-        }
+        } ]
       },
       "org.apache.camel.builder.NoErrorHandlerBuilder" : {
         "type" : "object"
@@ -5756,20 +5754,21 @@
         }
       },
       "org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition" : {
-        "oneOf" : [ {
-          "type" : "string"
-        }, {
-          "type" : "object",
-          "properties" : {
-            "id" : {
-              "type" : "string"
-            },
-            "ref" : {
-              "type" : "string"
-            }
+        "type" : "object",
+        "properties" : {
+          "deadLetterChannel" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
+          },
+          "log" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
+          },
+          "none" : {
+            "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
+          },
+          "ref" : {
+            "type" : "string"
           }
-        } ],
-        "required" : [ "ref" ]
+        }
       },
       "org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition" : {
         "type" : "object",
@@ -7686,9 +7685,6 @@
       }
     },
     "properties" : {
-      "errorHandler" : {
-        "$ref" : "#/items/definitions/org.apache.camel.builder.ErrorHandlerBuilderRef"
-      },
       "beans" : {
         "$ref" : "#/items/definitions/org.apache.camel.dsl.yaml.deserializers.BeansDeserializer"
       },
@@ -7707,6 +7703,9 @@
       "templatedRoute" : {
         "$ref" : "#/items/definitions/org.apache.camel.model.TemplatedRouteDefinition"
       },
+      "errorHandler" : {
+        "$ref" : "#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+      },
       "rest" : {
         "$ref" : "#/items/definitions/org.apache.camel.model.rest.RestDefinition"
       }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy
index fe392a66cc9..3e288f2ebf1 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ErrorHandlerTest.groovy
@@ -16,13 +16,13 @@
  */
 package org.apache.camel.dsl.yaml
 
-import org.apache.camel.builder.DeadLetterChannelBuilder
-import org.apache.camel.builder.DefaultErrorHandlerBuilder
-import org.apache.camel.builder.ErrorHandlerBuilderRef
-import org.apache.camel.builder.NoErrorHandlerBuilder
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.component.mock.MockEndpoint
 import org.apache.camel.dsl.yaml.support.model.MyFailingProcessor
+import org.apache.camel.model.errorhandler.DeadLetterChannelDefinition
+import org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition
+import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition
+import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition
 
 class ErrorHandlerTest extends YamlTestSupport {
 
@@ -33,7 +33,7 @@ class ErrorHandlerTest extends YamlTestSupport {
                   - name: myFailingProcessor
                     type: ${MyFailingProcessor.name}
                   - name: myErrorHandler
-                    type: org.apache.camel.builder.DeadLetterChannelBuilder
+                    type: org.apache.camel.model.errorhandler.DeadLetterChannelDefinition
                     properties:
                       dead-letter-uri: "mock:on-error"
                       redelivery-delay: 0
@@ -57,7 +57,7 @@ class ErrorHandlerTest extends YamlTestSupport {
                 to('direct:start').withBody('hello').send()
             }
         then:
-            context.errorHandlerFactory instanceof ErrorHandlerBuilderRef
+            context.errorHandlerFactory instanceof ErrorHandlerRefDefinition
             MockEndpoint.assertIsSatisfied(context)
     }
 
@@ -70,7 +70,7 @@ class ErrorHandlerTest extends YamlTestSupport {
         when:
             context.start()
         then:
-            with(context.errorHandlerFactory, ErrorHandlerBuilderRef) {
+            with(context.errorHandlerFactory, ErrorHandlerRefDefinition) {
                 ref == 'myErrorHandler'
             }
     }
@@ -85,7 +85,7 @@ class ErrorHandlerTest extends YamlTestSupport {
         when:
             context.start()
         then:
-            with(context.errorHandlerFactory, DefaultErrorHandlerBuilder) {
+            with(context.errorHandlerFactory, DefaultErrorHandlerDefinition) {
                 useOriginalMessage
             }
     }
@@ -100,7 +100,7 @@ class ErrorHandlerTest extends YamlTestSupport {
         when:
             context.start()
         then:
-            with(context.errorHandlerFactory, DeadLetterChannelBuilder) {
+            with(context.errorHandlerFactory, DeadLetterChannelDefinition) {
                 deadLetterUri == 'mock:on-error'
             }
     }
@@ -114,7 +114,7 @@ class ErrorHandlerTest extends YamlTestSupport {
         when:
             context.start()
         then:
-            context.errorHandlerFactory instanceof NoErrorHandlerBuilder
+            context.errorHandlerFactory instanceof NoErrorHandlerDefinition
     }
 
 }