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 <[email protected]> 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" : {
