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

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

commit d55f547233982ace56ee043afc1eb797e3c76076
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Dec 13 11:24:43 2022 +0100

    CAMEL-18748: camel-yaml-dsl - error-handler should be aligned to 
camel-core-model to be consistent.
---
 .../org/apache/camel/catalog/models.properties     |  1 +
 .../camel/catalog/models/refErrorHandler.json      |  8 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  | 22 +++---
 .../org/apache/camel/jta/JtaTransactionPolicy.java |  6 +-
 .../camel/spring/spi/SpringTransactionPolicy.java  |  6 +-
 .../services/org/apache/camel/model.properties     |  2 +-
 .../org/apache/camel/model/errorhandler/jaxb.index |  2 +-
 .../camel/model/errorhandler/refErrorHandler.json  |  8 +-
 .../camel/builder/RefErrorHandlerBuilder.java      |  4 +-
 .../org/apache/camel/builder/RouteBuilder.java     |  4 +-
 .../camel/model/RouteConfigurationDefinition.java  |  4 +-
 .../org/apache/camel/model/RouteDefinition.java    |  8 +-
 .../model/errorhandler/ErrorHandlerHelper.java     | 10 +--
 ...inition.java => RefErrorHandlerDefinition.java} | 12 +--
 .../errorhandler/ErrorHandlerRefReifier.java       |  6 +-
 .../reifier/errorhandler/ErrorHandlerReifier.java  |  4 +-
 .../core/xml/AbstractCamelContextFactoryBean.java  |  4 +-
 .../builder/RouteTemplateErrorHandlerTest.java     |  6 +-
 ...ExceptionErrorHandlerRefIssueTwoRoutesTest.java |  6 +-
 ...HandledRouteScopedErrorHandlerRefIssueTest.java |  4 +-
 ...ceptionRouteScopedErrorHandlerRefIssueTest.java |  4 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  | 18 ++---
 .../dsl/yaml/deserializers/ModelDeserializers.java | 90 +++++++++++-----------
 .../deserializers/ModelDeserializersResolver.java  |  6 +-
 .../ErrorHandlerBuilderDeserializer.java           | 39 +++++++---
 .../generated/resources/schema/camel-yaml-dsl.json | 14 +++-
 .../generated/resources/schema/camelYamlDsl.json   | 14 +++-
 .../apache/camel/dsl/yaml/ErrorHandlerTest.groovy  | 50 +++++++-----
 28 files changed, 199 insertions(+), 163 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
index 7f67f88211a..021211ec614 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
@@ -125,6 +125,7 @@ random
 recipientList
 redeliveryPolicy
 ref
+refErrorHandler
 removeHeader
 removeHeaders
 removeProperties
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/errorHandlerRef.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/refErrorHandler.json
similarity index 75%
rename from 
core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/errorHandlerRef.json
rename to 
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/refErrorHandler.json
index b1cc07bde2a..1ed161c24a1 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/errorHandlerRef.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/refErrorHandler.json
@@ -1,12 +1,12 @@
 {
   "model": {
     "kind": "model",
-    "name": "errorHandlerRef",
-    "title": "Error Handler Ref",
-    "description": "Dead letter channel error handler.",
+    "name": "refErrorHandler",
+    "title": "Ref Error Handler",
+    "description": "References to an existing or custom error handler.",
     "deprecated": false,
     "label": "configuration,error",
-    "javaType": 
"org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition",
+    "javaType": 
"org.apache.camel.model.errorhandler.RefErrorHandlerDefinition",
     "abstract": false,
     "input": false,
     "output": false
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 835018e66b9..0f56ca75b83 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -495,16 +495,6 @@ Camel error handling.
     </xs:annotation>
   </xs:element>
     
-  <xs:element name="errorHandlerRef" type="tns:errorHandlerRefDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-        <![CDATA[
-Dead letter channel error handler.
-      ]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-    
   <xs:element name="exchangeProperty" type="tns:exchangePropertyExpression">
     <xs:annotation>
       <xs:documentation xml:lang="en">
@@ -1409,6 +1399,16 @@ Uses an existing expression from the registry.
     </xs:annotation>
   </xs:element>
     
+  <xs:element name="refErrorHandler" type="tns:refErrorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+        <![CDATA[
+References to an existing or custom error handler.
+      ]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
   <xs:element name="removeHeader" type="tns:removeHeaderDefinition">
     <xs:annotation>
       <xs:documentation xml:lang="en">
@@ -20230,7 +20230,7 @@ Set a reference to a custom Expression to use.
       
   </xs:complexType>
     
-  <xs:complexType name="errorHandlerRefDefinition">
+  <xs:complexType name="refErrorHandlerDefinition">
         
     <xs:complexContent>
             
