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

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

commit 2f242403ca9500a44f33fcc10832f99cacc22cc4
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Aug 3 11:46:14 2021 +0200

    CAMEL-16757: spring/blueprint XML to support routeConfiguration
---
 .../org/apache/camel/model/routeConfiguration.json |  5 +++
 .../camel/model/RouteConfigurationDefinition.java  | 12 ++---
 .../java/org/apache/camel/xml/in/ModelParser.java  |  2 +-
 .../camel/dsl/yaml/RouteConfigurationTest.groovy   | 51 ++++++++++++++++++++++
 4 files changed, 63 insertions(+), 7 deletions(-)

diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/routeConfiguration.json
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/routeConfiguration.json
index 515c123..131da2a 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/routeConfiguration.json
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/routeConfiguration.json
@@ -11,6 +11,11 @@
     "output": false
   },
   "properties": {
+    "onException": { "kind": "element", "displayName": "On Exception", 
"required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.OnExceptionDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Exception clause 
for catching certain exceptions and handling them." },
+    "onCompletion": { "kind": "element", "displayName": "On Completion", 
"required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.OnCompletionDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "On completion 
callback for doing custom routing when the org.apache.camel.Exchange is 
complete." },
+    "intercept": { "kind": "element", "displayName": "Intercept", "required": 
false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.InterceptDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Adds a route for an 
interceptor that intercepts every processing step." },
+    "interceptFrom": { "kind": "element", "displayName": "Intercept From", 
"required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.InterceptFromDefinition>", "deprecated": 
false, "autowired": false, "secret": false, "description": "Adds a route for an 
interceptor that intercepts incoming messages on the given endpoint." },
+    "interceptSendToEndpoint": { "kind": "element", "displayName": "Intercept 
Send To Endpoint", "required": false, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.InterceptSendToEndpointDefinition>", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Applies a route for an interceptor if an exchange is send to the given 
endpoint" },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the id of this node" 
},
     "description": { "kind": "element", "displayName": "Description", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.model.DescriptionDefinition", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the description of 
this node" }
   }
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 ae3e8e8..8e4e308 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
@@ -22,7 +22,7 @@ import java.util.List;
 
 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.XmlRootElement;
 
 import org.apache.camel.spi.Metadata;
@@ -37,15 +37,15 @@ public class RouteConfigurationDefinition extends 
OptionalIdentifiedDefinition<R
 
     // TODO: Model for ErrorHandler (requires to move error handler model from 
spring-xml, blueprint to core)
 
-    @XmlElementRef
+    @XmlElement(name = "onException")
     private List<OnExceptionDefinition> onExceptions = new ArrayList<>();
-    @XmlElementRef
+    @XmlElement(name = "onCompletion")
     private List<OnCompletionDefinition> onCompletions = new ArrayList<>();
-    @XmlElementRef
+    @XmlElement(name = "intercept")
     private List<InterceptDefinition> intercepts = new ArrayList<>();
-    @XmlElementRef
+    @XmlElement(name = "interceptFrom")
     private List<InterceptFromDefinition> interceptFroms = new ArrayList<>();
-    @XmlElementRef
+    @XmlElement(name = "interceptSendToEndpoint")
     private List<InterceptSendToEndpointDefinition> interceptSendTos = new 
ArrayList<>();
 
     public RouteConfigurationDefinition() {
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 b8fa6e4..b33981d 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
@@ -940,7 +940,7 @@ public class ModelParser extends BaseParser {
         return doParse(new RouteConfigurationDefinition(),
             optionalIdentifiedDefinitionAttributeHandler(), (def, key) -> {
             switch (key) {
-                case "interceptFrom": doAdd(doParseInterceptFromDefinition(), 
def.getIntercepts(), def::setIntercepts); break;
+                case "interceptFrom": doAdd(doParseInterceptFromDefinition(), 
def.getInterceptFroms(), def::setInterceptFroms); break;
                 case "interceptSendToEndpoint": 
doAdd(doParseInterceptSendToEndpointDefinition(), def.getInterceptSendTos(), 
def::setInterceptSendTos); break;
                 case "intercept": doAdd(doParseInterceptDefinition(), 
def.getIntercepts(), def::setIntercepts); break;
                 case "onCompletion": doAdd(doParseOnCompletionDefinition(), 
def.getOnCompletions(), def::setOnCompletions); break;
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
index 80aa3fe..fc347ff 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
@@ -20,6 +20,7 @@ import org.apache.camel.component.mock.MockEndpoint
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.dsl.yaml.support.model.MyException
 import org.apache.camel.dsl.yaml.support.model.MyFailingProcessor
+import org.junit.jupiter.api.Disabled
 
 class RouteConfigurationTest extends YamlTestSupport {
     def "route-configuration"() {
@@ -106,4 +107,54 @@ class RouteConfigurationTest extends YamlTestSupport {
         MockEndpoint.assertIsSatisfied(context)
     }
 
+    // TODO: fix me
+    /*
+    def "route-configuration-id"() {
+        setup:
+        // global configurations
+        loadRoutes """
+                - beans:
+                  - name: myFailingProcessor
+                    type: ${MyFailingProcessor.name}
+                - route-configuration:
+                    - id: handleError
+                    - on-exception:
+                        handled:
+                          constant: "true"
+                        exception:
+                          - ${MyException.name}
+                        steps:
+                          - transform:
+                              constant: "Sorry"
+                          - to: "mock:on-exception"  
+            """
+        // routes
+        loadRoutes """
+                - from:
+                    uri: "direct:start"
+                    steps:
+                      - process: 
+                          ref: "myFailingProcessor"            
+                - from:
+                    uri: "direct:start2"
+                    steps:
+                      - process: 
+                          ref: "myFailingProcessor"            
+            """
+
+        withMock('mock:on-exception') {
+            expectedBodiesReceived 'Sorry'
+        }
+
+        when:
+        context.start()
+
+        withTemplate {
+            to('direct:start').withBody('hello').send()
+            to('direct:start2').withBody('hello2').send()
+        }
+        then:
+        MockEndpoint.assertIsSatisfied(context)
+    }*/
+
 }

Reply via email to