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 2021/08/03 12:33:42 UTC

[camel] 12/22: CAMEL-16757: YAML DSL to support route configuration

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 b2215618f277dee0707348fc5ca31b39d6deb233
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 2 16:54:26 2021 +0200

    CAMEL-16757: YAML DSL to support route configuration
---
 .../RouteConfigurationDefinitionDeserializer.java  | 33 ++++++++++++++++++++--
 .../src/generated/resources/camel-yaml-dsl.json    |  3 ++
 2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteConfigurationDefinitionDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteConfigurationDefinitionDeserializer.java
index f96fb58..9311269 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteConfigurationDefinitionDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/RouteConfigurationDefinitionDeserializer.java
@@ -3,6 +3,10 @@ package org.apache.camel.dsl.yaml.deserializers;
 import org.apache.camel.dsl.yaml.common.YamlDeserializationContext;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerBase;
 import org.apache.camel.dsl.yaml.common.YamlDeserializerResolver;
+import org.apache.camel.model.InterceptDefinition;
+import org.apache.camel.model.InterceptFromDefinition;
+import org.apache.camel.model.InterceptSendToEndpointDefinition;
+import org.apache.camel.model.OnCompletionDefinition;
 import org.apache.camel.model.OnExceptionDefinition;
 import org.apache.camel.model.RouteConfigurationDefinition;
 import org.apache.camel.spi.annotations.YamlProperty;
@@ -18,6 +22,7 @@ import org.snakeyaml.engine.v2.nodes.SequenceNode;
           order = YamlDeserializerResolver.ORDER_DEFAULT,
           nodes = "route-configuration",
           properties = {
+                  @YamlProperty(name = "id", type = "string"),
                   @YamlProperty(name = "intercept", type = "array:org.apache.camel.model.InterceptDefinition"),
                   @YamlProperty(name = "intercept-from", type = "array:org.apache.camel.model.InterceptFromDefinition"),
                   @YamlProperty(name = "intercept-send-to-endpoint",
@@ -49,10 +54,34 @@ public class RouteConfigurationDefinitionDeserializer extends YamlDeserializerBa
                 final String key = asText(tuple.getKeyNode());
                 final Node val = tuple.getValueNode();
                 switch (key) {
+                    case "id": {
+                        target.setId(asText(val));
+                        break;
+                    }
                     case "on-exception":
                         setDeserializationContext(val, dc);
-                        OnExceptionDefinition obj = asType(val, OnExceptionDefinition.class);
-                        target.getOnExceptions().add(obj);
+                        OnExceptionDefinition oed = asType(val, OnExceptionDefinition.class);
+                        target.getOnExceptions().add(oed);
+                        break;
+                    case "on-completion":
+                        setDeserializationContext(val, dc);
+                        OnCompletionDefinition ocd = asType(val, OnCompletionDefinition.class);
+                        target.getOnCompletions().add(ocd);
+                        break;
+                    case "intercept":
+                        setDeserializationContext(val, dc);
+                        InterceptDefinition id = asType(val, InterceptDefinition.class);
+                        target.getIntercepts().add(id);
+                        break;
+                    case "intercept-from":
+                        setDeserializationContext(val, dc);
+                        InterceptFromDefinition ifd = asType(val, InterceptFromDefinition.class);
+                        target.getInterceptFroms().add(ifd);
+                        break;
+                    case "intercept-send-to-endpoint":
+                        setDeserializationContext(val, dc);
+                        InterceptSendToEndpointDefinition isted = asType(val, InterceptSendToEndpointDefinition.class);
+                        target.getInterceptSendTos().add(isted);
                         break;
                 }
             }
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 924421b..90d56ae 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
@@ -2041,6 +2041,9 @@
         }, {
           "type" : "object",
           "properties" : {
+            "id" : {
+              "type" : "string"
+            },
             "intercept" : {
               "type" : "array",
               "items" : {