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/05 11:14:56 UTC

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

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 90354deaeea982e61d0a044e6317a4ed5de060b1
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Apr 5 11:55:05 2022 +0200

    CAMEL-16834: error handler in model DSL. WIP
---
 .../resources/org/apache/camel/model/errorHandler.json      |  1 +
 .../org/apache/camel/model/errorhandler/jaxb.index          |  1 +
 .../java/org/apache/camel/model/ErrorHandlerDefinition.java | 13 +++++++++++--
 .../model/errorhandler/BaseErrorHandlerDefinition.java      | 12 +++++++++++-
 .../generated/java/org/apache/camel/xml/in/ModelParser.java |  4 ++++
 5 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorHandler.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorHandler.json
index dd03d720d46..a5a05e25162 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorHandler.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/errorHandler.json
@@ -12,6 +12,7 @@
     "output": false
   },
   "properties": {
+    "errorHandlerType": { "kind": "element", "displayName": "Error Handler Type", "required": true, "type": "object", "javaType": "org.apache.camel.model.errorhandler.BaseErrorHandlerDefinition", "oneOf": [ "deadLetterChannel", "defaultErrorHandler", "noErrorHandler", "transactionErrorHandler" ], "deprecated": false, "autowired": false, "secret": false },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
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 f4fe4082b36..cc2c531fd69 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,4 +1,5 @@
 # Generated by camel build tools - do NOT edit this file!
+BaseErrorHandlerDefinition
 DeadLetterChannelDefinition
 DefaultErrorHandlerDefinition
 NoErrorHandlerDefinition
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ErrorHandlerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ErrorHandlerDefinition.java
index 4663878ee1a..5a9ca6bdc16 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ErrorHandlerDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ErrorHandlerDefinition.java
@@ -18,11 +18,16 @@ package org.apache.camel.model;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.model.errorhandler.BaseErrorHandlerDefinition;
+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.errorhandler.TransactionErrorHandlerDefinition;
 import org.apache.camel.spi.Metadata;
 
 /**
@@ -33,7 +38,11 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ErrorHandlerDefinition extends IdentifiedType implements ErrorHandlerFactory {
 
-    @XmlElementRef
+    @XmlElements({
+            @XmlElement(name = "deadLetterChannel", type = DeadLetterChannelDefinition.class),
+            @XmlElement(name = "defaultErrorHandler", type = DefaultErrorHandlerDefinition.class),
+            @XmlElement(name = "noErrorHandler", type = NoErrorHandlerDefinition.class),
+            @XmlElement(name = "transactionErrorHandler", type = TransactionErrorHandlerDefinition.class) })
     private BaseErrorHandlerDefinition errorHandlerType;
 
     public BaseErrorHandlerDefinition getErrorHandlerType() {
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/BaseErrorHandlerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/BaseErrorHandlerDefinition.java
index 5e5343811bf..ac8921fc497 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/BaseErrorHandlerDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/errorhandler/BaseErrorHandlerDefinition.java
@@ -16,9 +16,19 @@
  */
 package org.apache.camel.model.errorhandler;
 
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
 import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.model.IdentifiedType;
+import org.apache.camel.spi.Metadata;
 
-public abstract class BaseErrorHandlerDefinition extends IdentifiedType implements ErrorHandlerFactory {
+@Metadata(label = "configuration,error")
+@XmlRootElement(name = "baseErrorHandler")
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlTransient
+public class BaseErrorHandlerDefinition extends IdentifiedType implements ErrorHandlerFactory {
 
 }
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 47dd3f00c76..55b516902e1 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
@@ -392,6 +392,10 @@ public class ModelParser extends BaseParser {
             return true;
         }, noValueHandler());
     }
+    protected BaseErrorHandlerDefinition doParseBaseErrorHandlerDefinition() throws IOException, XmlPullParserException {
+        return doParse(new BaseErrorHandlerDefinition(), 
+            identifiedTypeAttributeHandler(),  noElementHandler(), noValueHandler());
+    }
     protected <T extends FaultToleranceConfigurationCommon> AttributeHandler<T> faultToleranceConfigurationCommonAttributeHandler() {
         return (def, key, val) -> {
             switch (key) {