diff --git 
a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
 
b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
index 855818b0f9b..5cf593559c4 100644
--- 
a/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
+++ 
b/components/camel-jta/src/main/java/org/apache/camel/jta/JtaTransactionPolicy.java
@@ -26,8 +26,8 @@ import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
 import 
org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
 import org.apache.camel.spi.TransactedPolicy;
 import org.slf4j.Logger;
@@ -85,9 +85,9 @@ public abstract class JtaTransactionPolicy implements 
TransactedPolicy {
         ErrorHandlerFactory builder = routeDefinition.getErrorHandlerFactory();
 
         // check if its a ref if so then do a lookup
-        if (builder instanceof ErrorHandlerRefDefinition) {
+        if (builder instanceof RefErrorHandlerDefinition) {
             // its a reference to a error handler so lookup the reference
-            ErrorHandlerRefDefinition builderRef = (ErrorHandlerRefDefinition) 
builder;
+            RefErrorHandlerDefinition builderRef = (RefErrorHandlerDefinition) 
builder;
             String ref = builderRef.getRef();
             // only lookup if there was explicit an error handler builder 
configured
             // otherwise its just the "default" that has not explicit been 
configured
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
index a0ba6d41273..6e81f051553 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
@@ -25,7 +25,7 @@ import 
org.apache.camel.builder.SpringTransactionErrorHandlerBuilder;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import 
org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
 import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
 import org.apache.camel.spi.TransactedPolicy;
@@ -89,9 +89,9 @@ public class SpringTransactionPolicy implements 
TransactedPolicy {
         ErrorHandlerFactory builder = routeDefinition.getErrorHandlerFactory();
 
         // check if its a ref if so then do a lookup
-        if (builder instanceof ErrorHandlerRefDefinition) {
+        if (builder instanceof RefErrorHandlerDefinition) {
             // its a reference to a error handler so lookup the reference
-            ErrorHandlerRefDefinition builderRef = (ErrorHandlerRefDefinition) 
builder;
+            RefErrorHandlerDefinition builderRef = (RefErrorHandlerDefinition) 
builder;
             String ref = builderRef.getRef();
             // only lookup if there was explicit an error handler builder 
configured
             // otherwise its just the "default" that has not explicit been 
configured
diff --git 
a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
 
b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
index 7d811da70d4..4a8d56954e0 100644
--- 
a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
+++ 
b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties
@@ -44,7 +44,6 @@ doTry
 dynamicRouter
 enrich
 errorHandler
-errorHandlerRef
 exchangeProperty
 expression
 failover
@@ -126,6 +125,7 @@ random
 recipientList
 redeliveryPolicy
 ref
+refErrorHandler
 removeHeader
 removeHeaders
 removeProperties
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
index 1daaba1595c..9106a928630 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/jaxb.index
@@ -1,7 +1,7 @@
 # Generated by camel build tools - do NOT edit this file!
 DeadLetterChannelDefinition
 DefaultErrorHandlerDefinition
-ErrorHandlerRefDefinition
 JtaTransactionErrorHandlerDefinition
 NoErrorHandlerDefinition
+RefErrorHandlerDefinition
 SpringTransactionErrorHandlerDefinition
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/errorHandlerRef.json
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/refErrorHandler.json
similarity index 75%
rename from 
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/errorHandlerRef.json
rename to 
core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/refErrorHandler.json
index b1cc07bde2a..1ed161c24a1 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/errorHandlerRef.json
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorhandler/refErrorHandler.json
@@ -1,12 +1,12 @@
 {
   "model": {
     "kind": "model",
-    "name": "errorHandlerRef",
-    "title": "Error Handler Ref",
-    "description": "Dead letter channel error handler.",
+    "name": "refErrorHandler",
+    "title": "Ref Error Handler",
+    "description": "References to an existing or custom error handler.",
     "deprecated": false,
     "label": "configuration,error",
-    "javaType": 
"org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition",
+    "javaType": 
"org.apache.camel.model.errorhandler.RefErrorHandlerDefinition",
     "abstract": false,
     "input": false,
     "output": false
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
index 3dff0b56746..2ed67cbb05c 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/RefErrorHandlerBuilder.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.builder;
 
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 
 /**
  * Ref error handler as a builder.
  */
-public class RefErrorHandlerBuilder extends ErrorHandlerRefDefinition {
+public class RefErrorHandlerBuilder extends RefErrorHandlerDefinition {
 
     public RefErrorHandlerBuilder() {
     }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
index aebce342988..d2eaf24ba07 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -47,7 +47,7 @@ import org.apache.camel.model.RouteTemplatesDefinition;
 import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.model.TemplatedRouteDefinition;
 import org.apache.camel.model.TemplatedRoutesDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.model.rest.RestConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
@@ -439,7 +439,7 @@ public abstract class RouteBuilder extends BuilderSupport 
implements RoutesBuild
         if (resource != null) {
             getRouteCollection().setResource(resource);
         }
-        setErrorHandlerFactory(new ErrorHandlerRefDefinition(ref));
+        setErrorHandlerFactory(new RefErrorHandlerDefinition(ref));
     }
 
     /**
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
index 0d509cef27d..e05e44873cb 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteConfigurationDefinition.java
@@ -27,7 +27,7 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.ErrorHandlerFactory;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.spi.Metadata;
 
 /**
@@ -150,7 +150,7 @@ public class RouteConfigurationDefinition extends 
OptionalIdentifiedDefinition<R
      */
     public RouteConfigurationDefinition errorHandler(String ref) {
         ErrorHandlerDefinition def = new ErrorHandlerDefinition();
-        def.setErrorHandlerType(new ErrorHandlerRefDefinition(ref));
+        def.setErrorHandlerType(new RefErrorHandlerDefinition(ref));
         setErrorHandler(def);
         return this;
     }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
index a16dd9709a6..534ae072df8 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -42,7 +42,7 @@ import org.apache.camel.RouteTemplateContext;
 import org.apache.camel.ShutdownRoute;
 import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.builder.EndpointConsumerBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.model.rest.RestBindingDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.spi.AsEndpointUri;
@@ -1026,7 +1026,7 @@ public class RouteDefinition extends 
OutputDefinition<RouteDefinition>
             // we use an specific error handler ref (from Spring DSL) then 
wrap that
             // with a error handler build ref so Camel knows its not just the
             // default one
-            setErrorHandlerFactory(new 
ErrorHandlerRefDefinition(errorHandlerRef));
+            setErrorHandlerFactory(new 
RefErrorHandlerDefinition(errorHandlerRef));
         }
     }
 
@@ -1106,11 +1106,11 @@ public class RouteDefinition extends 
OutputDefinition<RouteDefinition>
 
     private ErrorHandlerFactory createErrorHandlerBuilder() {
         if (errorHandlerRef != null) {
-            return new ErrorHandlerRefDefinition(errorHandlerRef);
+            return new RefErrorHandlerDefinition(errorHandlerRef);
         }
 
         // return a reference to the default error handler
-        return new 
ErrorHandlerRefDefinition(ErrorHandlerRefDefinition.DEFAULT_ERROR_HANDLER_BUILDER);
+        return new 
RefErrorHandlerDefinition(RefErrorHandlerDefinition.DEFAULT_ERROR_HANDLER_BUILDER);
     }
 
     public ErrorHandlerFactory getErrorHandlerFactory() {
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
index 7a50e52f45c..352fb51645f 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerHelper.java
@@ -54,8 +54,8 @@ public final class ErrorHandlerHelper {
             // see if there has been configured a error handler builder on the 
route
             source = route.getErrorHandlerFactory();
             // check if its also a ref with no error handler configuration 
like me
-            if (source instanceof ErrorHandlerRefDefinition) {
-                ErrorHandlerRefDefinition other = (ErrorHandlerRefDefinition) 
source;
+            if (source instanceof RefErrorHandlerDefinition) {
+                RefErrorHandlerDefinition other = (RefErrorHandlerDefinition) 
source;
                 String otherRef = other.getRef();
                 if (!isErrorHandlerFactoryConfigured(otherRef)) {
                     // the other has also no explicit error handler configured
@@ -90,8 +90,8 @@ public final class ErrorHandlerHelper {
 
     protected static ErrorHandlerFactory 
lookupErrorHandlerFactory(CamelContext camelContext) {
         ErrorHandlerFactory answer = 
camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory();
-        if (answer instanceof ErrorHandlerRefDefinition) {
-            ErrorHandlerRefDefinition other = (ErrorHandlerRefDefinition) 
answer;
+        if (answer instanceof RefErrorHandlerDefinition) {
+            RefErrorHandlerDefinition other = (RefErrorHandlerDefinition) 
answer;
             String otherRef = other.getRef();
             if (isErrorHandlerFactoryConfigured(otherRef)) {
                 answer = CamelContextHelper.lookup(camelContext, otherRef, 
ErrorHandlerFactory.class);
@@ -112,7 +112,7 @@ public final class ErrorHandlerHelper {
      * This is for instance used by the transacted policy to setup a 
TransactedErrorHandlerBuilder in camel-spring.
      */
     public static boolean isErrorHandlerFactoryConfigured(String ref) {
-        return 
!ErrorHandlerRefDefinition.DEFAULT_ERROR_HANDLER_BUILDER.equals(ref);
+        return 
!RefErrorHandlerDefinition.DEFAULT_ERROR_HANDLER_BUILDER.equals(ref);
     }
 
 }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerRefDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/RefErrorHandlerDefinition.java
similarity index 86%
rename from 
core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerRefDefinition.java
rename to 
core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/RefErrorHandlerDefinition.java
index d4842f98095..68286e76142 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/ErrorHandlerRefDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/RefErrorHandlerDefinition.java
@@ -25,12 +25,12 @@ import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.spi.Metadata;
 
 /**
- * Dead letter channel error handler.
+ * References to an existing or custom error handler.
  */
 @Metadata(label = "configuration,error")
-@XmlRootElement(name = "errorHandlerRef")
+@XmlRootElement(name = "refErrorHandler")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ErrorHandlerRefDefinition extends BaseErrorHandlerDefinition {
+public class RefErrorHandlerDefinition extends BaseErrorHandlerDefinition {
 
     public static final String DEFAULT_ERROR_HANDLER_BUILDER = 
"CamelDefaultErrorHandlerBuilder";
 
@@ -38,10 +38,10 @@ public class ErrorHandlerRefDefinition extends 
BaseErrorHandlerDefinition {
     @Metadata(javaType = "org.apache.camel.ErrorHandlerFactory")
     private String ref;
 
-    public ErrorHandlerRefDefinition() {
+    public RefErrorHandlerDefinition() {
     }
 
-    public ErrorHandlerRefDefinition(String ref) {
+    public RefErrorHandlerDefinition(String ref) {
         this.ref = ref;
     }
 
@@ -70,7 +70,7 @@ public class ErrorHandlerRefDefinition extends 
BaseErrorHandlerDefinition {
     /**
      * References to an existing or custom error handler.
      */
-    public ErrorHandlerRefDefinition ref(String ref) {
+    public RefErrorHandlerDefinition ref(String ref) {
         setRef(ref);
         return this;
     }
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
index 7c7ad90db6d..e09ab4c61c8 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerRefReifier.java
@@ -21,13 +21,13 @@ import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.errorhandler.ErrorHandlerHelper;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.util.ObjectHelper;
 
-public class ErrorHandlerRefReifier extends 
ErrorHandlerReifier<ErrorHandlerRefDefinition> {
+public class ErrorHandlerRefReifier extends 
ErrorHandlerReifier<RefErrorHandlerDefinition> {
 
     public ErrorHandlerRefReifier(Route route, ErrorHandlerFactory definition) 
{
-        super(route, (ErrorHandlerRefDefinition) definition);
+        super(route, (RefErrorHandlerDefinition) definition);
     }
 
     @Override
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
index 639ca1587bf..f69e479752d 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java
@@ -36,7 +36,7 @@ import org.apache.camel.model.OnExceptionDefinition;
 import org.apache.camel.model.RedeliveryPolicyDefinition;
 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.RefErrorHandlerDefinition;
 import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
 import org.apache.camel.processor.errorhandler.ErrorHandlerSupport;
 import org.apache.camel.processor.errorhandler.ExceptionPolicy;
@@ -97,7 +97,7 @@ public abstract class ErrorHandlerReifier<T extends 
ErrorHandlerFactory> extends
             return new DefaultErrorHandlerReifier(route, 
(DefaultErrorHandlerDefinition) definition);
         } else if (definition instanceof NoErrorHandlerDefinition) {
             return new NoErrorHandlerReifier(route, definition);
-        } else if (definition instanceof ErrorHandlerRefDefinition) {
+        } else if (definition instanceof RefErrorHandlerDefinition) {
             return new ErrorHandlerRefReifier(route, definition);
         }
 
diff --git 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
index 4d4a8e0797a..44ce432a275 100644
--- 
a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
+++ 
b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
@@ -90,7 +90,7 @@ import org.apache.camel.model.TemplatedRouteDefinition;
 import org.apache.camel.model.ThreadPoolProfileDefinition;
 import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
 import org.apache.camel.model.dataformat.DataFormatsDefinition;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.model.rest.RestConfigurationDefinition;
 import org.apache.camel.model.rest.RestContainer;
 import org.apache.camel.model.rest.RestDefinition;
@@ -1202,7 +1202,7 @@ public abstract class AbstractCamelContextFactoryBean<T 
extends ModelCamelContex
         }
         if (getErrorHandlerRef() != null) {
             context.adapt(ExtendedCamelContext.class)
-                    .setErrorHandlerFactory(new 
ErrorHandlerRefDefinition(getErrorHandlerRef()));
+                    .setErrorHandlerFactory(new 
RefErrorHandlerDefinition(getErrorHandlerRef()));
         }
         if (getAutoStartup() != null) {
             context.setAutoStartup(CamelContextHelper.parseBoolean(context, 
getAutoStartup()));
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
index 6b31dd78b8d..9177c514c84 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/builder/RouteTemplateErrorHandlerTest.java
@@ -19,7 +19,7 @@ package org.apache.camel.builder;
 import org.apache.camel.Channel;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.engine.DefaultRoute;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
 import org.apache.camel.processor.errorhandler.NoErrorHandler;
 import org.junit.jupiter.api.Test;
@@ -50,13 +50,13 @@ public class RouteTemplateErrorHandlerTest {
             });
 
             assertThat(context.getRouteDefinitions()).first().satisfies(d -> {
-                
assertThat(d.getErrorHandlerFactory()).isInstanceOfSatisfying(ErrorHandlerRefDefinition.class,
 h -> {
+                
assertThat(d.getErrorHandlerFactory()).isInstanceOfSatisfying(RefErrorHandlerDefinition.class,
 h -> {
                     assertThat(h.getRef()).isEqualTo("myErrorHandler");
                 });
             });
 
             
assertThat(context.getRouteTemplateDefinitions()).first().satisfies(d -> {
-                
assertThat(d.route().getErrorHandlerFactory()).isInstanceOfSatisfying(ErrorHandlerRefDefinition.class,
 h -> {
+                
assertThat(d.route().getErrorHandlerFactory()).isInstanceOfSatisfying(RefErrorHandlerDefinition.class,
 h -> {
                     assertThat(h.getRef()).isEqualTo("myErrorHandler");
                 });
             });
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
index 0925ea4062a..cb0ff48f81a 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest.java
@@ -21,7 +21,7 @@ import java.io.IOException;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.DeadLetterChannelBuilder;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.spi.Registry;
 import org.junit.jupiter.api.Test;
 
@@ -66,10 +66,10 @@ public class 
ContextScopedOnExceptionErrorHandlerRefIssueTwoRoutesTest extends C
             public void configure() throws Exception {
                 
onException(IllegalArgumentException.class).handled(true).to("mock:handled").end();
 
-                from("direct:foo").errorHandler(new 
ErrorHandlerRefDefinition("myDLC")).to("mock:foo")
+                from("direct:foo").errorHandler(new 
RefErrorHandlerDefinition("myDLC")).to("mock:foo")
                         .throwException(new IOException("Damn IO"));
 
-                from("direct:start").errorHandler(new 
ErrorHandlerRefDefinition("myDLC")).to("mock:a")
+                from("direct:start").errorHandler(new 
RefErrorHandlerDefinition("myDLC")).to("mock:a")
                         .throwException(new IllegalArgumentException("Damn"));
             }
         };
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
index 686cb590c45..537a1e4bc69 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTest.java
@@ -20,7 +20,7 @@ import org.apache.camel.CamelExecutionException;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.DeadLetterChannelBuilder;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.spi.Registry;
 import org.junit.jupiter.api.Test;
 
@@ -61,7 +61,7 @@ public class 
ContextScopedOnExceptionNotHandledRouteScopedErrorHandlerRefIssueTe
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").errorHandler(new 
ErrorHandlerRefDefinition("myDLC"))
+                from("direct:start").errorHandler(new 
RefErrorHandlerDefinition("myDLC"))
                         
.onException(IllegalArgumentException.class).handled(false).to("mock:handled").end()
                         .to("mock:a").throwException(new 
IllegalArgumentException("Damn"));
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
index 0c8766ce1eb..d4e55425dd4 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest.java
@@ -19,7 +19,7 @@ package org.apache.camel.issues;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.DeadLetterChannelBuilder;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.spi.Registry;
 import org.junit.jupiter.api.Test;
 
@@ -54,7 +54,7 @@ public class 
ContextScopedOnExceptionRouteScopedErrorHandlerRefIssueTest extends
 
                 
onException(IllegalArgumentException.class).handled(true).to("mock:handled").end();
 
-                from("direct:start").errorHandler(new 
ErrorHandlerRefDefinition("myDLC")).to("mock:a")
+                from("direct:start").errorHandler(new 
RefErrorHandlerDefinition("myDLC")).to("mock:a")
                         .throwException(new IllegalArgumentException("Damn"));
             }
         };
diff --git 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index 297e9f235fe..3fec7222c02 100644
--- 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -2584,15 +2584,6 @@ public class ModelParser extends BaseParser {
     protected DefaultErrorHandlerDefinition 
doParseDefaultErrorHandlerDefinition() throws IOException, 
XmlPullParserException {
         return doParse(new DefaultErrorHandlerDefinition(), 
defaultErrorHandlerDefinitionAttributeHandler(), 
defaultErrorHandlerDefinitionElementHandler(), noValueHandler());
     }
-    protected ErrorHandlerRefDefinition doParseErrorHandlerRefDefinition() 
throws IOException, XmlPullParserException {
-        return doParse(new ErrorHandlerRefDefinition(), (def, key, val) -> {
-            if ("ref".equals(key)) {
-                def.setRef(val);
-                return true;
-            }
-            return identifiedTypeAttributeHandler().accept(def, key, val);
-        }, noElementHandler(), noValueHandler());
-    }
     protected JtaTransactionErrorHandlerDefinition 
doParseJtaTransactionErrorHandlerDefinition() throws IOException, 
XmlPullParserException {
         return doParse(new JtaTransactionErrorHandlerDefinition(),
             transactionErrorHandlerDefinitionAttributeHandler(), 
defaultErrorHandlerDefinitionElementHandler(), noValueHandler());
@@ -2611,6 +2602,15 @@ public class ModelParser extends BaseParser {
         return doParse(new NoErrorHandlerDefinition(),
             identifiedTypeAttributeHandler(), noElementHandler(), 
noValueHandler());
     }
+    protected RefErrorHandlerDefinition doParseRefErrorHandlerDefinition() 
throws IOException, XmlPullParserException {
+        return doParse(new RefErrorHandlerDefinition(), (def, key, val) -> {
+            if ("ref".equals(key)) {
+                def.setRef(val);
+                return true;
+            }
+            return identifiedTypeAttributeHandler().accept(def, key, val);
+        }, noElementHandler(), noValueHandler());
+    }
     protected SpringTransactionErrorHandlerDefinition 
doParseSpringTransactionErrorHandlerDefinition() throws IOException, 
XmlPullParserException {
         return doParse(new SpringTransactionErrorHandlerDefinition(),
             transactionErrorHandlerDefinitionAttributeHandler(), 
defaultErrorHandlerDefinitionElementHandler(), noValueHandler());
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 44b8fc6a07e..c145a00e276 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
@@ -167,9 +167,9 @@ 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.RefErrorHandlerDefinition;
 import 
org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition;
 import org.apache.camel.model.language.CSimpleExpression;
 import org.apache.camel.model.language.ConstantExpression;
@@ -4783,50 +4783,6 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            nodes = {
-                    "error-handler-ref",
-                    "errorHandlerRef"
-            },
-            types = 
org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition.class,
-            order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            properties = {
-                    @YamlProperty(name = "id", type = "string"),
-                    @YamlProperty(name = "ref", type = "string", required = 
true)
-            }
-    )
-    public static class ErrorHandlerRefDefinitionDeserializer extends 
YamlDeserializerBase<ErrorHandlerRefDefinition> {
-        public ErrorHandlerRefDefinitionDeserializer() {
-            super(ErrorHandlerRefDefinition.class);
-        }
-
-        @Override
-        protected ErrorHandlerRefDefinition newInstance() {
-            return new ErrorHandlerRefDefinition();
-        }
-
-        @Override
-        protected boolean setProperty(ErrorHandlerRefDefinition target, String 
propertyKey,
-                String propertyName, Node node) {
-            switch(propertyKey) {
-                case "id": {
-                    String val = asText(node);
-                    target.setId(val);
-                    break;
-                }
-                case "ref": {
-                    String val = asText(node);
-                    target.setRef(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
     @YamlType(
             nodes = {
                     "exchange-property",
@@ -11644,6 +11600,50 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
         }
     }
 
+    @YamlType(
+            nodes = {
+                    "ref-error-handler",
+                    "refErrorHandler"
+            },
+            types = 
org.apache.camel.model.errorhandler.RefErrorHandlerDefinition.class,
+            order = 
org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
+            properties = {
+                    @YamlProperty(name = "id", type = "string"),
+                    @YamlProperty(name = "ref", type = "string", required = 
true)
+            }
+    )
+    public static class RefErrorHandlerDefinitionDeserializer extends 
YamlDeserializerBase<RefErrorHandlerDefinition> {
+        public RefErrorHandlerDefinitionDeserializer() {
+            super(RefErrorHandlerDefinition.class);
+        }
+
+        @Override
+        protected RefErrorHandlerDefinition newInstance() {
+            return new RefErrorHandlerDefinition();
+        }
+
+        @Override
+        protected boolean setProperty(RefErrorHandlerDefinition target, String 
propertyKey,
+                String propertyName, Node node) {
+            switch(propertyKey) {
+                case "id": {
+                    String val = asText(node);
+                    target.setId(val);
+                    break;
+                }
+                case "ref": {
+                    String val = asText(node);
+                    target.setRef(val);
+                    break;
+                }
+                default: {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
     @YamlType(
             nodes = "ref",
             inline = true,
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 b3ef7d0f564..791739cdd4f 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
@@ -129,9 +129,6 @@ public final class ModelDeserializersResolver implements 
YamlDeserializerResolve
             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 "exchange-property": return new 
ModelDeserializers.ExchangePropertyExpressionDeserializer();
             case "exchangeProperty": return new 
ModelDeserializers.ExchangePropertyExpressionDeserializer();
             case "org.apache.camel.model.language.ExchangePropertyExpression": 
return new ModelDeserializers.ExchangePropertyExpressionDeserializer();
@@ -323,6 +320,9 @@ public final class ModelDeserializersResolver implements 
YamlDeserializerResolve
             case "redelivery-policy": return new 
ModelDeserializers.RedeliveryPolicyDefinitionDeserializer();
             case "redeliveryPolicy": return new 
ModelDeserializers.RedeliveryPolicyDefinitionDeserializer();
             case "org.apache.camel.model.RedeliveryPolicyDefinition": return 
new ModelDeserializers.RedeliveryPolicyDefinitionDeserializer();
+            case "ref-error-handler": return new 
ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
+            case "refErrorHandler": return new 
ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
+            case 
"org.apache.camel.model.errorhandler.RefErrorHandlerDefinition": return new 
ModelDeserializers.RefErrorHandlerDefinitionDeserializer();
             case "ref": return new 
ModelDeserializers.RefExpressionDeserializer();
             case "org.apache.camel.model.language.RefExpression": return new 
ModelDeserializers.RefExpressionDeserializer();
             case "remove-header": return new 
ModelDeserializers.RemoveHeaderDefinitionDeserializer();
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 7dd5981031c..cf4dd57040f 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
@@ -25,8 +25,9 @@ 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.JtaTransactionErrorHandlerDefinition;
 import org.apache.camel.model.errorhandler.NoErrorHandlerDefinition;
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition;
 import org.apache.camel.spi.CamelContextCustomizer;
 import org.apache.camel.spi.annotations.YamlIn;
 import org.apache.camel.spi.annotations.YamlProperty;
@@ -44,15 +45,22 @@ import static 
org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.setDeseri
 
 @YamlIn
 @YamlType(
+          inline = false,
           nodes = { "error-handler", "errorHandler" },
           order = YamlDeserializerResolver.ORDER_DEFAULT,
           properties = {
-                  @YamlProperty(name = "ref", type = "string"),
-                  @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.model.errorhandler.DeadLetterChannelDefinition"),
+                  @YamlProperty(name = "default-error-handler",
+                                type = 
"object:org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"),
+                  @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 = "ref-error-handler",
+                                type = 
"object:org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"),
+                  @YamlProperty(name = "spring-transaction-error-handler",
+                                type = 
"object:org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"),
           })
 public class ErrorHandlerBuilderDeserializer implements ConstructNode {
 
@@ -77,17 +85,24 @@ public class ErrorHandlerBuilderDeserializer implements 
ConstructNode {
             setDeserializationContext(val, dc);
 
             switch (key) {
-                case "ref":
-                    // special for ref error handler, as it can be manually 
inlined
-                    ErrorHandlerRefDefinition def = new 
ErrorHandlerRefDefinition(asText(val));
-                    return customizer(def);
-                case "none":
-                    return customizer(asType(val, 
NoErrorHandlerDefinition.class));
                 case "deadLetterChannel":
                 case "dead-letter-channel":
                     return customizer(asType(val, 
DeadLetterChannelDefinition.class));
-                case "log":
+                case "defaultErrorHandler":
+                case "default-error-handler":
                     return customizer(asType(val, 
DefaultErrorHandlerDefinition.class));
+                case "jtaTransactionErrorHandler":
+                case "jta-transaction-error-handler":
+                    return customizer(asType(val, 
JtaTransactionErrorHandlerDefinition.class));
+                case "noErrorHandler":
+                case "no-error-handler":
+                    return customizer(asType(val, 
NoErrorHandlerDefinition.class));
+                case "refErrorHandler":
+                case "ref-error-handler":
+                    return customizer(asType(val, 
RefErrorHandlerDefinition.class));
+                case "springTransactionErrorHandler":
+                case "spring-transaction-error-handler":
+                    return customizer(asType(val, 
JtaTransactionErrorHandlerDefinition.class));
                 default:
                     throw new UnsupportedFieldException(val, key);
             }
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
index 0db1e83e3a0..da2f97617d6 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
@@ -313,14 +313,20 @@
           "dead-letter-channel" : {
             "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
           },
-          "log" : {
+          "default-error-handler" : {
             "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
           },
-          "none" : {
+          "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"
           },
-          "ref" : {
-            "type" : "string"
+          "ref-error-handler" : {
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+          },
+          "spring-transaction-error-handler" : {
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
           }
         }
       },
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
index 3c96a564f95..fea8158d6ed 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
@@ -220,14 +220,20 @@
           "deadLetterChannel" : {
             "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DeadLetterChannelDefinition"
           },
-          "log" : {
+          "defaultErrorHandler" : {
             "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.DefaultErrorHandlerDefinition"
           },
-          "none" : {
+          "jtaTransactionErrorHandler" : {
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.JtaTransactionErrorHandlerDefinition"
+          },
+          "noErrorHandler" : {
             "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.NoErrorHandlerDefinition"
           },
-          "ref" : {
-            "type" : "string"
+          "refErrorHandler" : {
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition"
+          },
+          "springTransactionErrorHandler" : {
+            "$ref" : 
"#/items/definitions/org.apache.camel.model.errorhandler.SpringTransactionErrorHandlerDefinition"
           }
         }
       },
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 3e288f2ebf1..87d672f2ad5 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
@@ -21,8 +21,8 @@ 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
+import org.apache.camel.model.errorhandler.RefErrorHandlerDefinition
 
 class ErrorHandlerTest extends YamlTestSupport {
 
@@ -38,7 +38,8 @@ class ErrorHandlerTest extends YamlTestSupport {
                       dead-letter-uri: "mock:on-error"
                       redelivery-delay: 0
                 - error-handler:
-                    ref: "myErrorHandler"
+                    ref-error-handler: 
+                      ref: "myErrorHandler"
                 - from:
                     uri: "direct:start"
                     steps:
@@ -57,7 +58,7 @@ class ErrorHandlerTest extends YamlTestSupport {
                 to('direct:start').withBody('hello').send()
             }
         then:
-            context.errorHandlerFactory instanceof ErrorHandlerRefDefinition
+            context.getErrorHandlerFactory() instanceof 
RefErrorHandlerDefinition
             MockEndpoint.assertIsSatisfied(context)
     }
 
@@ -65,56 +66,63 @@ class ErrorHandlerTest extends YamlTestSupport {
         setup:
             loadRoutes """
                 - error-handler:
-                    ref: "myErrorHandler"
+                    ref-error-handler:
+                      ref: "myErrorHandler"
             """
         when:
             context.start()
         then:
-            with(context.errorHandlerFactory, ErrorHandlerRefDefinition) {
+            with(context.getErrorHandlerFactory(), ErrorHandlerRefDefinition) {
                 ref == 'myErrorHandler'
             }
     }
 
-    def "error-handler (log)"() {
+    def "error-handler (dead-letter-channel)"() {
         setup:
             loadRoutes """
                 - error-handler:
-                    log: 
-                      use-original-message: true
+                    dead-letter-channel: 
+                      dead-letter-uri: "mock:on-error"
+                      redelivery-policy:
+                        maximum-redeliveries: 3
             """
         when:
             context.start()
         then:
-            with(context.errorHandlerFactory, DefaultErrorHandlerDefinition) {
-                useOriginalMessage
+            with(context.getErrorHandlerFactory(), 
DeadLetterChannelDefinition) {
+                deadLetterUri == 'mock:on-error'
+                redeliveryPolicy.maximumRedeliveries == "3"
             }
     }
 
-    def "error-handler (dead-letter-channel)"() {
+    def "error-handler (default-error-handler)"() {
         setup:
-            loadRoutes """
+        loadRoutes """
                 - error-handler:
-                    dead-letter-channel: 
-                      dead-letter-uri: "mock:on-error"
+                    default-error-handler:
+                      useOriginalMessage: true 
+                      redelivery-policy:
+                        maximum-redeliveries: 2
             """
         when:
-            context.start()
+        context.start()
         then:
-            with(context.errorHandlerFactory, DeadLetterChannelDefinition) {
-                deadLetterUri == 'mock:on-error'
-            }
+        with(context.getErrorHandlerFactory(), DefaultErrorHandlerDefinition) {
+            useOriginalMessage == "true"
+            redeliveryPolicy.maximumRedeliveries == "2"
+        }
     }
 
-    def "error-handler (none)"() {
+    def "error-handler (no)"() {
         setup:
             loadRoutes """
                 - error-handler:
-                    none: {}
+                    no-error-handler: {}
             """
         when:
             context.start()
         then:
-            context.errorHandlerFactory instanceof NoErrorHandlerDefinition
+            context.getErrorHandlerFactory() instanceof 
NoErrorHandlerDefinition
     }
 
 }

Reply via email to