This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git
The following commit(s) were added to refs/heads/master by this push: new 7eb849e Yaml DSL: add workarounds for backward compatibility issues 7eb849e is described below commit 7eb849e627a5a10b69b2fe85e3d39eca4d3c6900 Author: Luca Burgazzoli <lburgazz...@gmail.com> AuthorDate: Mon Apr 12 19:01:06 2021 +0200 Yaml DSL: add workarounds for backward compatibility issues --- .../yaml/YamlDeserializerEndpointAwareBase.java | 73 ++++++++++++++++ .../yaml/YamlSourceLoaderDeserializerResolver.java | 20 ++--- .../SagaActionUriDefinitionDeserializer.java | 74 ++++++++++++++++ .../deserializers/ToDefinitionDeserializer.java | 79 +++++++++++++++++ .../ToDynamicDefinitionDeserializer.java | 99 ++++++++++++++++++++++ .../k/loader/yaml/YamlSourceLoaderTest.groovy | 69 ++++++++++++++- .../src/test/resources/yaml/routes_to_dynamic.yaml | 24 ++++++ .../resources/yaml/routes_to_dynamic_alias.yaml | 24 ++++++ .../yaml/routes_to_dynamic_alias_out_of_order.yaml | 24 ++++++ .../yaml/routes_to_dynamic_out_of_order.yaml | 24 ++++++ .../resources/yaml/routes_to_out_of_order.yaml | 24 ++++++ 11 files changed, 523 insertions(+), 11 deletions(-) diff --git a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlDeserializerEndpointAwareBase.java b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlDeserializerEndpointAwareBase.java new file mode 100644 index 0000000..644aeb8 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlDeserializerEndpointAwareBase.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.loader.yaml; + +import java.util.Locale; +import java.util.Map; + +import org.apache.camel.CamelContext; +import org.apache.camel.dsl.yaml.common.YamlDeserializationContext; +import org.apache.camel.dsl.yaml.common.YamlDeserializerBase; +import org.apache.camel.util.StringHelper; +import org.snakeyaml.engine.v2.nodes.MappingNode; +import org.snakeyaml.engine.v2.nodes.Node; +import org.snakeyaml.engine.v2.nodes.NodeTuple; +import org.snakeyaml.engine.v2.nodes.ScalarNode; + +public abstract class YamlDeserializerEndpointAwareBase<T> extends YamlDeserializerBase<T> { + + public YamlDeserializerEndpointAwareBase(Class<T> type) { + super(type); + } + + /** + * Set properties from a YAML node to the given target. + * + * @param node the node + * @param target the target object + */ + protected void setProperties(T target, MappingNode node) { + YamlDeserializationContext dc = getDeserializationContext(node); + + Map<String, Object> parameters = null; + + for (NodeTuple tuple : node.getValue()) { + final ScalarNode key = (ScalarNode) tuple.getKeyNode(); + final String propertyName = StringHelper.camelCaseToDash(key.getValue()).toLowerCase(Locale.US); + final Node val = tuple.getValueNode(); + + setDeserializationContext(val, dc); + + switch (propertyName) { + case "parameters": + case "properties": + parameters = asScalarMap(tuple.getValueNode()); + break; + default: + if (!setProperty(target, propertyName, key.getValue(), val)) { + handleUnknownProperty(target, propertyName, key.getValue(), val); + } + } + } + + if (parameters != null) { + setEndpointUri(dc.getCamelContext(), target, parameters); + } + } + + protected abstract void setEndpointUri(CamelContext context, T target, Map<String, Object> parameters); +} diff --git a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoaderDeserializerResolver.java b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoaderDeserializerResolver.java index 1df3d4b..7018ffe 100644 --- a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoaderDeserializerResolver.java +++ b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoaderDeserializerResolver.java @@ -17,7 +17,9 @@ package org.apache.camel.k.loader.yaml; import org.apache.camel.dsl.yaml.common.YamlDeserializerResolver; -import org.apache.camel.dsl.yaml.deserializers.ModelDeserializers; +import org.apache.camel.k.loader.yaml.deserializers.SagaActionUriDefinitionDeserializer; +import org.apache.camel.k.loader.yaml.deserializers.ToDefinitionDeserializer; +import org.apache.camel.k.loader.yaml.deserializers.ToDynamicDefinitionDeserializer; import org.snakeyaml.engine.v2.api.ConstructNode; import org.snakeyaml.engine.v2.nodes.Node; @@ -37,7 +39,13 @@ public class YamlSourceLoaderDeserializerResolver implements YamlDeserializerRes return new FromDeserializer(); case "to": case "org.apache.camel.model.ToDefinition": - return new ToDeserializer(); + return new ToDefinitionDeserializer(); + case "tod": + case "to-d": + case "org.apache.camel.model.ToDynamicDefinition": + return new ToDynamicDefinitionDeserializer(); + case "org.apache.camel.model.SagaActionUriDefinition": + return new SagaActionUriDefinitionDeserializer(); default: return null; } @@ -59,12 +67,4 @@ public class YamlSourceLoaderDeserializerResolver implements YamlDeserializerRes ); } } - public static class ToDeserializer extends ModelDeserializers.ToDefinitionDeserializer { - @Override - public Object construct(Node node) { - return super.construct( - YamlSourceLoaderSupport.properties2parameters(node) - ); - } - } } diff --git a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/SagaActionUriDefinitionDeserializer.java b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/SagaActionUriDefinitionDeserializer.java new file mode 100644 index 0000000..db48973 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/SagaActionUriDefinitionDeserializer.java @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.loader.yaml.deserializers; + +import java.util.Map; + +import org.apache.camel.CamelContext; +import org.apache.camel.dsl.yaml.common.YamlSupport; +import org.apache.camel.dsl.yaml.deserializers.EndpointProducerDeserializersResolver; +import org.apache.camel.k.loader.yaml.YamlDeserializerEndpointAwareBase; +import org.apache.camel.model.SagaActionUriDefinition; +import org.snakeyaml.engine.v2.nodes.Node; + +public class SagaActionUriDefinitionDeserializer extends YamlDeserializerEndpointAwareBase<SagaActionUriDefinition> { + public SagaActionUriDefinitionDeserializer() { + super(SagaActionUriDefinition.class); + } + + @Override + protected SagaActionUriDefinition newInstance() { + return new SagaActionUriDefinition(); + } + + @Override + protected SagaActionUriDefinition newInstance(String value) { + return new SagaActionUriDefinition(value); + } + + @Override + protected void setEndpointUri(CamelContext camelContext, SagaActionUriDefinition target, Map<String, Object> parameters) { + target.setUri(YamlSupport.createEndpointUri(camelContext, target.getUri(), parameters)); + } + + @Override + protected boolean setProperty(SagaActionUriDefinition target, String propertyKey, String propertyName, Node node) { + switch(propertyKey) { + case "inherit-error-handler": { + String val = asText(node); + target.setInheritErrorHandler(Boolean.valueOf(val)); + break; + } + case "uri": { + String val = asText(node); + target.setUri(val); + break; + } + default: { + String uri = EndpointProducerDeserializersResolver.resolveEndpointUri(propertyKey, node); + if (uri == null) { + return false; + } + if (target.getUri() != null) { + throw new IllegalStateException("url must not be set when using Endpoint DSL"); + } + target.setUri(uri); + } + } + return true; + } +} diff --git a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/ToDefinitionDeserializer.java b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/ToDefinitionDeserializer.java new file mode 100644 index 0000000..81dbbef --- /dev/null +++ b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/ToDefinitionDeserializer.java @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.loader.yaml.deserializers; + +import java.util.Map; + +import org.apache.camel.CamelContext; +import org.apache.camel.dsl.yaml.common.YamlSupport; +import org.apache.camel.dsl.yaml.deserializers.EndpointProducerDeserializersResolver; +import org.apache.camel.k.loader.yaml.YamlDeserializerEndpointAwareBase; +import org.apache.camel.model.ToDefinition; +import org.snakeyaml.engine.v2.nodes.Node; + +public class ToDefinitionDeserializer extends YamlDeserializerEndpointAwareBase<ToDefinition> { + public ToDefinitionDeserializer() { + super(ToDefinition.class); + } + + @Override + protected ToDefinition newInstance() { + return new ToDefinition(); + } + + @Override + protected ToDefinition newInstance(String value) { + return new ToDefinition(value); + } + + @Override + protected void setEndpointUri(CamelContext camelContext, ToDefinition target, Map<String, Object> parameters) { + target.setUri(YamlSupport.createEndpointUri(camelContext, target.getUri(), parameters)); + } + + @Override + protected boolean setProperty(ToDefinition target, String propertyKey, String propertyName, Node node) { + switch(propertyKey) { + case "inherit-error-handler": { + String val = asText(node); + target.setInheritErrorHandler(Boolean.valueOf(val)); + break; + } + case "pattern": { + String val = asText(node); + target.setPattern(val); + break; + } + case "uri": { + String val = asText(node); + target.setUri(val); + break; + } + default: { + String uri = EndpointProducerDeserializersResolver.resolveEndpointUri(propertyKey, node); + if (uri == null) { + return false; + } + if (target.getUri() != null) { + throw new IllegalStateException("url must not be set when using Endpoint DSL"); + } + target.setUri(uri); + } + } + return true; + } +} diff --git a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/ToDynamicDefinitionDeserializer.java b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/ToDynamicDefinitionDeserializer.java new file mode 100644 index 0000000..401c944 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/deserializers/ToDynamicDefinitionDeserializer.java @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.loader.yaml.deserializers; + +import java.util.Map; + +import org.apache.camel.CamelContext; +import org.apache.camel.dsl.yaml.common.YamlSupport; +import org.apache.camel.dsl.yaml.deserializers.EndpointProducerDeserializersResolver; +import org.apache.camel.k.loader.yaml.YamlDeserializerEndpointAwareBase; +import org.apache.camel.model.ToDynamicDefinition; +import org.snakeyaml.engine.v2.nodes.Node; + +public class ToDynamicDefinitionDeserializer extends YamlDeserializerEndpointAwareBase<ToDynamicDefinition> { + public ToDynamicDefinitionDeserializer() { + super(ToDynamicDefinition.class); + } + + @Override + protected ToDynamicDefinition newInstance() { + return new ToDynamicDefinition(); + } + + @Override + protected ToDynamicDefinition newInstance(String value) { + return new ToDynamicDefinition(value); + } + + @Override + protected void setEndpointUri(CamelContext camelContext, ToDynamicDefinition target, Map<String, Object> parameters) { + target.setUri(YamlSupport.createEndpointUri(camelContext, target.getUri(), parameters)); + } + + @Override + protected boolean setProperty(ToDynamicDefinition target, String propertyKey, String propertyName, Node node) { + switch(propertyKey) { + case "allow-optimised-components": { + String val = asText(node); + target.setAllowOptimisedComponents(val); + break; + } + case "auto-start-components": { + String val = asText(node); + target.setAutoStartComponents(val); + break; + } + case "cache-size": { + String val = asText(node); + target.setCacheSize(val); + break; + } + case "ignore-invalid-endpoint": { + String val = asText(node); + target.setIgnoreInvalidEndpoint(val); + break; + } + case "inherit-error-handler": { + String val = asText(node); + target.setInheritErrorHandler(Boolean.valueOf(val)); + break; + } + case "pattern": { + String val = asText(node); + target.setPattern(val); + break; + } + case "uri": { + String val = asText(node); + target.setUri(val); + break; + } + default: { + String uri = EndpointProducerDeserializersResolver.resolveEndpointUri(propertyKey, node); + if (uri == null) { + return false; + } + if (target.getUri() != null) { + throw new IllegalStateException("url must not be set when using Endpoint DSL"); + } + target.setUri(uri); + } + } + return true; + } +} diff --git a/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/YamlSourceLoaderTest.groovy b/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/YamlSourceLoaderTest.groovy index 0e27741..dae6386 100644 --- a/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/YamlSourceLoaderTest.groovy +++ b/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/YamlSourceLoaderTest.groovy @@ -20,6 +20,7 @@ import org.apache.camel.component.direct.DirectEndpoint import org.apache.camel.component.log.LogEndpoint import org.apache.camel.k.loader.yaml.support.TestRuntime import org.apache.camel.model.ToDefinition +import org.apache.camel.model.ToDynamicDefinition import spock.lang.AutoCleanup import spock.lang.Specification @@ -42,6 +43,73 @@ class YamlSourceLoaderTest extends Specification { } } + def "to with out of order parameters"() { + expect: + runtime.loadRoutes('classpath:yaml/routes_to_out_of_order.yaml') + runtime.start() + + with(runtime.context.routeDefinitions) { + it[0].input.endpointUri ==~ /direct:.*start/ + it[0].outputs[0] instanceof ToDefinition + } + with(runtime.context.endpoints.find {it instanceof LogEndpoint}, LogEndpoint) { + it.showAll + it.multiline + } + } + + def "to dynamic with parameters"() { + expect: + runtime.loadRoutes('classpath:yaml/routes_to_dynamic.yaml') + runtime.start() + + with(runtime.context.routeDefinitions) { + it[0].input.endpointUri ==~ /direct:.*start/ + with (it[0].outputs[0], ToDynamicDefinition) { + it.uri == 'log:info?multiline=true&showAll=true' + } + } + } + + def "to dynamic with out of order parameters"() { + expect: + runtime.loadRoutes('classpath:yaml/routes_to_dynamic_out_of_order.yaml') + runtime.start() + + with(runtime.context.routeDefinitions) { + it[0].input.endpointUri ==~ /direct:.*start/ + with (it[0].outputs[0], ToDynamicDefinition) { + it.uri == 'log:info?multiline=true&showAll=true' + } + } + } + + def "to dynamic alias with parameters"() { + expect: + runtime.loadRoutes('classpath:yaml/routes_to_dynamic_alias.yaml') + runtime.start() + + with(runtime.context.routeDefinitions) { + it[0].input.endpointUri ==~ /direct:.*start/ + with (it[0].outputs[0], ToDynamicDefinition) { + it.uri == 'log:info?multiline=true&showAll=true' + } + } + } + + def "to dynamic alias with out of order parameters"() { + expect: + runtime.loadRoutes('classpath:yaml/routes_to_dynamic_alias_out_of_order.yaml') + runtime.start() + + with(runtime.context.routeDefinitions) { + it[0].input.endpointUri ==~ /direct:.*start/ + with (it[0].outputs[0], ToDynamicDefinition) { + it.uri == 'log:info?multiline=true&showAll=true' + } + } + } + def "from with parameters"() { expect: runtime.loadRoutes('classpath:yaml/routes_from.yaml') @@ -70,7 +138,6 @@ class YamlSourceLoaderTest extends Specification { } } - def "all"() { expect: runtime.loadRoutes('classpath:yaml/routes_all.yaml') diff --git a/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic.yaml b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic.yaml new file mode 100644 index 0000000..3f6bea6 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic.yaml @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +- from: + uri: "direct:start" + steps: + - to-d: + uri: "log:info" + parameters: + show-all: true + multiline: true \ No newline at end of file diff --git a/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_alias.yaml b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_alias.yaml new file mode 100644 index 0000000..0ef99c8 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_alias.yaml @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +- from: + uri: "direct:start" + steps: + - tod: + uri: "log:info" + parameters: + show-all: true + multiline: true \ No newline at end of file diff --git a/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_alias_out_of_order.yaml b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_alias_out_of_order.yaml new file mode 100644 index 0000000..c93c315 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_alias_out_of_order.yaml @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +- from: + uri: "direct:start" + steps: + - tod: + parameters: + show-all: true + multiline: true + uri: "log:info" \ No newline at end of file diff --git a/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_out_of_order.yaml b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_out_of_order.yaml new file mode 100644 index 0000000..9eedcfd --- /dev/null +++ b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_dynamic_out_of_order.yaml @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +- from: + uri: "direct:start" + steps: + - to-d: + parameters: + show-all: true + multiline: true + uri: "log:info" \ No newline at end of file diff --git a/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_out_of_order.yaml b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_out_of_order.yaml new file mode 100644 index 0000000..5193868 --- /dev/null +++ b/camel-k-loader-yaml/impl/src/test/resources/yaml/routes_to_out_of_order.yaml @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +- from: + uri: "direct:start" + steps: + - to: + parameters: + show-all: true + multiline: true + uri: "log:info" \ No newline at end of file