You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/07/14 12:07:37 UTC
[camel-k-runtime] branch master updated: Property substitution
doesn't happen in from URI #392
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 00aeba6 Property substitution doesn't happen in from URI #392
00aeba6 is described below
commit 00aeba69a861327414df59e4d5c2c249f86d9a2e
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Tue Jul 14 11:13:01 2020 +0200
Property substitution doesn't happen in from URI #392
---
.../k/loader/yaml/parser/ChoiceStepParser.java | 2 +-
.../yaml/parser/CircuitBreakerStepParser.java | 2 +-
.../k/loader/yaml/parser/DoTryStepParser.java | 2 +-
.../loader/yaml/parser/ErrorHandlerStepParser.java | 2 +-
.../k/loader/yaml/parser/FilterStepParser.java | 2 +-
.../camel/k/loader/yaml/parser/FromStepParser.java | 23 +----
.../yaml/parser/IdempotentConsumerParser.java | 2 +-
.../loader/yaml/parser/LoadBalanceStepParser.java | 2 +-
.../camel/k/loader/yaml/parser/LoopStepParser.java | 2 +-
.../k/loader/yaml/parser/MulticastStepParser.java | 2 +-
.../loader/yaml/parser/OnExceptionStepParser.java | 2 +-
.../k/loader/yaml/parser/PipelineStepParser.java | 2 +-
.../k/loader/yaml/parser/ResequenceStepParser.java | 2 +-
.../camel/k/loader/yaml/parser/RestStepParser.java | 2 +-
.../k/loader/yaml/parser/RouteStepParser.java | 23 +----
.../camel/k/loader/yaml/parser/SagaStepParser.java | 2 +-
.../k/loader/yaml/parser/SampleStepParser.java | 2 +-
.../k/loader/yaml/parser/SplitStepParser.java | 2 +-
.../camel/k/loader/yaml/parser/StepStepParser.java | 2 +-
.../k/loader/yaml/parser/ToDynamicStepParser.java | 23 +----
.../camel/k/loader/yaml/parser/ToStepParser.java | 23 +----
.../k/loader/yaml/parser/WireTapStepParser.java | 24 +-----
.../yaml/{spi => support}/StepParserSupport.java | 26 +++++-
.../k/loader/yaml/RouteWithPlaceholdersTest.groovy | 98 ++++++++++++++++++++++
.../apache/camel/k/loader/yaml/RoutesTest.groovy | 24 +++---
.../apache/camel/k/loader/yaml/TestSupport.groovy | 39 +++++----
.../camel/k/loader/yaml/parser/ToTest.groovy | 4 +-
...ed.yaml => RouteWithPlaceholdersTest_from.yaml} | 15 ++--
...d.yaml => RouteWithPlaceholdersTest_route.yaml} | 18 ++--
...dled.yaml => RouteWithPlaceholdersTest_to.yaml} | 20 +++--
...led.yaml => RouteWithPlaceholdersTest_tod.yaml} | 20 +++--
.../routes/RoutesTest_onExceptionHandled.yaml | 2 +-
.../k/knative/yaml/parser/KnativeStepParser.java | 2 +-
.../apache/camel/component/knative/knative.json | 2 +-
34 files changed, 229 insertions(+), 191 deletions(-)
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
index 96e15d5..c433a78 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ChoiceDefinition;
import org.apache.camel.model.OtherwiseDefinition;
import org.apache.camel.model.ProcessorDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/CircuitBreakerStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/CircuitBreakerStepParser.java
index 685b1ec..94b2238 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/CircuitBreakerStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/CircuitBreakerStepParser.java
@@ -24,7 +24,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.CircuitBreakerDefinition;
import org.apache.camel.model.HystrixConfigurationDefinition;
import org.apache.camel.model.OnFallbackDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DoTryStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DoTryStepParser.java
index c608552..b2447a3 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DoTryStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DoTryStepParser.java
@@ -24,7 +24,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.CatchDefinition;
import org.apache.camel.model.FinallyDefinition;
import org.apache.camel.model.ProcessorDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ErrorHandlerStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ErrorHandlerStepParser.java
index f4c10ca..95f731f 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ErrorHandlerStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ErrorHandlerStepParser.java
@@ -26,7 +26,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
import org.apache.camel.k.loader.yaml.spi.StartStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.RouteDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
index cb7ef13..1f2001d 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.FilterDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.reifier.FilterReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
index de986c0..b4424db 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
@@ -16,27 +16,23 @@
*/
package org.apache.camel.k.loader.yaml.parser;
-import java.io.UnsupportedEncodingException;
-import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.StartStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.util.URISupport;
@YAMLStepParser(id = "from", definition = FromStepParser.Definition.class)
public class FromStepParser implements StartStepParser {
@Override
public Object process(Context context) {
final Definition definition = context.node(Definition.class);
- final String uri = definition.getEndpointUri();
+ final String uri = StepParserSupport.createEndpointUri(definition.uri, definition.parameters);
final RouteDefinition route = context.builder().from(uri);
// as this is a start converter, steps are mandatory
@@ -57,21 +53,6 @@ public class FromStepParser implements StartStepParser {
public Map<String, Object> parameters;
@JsonProperty(required = true)
public List<Step> steps;
-
- @JsonIgnore
- public String getEndpointUri() {
- String answer = uri;
-
- if (parameters != null) {
- try {
- answer = URISupport.appendParametersToURI(answer, parameters);
- } catch (URISyntaxException | UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- return answer;
- }
}
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/IdempotentConsumerParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/IdempotentConsumerParser.java
index 806ce65..2ca318f 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/IdempotentConsumerParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/IdempotentConsumerParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.IdempotentConsumerDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.reifier.IdempotentConsumerReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoadBalanceStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoadBalanceStepParser.java
index c13c1ff..dafdccf 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoadBalanceStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoadBalanceStepParser.java
@@ -27,7 +27,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ExpressionSubElementDefinition;
import org.apache.camel.model.LoadBalanceDefinition;
import org.apache.camel.model.LoadBalancerDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
index 5aa6f3b..e019767 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.LoopDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.reifier.LoopReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
index 10248c6..404e0df 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.MulticastDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.reifier.MulticastReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/OnExceptionStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/OnExceptionStepParser.java
index f734a9c..0620628 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/OnExceptionStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/OnExceptionStepParser.java
@@ -25,7 +25,7 @@ import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
import org.apache.camel.k.loader.yaml.spi.StartStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ExpressionSubElementDefinition;
import org.apache.camel.model.OnExceptionDefinition;
import org.apache.camel.model.ProcessorDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
index e3835de..38bf466 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.PipelineDefinition;
import org.apache.camel.model.ProcessorDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
index d3ad79f..4c62147 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
@@ -26,7 +26,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.ResequenceDefinition;
import org.apache.camel.model.config.BatchResequencerConfig;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
index 5b97c71..32c6db4 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
@@ -25,7 +25,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.StartStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.rest.RestBindingMode;
import org.apache.camel.model.rest.RestDefinition;
import org.apache.camel.util.ObjectHelper;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
index b78dc03..602f36c 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
@@ -16,28 +16,24 @@
*/
package org.apache.camel.k.loader.yaml.parser;
-import java.io.UnsupportedEncodingException;
-import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.StartStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.RouteDefinition;
import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.URISupport;
@YAMLStepParser(id = "route", definition = RouteStepParser.Definition.class)
public class RouteStepParser implements StartStepParser {
@Override
public Object process(Context context) {
final Definition definition = context.node(Definition.class);
- final String uri = definition.from.getEndpointUri();
+ final String uri = StepParserSupport.createEndpointUri(definition.from.uri, definition.from.parameters);
final RouteDefinition route = context.builder().from(uri);
ObjectHelper.ifNotEmpty(definition.id, route::routeId);
@@ -78,21 +74,6 @@ public class RouteStepParser implements StartStepParser {
public From(String uri) {
this.uri = uri;
}
-
- @JsonIgnore
- public String getEndpointUri() {
- String answer = uri;
-
- if (parameters != null) {
- try {
- answer = URISupport.appendParametersToURI(answer, parameters);
- } catch (URISyntaxException | UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- return answer;
- }
}
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SagaStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SagaStepParser.java
index ff15a3d..c5de7f8 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SagaStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SagaStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.SagaDefinition;
import org.apache.camel.reifier.SagaReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
index 72fd80b..128a165 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.SamplingDefinition;
import org.apache.camel.reifier.SamplingReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
index e5661c1..3191cc0 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.SplitDefinition;
import org.apache.camel.reifier.SplitReifier;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepStepParser.java
index 7ddd352..e772406 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepStepParser.java
@@ -23,7 +23,7 @@ import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.model.Step;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.StepDefinition;
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
index 932f3b6..183e915 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
@@ -16,25 +16,23 @@
*/
package org.apache.camel.k.loader.yaml.parser;
-import java.io.UnsupportedEncodingException;
-import java.net.URISyntaxException;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.ToDynamicDefinition;
-import org.apache.camel.util.URISupport;
@YAMLStepParser(id = "tod", definition = ToDynamicStepParser.Definition.class)
public class ToDynamicStepParser implements ProcessorStepParser {
@Override
public ProcessorDefinition<?> toProcessor(Context context) {
final Definition definition = context.node(Definition.class);
- final ToDynamicDefinition answer = new ToDynamicDefinition(definition.getEndpointUri());
+ final String uri = StepParserSupport.createEndpointUri(definition.getUri(), definition.parameters);
+ final ToDynamicDefinition answer = new ToDynamicDefinition(uri);
return answer;
}
@@ -50,21 +48,6 @@ public class ToDynamicStepParser implements ProcessorStepParser {
public Definition(String uri) {
super(uri);
}
-
- @JsonIgnore
- public String getEndpointUri() {
- String answer = getUri();
-
- if (parameters != null) {
- try {
- answer = URISupport.appendParametersToURI(answer, parameters);
- } catch (URISyntaxException | UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- return answer;
- }
}
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
index 6308084..d31c05d 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
@@ -16,25 +16,23 @@
*/
package org.apache.camel.k.loader.yaml.parser;
-import java.io.UnsupportedEncodingException;
-import java.net.URISyntaxException;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.ToDefinition;
-import org.apache.camel.util.URISupport;
@YAMLStepParser(id = "to", definition = ToStepParser.Definition.class)
public class ToStepParser implements ProcessorStepParser {
@Override
public ProcessorDefinition<?> toProcessor(Context context) {
final Definition definition = context.node(Definition.class);
- final ToDefinition answer = new ToDefinition(definition.getEndpointUri());
+ final String uri = StepParserSupport.createEndpointUri(definition.getUri(), definition.parameters);
+ final ToDefinition answer = new ToDefinition(uri);
return answer;
}
@@ -50,21 +48,6 @@ public class ToStepParser implements ProcessorStepParser {
public Definition(String uri) {
super(uri);
}
-
- @JsonIgnore
- public String getEndpointUri() {
- String answer = uri;
-
- if (parameters != null) {
- try {
- answer = URISupport.appendParametersToURI(answer, parameters);
- } catch (URISyntaxException | UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- return answer;
- }
}
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
index 2b44652..7d4776d 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
@@ -16,15 +16,13 @@
*/
package org.apache.camel.k.loader.yaml.parser;
-import java.io.UnsupportedEncodingException;
-import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
import org.apache.camel.k.annotation.yaml.YAMLStepParser;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ExpressionSubElementDefinition;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.SetHeaderDefinition;
@@ -33,7 +31,6 @@ import org.apache.camel.model.WireTapDefinition;
import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.reifier.WireTapReifier;
import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.URISupport;
@YAMLStepParser(id = "wiretap", definition = WireTapStepParser.Definition.class)
public class WireTapStepParser implements ProcessorStepParser {
@@ -56,7 +53,9 @@ public class WireTapStepParser implements ProcessorStepParser {
}
}
- answer.setUri(definition.getEndpointUri());
+ answer.setUri(
+ StepParserSupport.createEndpointUri(definition.getUri(), definition.parameters)
+ );
return answer;
}
@@ -70,21 +69,6 @@ public class WireTapStepParser implements ProcessorStepParser {
public Boolean dynamicUri;
public NewExchangeDefinition newExchange;
public Map<String, Object> parameters;
-
- @JsonIgnore
- public String getEndpointUri() {
- String answer = getUri();
-
- if (parameters != null) {
- try {
- answer = URISupport.appendParametersToURI(answer, parameters);
- } catch (URISyntaxException | UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- return answer;
- }
}
@YAMLNodeDefinition
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/spi/StepParserSupport.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/support/StepParserSupport.java
similarity index 66%
rename from camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/spi/StepParserSupport.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/support/StepParserSupport.java
index 014ec7b..388984b 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/spi/StepParserSupport.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/support/StepParserSupport.java
@@ -14,11 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.k.loader.yaml.spi;
+package org.apache.camel.k.loader.yaml.support;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.camel.k.loader.yaml.model.Step;
+import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
+import org.apache.camel.k.loader.yaml.spi.StepParser;
+import org.apache.camel.k.loader.yaml.spi.StepParserException;
import org.apache.camel.model.OutputNode;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.util.ObjectHelper;
@@ -35,7 +40,7 @@ public final class StepParserSupport {
return value;
}
- public static ProcessorDefinition<?> convertSteps(ProcessorStepParser.Context context, ProcessorDefinition<?> parent, List<Step> steps) {
+ public static ProcessorDefinition<?> convertSteps(StepParser.Context context, ProcessorDefinition<?> parent, List<Step> steps) {
ObjectHelper.notNull(context, "step context");
ObjectHelper.notNull(parent, "parent");
@@ -60,4 +65,21 @@ public final class StepParserSupport {
return parent;
}
+
+ public static String createEndpointUri(String uri, Map<String, Object> parameters) {
+ String answer = uri;
+
+ if (parameters != null) {
+ String queryString = parameters.entrySet().stream()
+ .filter(entry -> entry.getValue() != null)
+ .map(entry -> String.format("%s=%s", entry.getKey(), entry.getValue()))
+ .collect(Collectors.joining("&"));
+
+ if (ObjectHelper.isNotEmpty(queryString)) {
+ answer += "?" + queryString;
+ }
+ }
+
+ return answer;
+ }
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RouteWithPlaceholdersTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RouteWithPlaceholdersTest.groovy
new file mode 100644
index 0000000..eece082
--- /dev/null
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RouteWithPlaceholdersTest.groovy
@@ -0,0 +1,98 @@
+/*
+ * 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 org.apache.camel.component.direct.DirectEndpoint
+
+class RouteWithPlaceholdersTest extends TestSupport {
+ def 'route'() {
+ setup:
+ def parameters = [
+ 'direct.id': 'myDirect',
+ 'direct.timeout': 1234,
+ 'direct.result': UUID.randomUUID().toString()
+ ]
+ def context = startContext {
+ propertiesComponent.initialProperties = parameters as Properties
+ }
+ when:
+ def uri = context.resolvePropertyPlaceholders('direct://{{direct.id}}?timeout={{direct.timeout}}')
+ def out = template(context).to(uri).request(String.class)
+ then:
+ out == parameters['direct.result']
+ cleanup:
+ context?.stop()
+ }
+ def 'from'() {
+ setup:
+ def parameters = [
+ 'direct.id': 'myDirect',
+ 'direct.timeout': 1234,
+ 'direct.result': UUID.randomUUID().toString()
+ ]
+ def context = startContext {
+ propertiesComponent.initialProperties = parameters as Properties
+ }
+ when:
+ def uri = context.resolvePropertyPlaceholders('direct://{{direct.id}}?timeout={{direct.timeout}}')
+ def out = template(context).to(uri).request(String.class)
+ def eps = context.getEndpoints().find { it instanceof DirectEndpoint }
+ then:
+ out == parameters['direct.result']
+ with (eps, DirectEndpoint) {
+ timeout == parameters['direct.timeout']
+ }
+ cleanup:
+ context?.stop()
+ }
+
+ def 'to'() {
+ setup:
+ def parameters = [
+ 'direct.id': 'myDirect',
+ 'direct.timeout': 1234,
+ 'direct.result': UUID.randomUUID().toString()
+ ]
+ def context = startContext {
+ propertiesComponent.initialProperties = parameters as Properties
+ }
+ when:
+ def out = template(context).to('direct:start').request(String.class)
+ then:
+ out == parameters['direct.result']
+ cleanup:
+ context?.stop()
+ }
+
+ def 'tod'() {
+ setup:
+ def parameters = [
+ 'direct.id': 'myDirect',
+ 'direct.timeout': 1234,
+ 'direct.result': UUID.randomUUID().toString()
+ ]
+ def context = startContext {
+ propertiesComponent.initialProperties = parameters as Properties
+ }
+ when:
+ def out = template(context).to('direct:start').request(String.class)
+ then:
+ out == parameters['direct.result']
+ cleanup:
+ context?.stop()
+ }
+}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
index 882e03a..29263cd 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
@@ -81,9 +81,9 @@ class RoutesTest extends TestSupport {
def 'aggregator'() {
setup:
- def context = startContext([
- 'aggregatorStrategy': new UseLatestAggregationStrategy()
- ])
+ def context = startContext {
+ registry.bind('aggregatorStrategy', new UseLatestAggregationStrategy())
+ }
mockEndpoint(context, 'mock:route') {
expectedMessageCount 2
@@ -104,9 +104,9 @@ class RoutesTest extends TestSupport {
def 'idempotentConsumer'() {
setup:
- def context = startContext([
- 'myRepo': new MemoryIdempotentRepository()
- ])
+ def context = startContext {
+ registry.bind('myRepo', new MemoryIdempotentRepository())
+ }
mockEndpoint(context,'mock:idempotent') {
expectedMessageCount = 3
@@ -132,9 +132,9 @@ class RoutesTest extends TestSupport {
def 'onExceptionHandled'() {
setup:
- def context = startContext([
- 'myFailingProcessor' : new MyFailingProcessor()
- ])
+ def context = startContext {
+ registry.bind('myFailingProcessor', new MyFailingProcessor())
+ }
when:
def out = context.createProducerTemplate().requestBody('direct:start', 'Hello World');
then:
@@ -145,9 +145,9 @@ class RoutesTest extends TestSupport {
def 'errorHandler'() {
setup:
- def context = startContext([
- 'myFailingProcessor' : new MyFailingProcessor()
- ])
+ def context = startContext {
+ registry.bind('myFailingProcessor', new MyFailingProcessor())
+ }
mockEndpoint(context, 'mock:on-error') {
expectedMessageCount = 1
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy
index a2426a6..0971ad0 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy
@@ -19,6 +19,7 @@ package org.apache.camel.k.loader.yaml
import com.fasterxml.jackson.databind.JsonNode
import groovy.util.logging.Slf4j
import org.apache.camel.CamelContext
+import org.apache.camel.FluentProducerTemplate
import org.apache.camel.builder.RouteBuilder
import org.apache.camel.component.mock.MockEndpoint
import org.apache.camel.impl.DefaultCamelContext
@@ -58,32 +59,37 @@ class TestSupport extends Specification {
}
static CamelContext startContext(String content) {
- return startContext(content, [:])
+ return startContext(content, null)
}
- static CamelContext startContext(String content, Map<String, Object> beans) {
+ static CamelContext startContext(
+ String content,
+ @DelegatesTo(CamelContext) Closure<CamelContext> closure) {
return startContext(
new ByteArrayInputStream(content.stripMargin().getBytes(StandardCharsets.UTF_8)),
- beans
+ closure
)
}
static CamelContext startContext(InputStream content) {
- return startContext(content, [:])
+ return startContext(content, null)
}
- static CamelContext startContext(InputStream content, Map<String, Object> beans) {
+ static CamelContext startContext(
+ InputStream content,
+ @DelegatesTo(CamelContext) Closure closure) {
def context = new DefaultCamelContext()
def builder = new YamlSourceLoader().builder(content)
- if (beans) {
- beans.each {
- k, v -> context.registry.bind(k, v)
- }
- }
-
context.disableJMX()
context.setStreamCaching(true)
+
+ if (closure) {
+ closure.resolveStrategy = Closure.DELEGATE_ONLY
+ closure.delegate = context
+ closure.call()
+ }
+
context.addRoutes(builder)
context.start()
@@ -91,16 +97,16 @@ class TestSupport extends Specification {
}
CamelContext startContext() {
- return startContext([:])
+ return startContext(null as Closure)
}
- CamelContext startContext(Map<String, Object> beans) {
+ CamelContext startContext(@DelegatesTo(CamelContext) Closure closure) {
def name = specificationContext.currentIteration.name.replace(' ', '_')
def path = "/routes/${specificationContext.currentSpec.name}_${name}.yaml"
return startContext(
TestSupport.class.getResourceAsStream(path) as InputStream,
- beans
+ closure
)
}
@@ -136,4 +142,9 @@ class TestSupport extends Specification {
}
throw new IllegalArgumentException("No parser of ${id}")
}
+
+ static FluentProducerTemplate template(CamelContext context) {
+ return context.createFluentProducerTemplate()
+ }
+
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy
index bfd54ae..a60db22 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy
@@ -33,7 +33,7 @@ class ToTest extends TestSupport {
def processor = new ToStepParser().toProcessor(stepContext)
then:
with(processor, ToDefinition) {
- endpointUri == 'seda://test?queueSize=1'
+ endpointUri ==~ /seda:(\/\/)?test\?queueSize=1/
}
}
@@ -45,7 +45,7 @@ class ToTest extends TestSupport {
def processor = new ToStepParser().toProcessor(stepContext)
then:
with(processor, ToDefinition) {
- endpointUri == 'seda://test'
+ endpointUri ==~ /seda:(\/\/)?test/
}
}
}
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_from.yaml
similarity index 76%
copy from camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
copy to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_from.yaml
index 3bd3bcb..c5df343 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_from.yaml
@@ -14,15 +14,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-- on-exception:
- exceptioons:
- - org.apache.camel.k.loader.yaml.support.MyException
- handled: true
- steps:
- - transform:
- constant: "Sorry"
- from:
- uri: "direct:start"
+ uri: "direct:{{direct.id}}"
+ parameters:
+ timeout: "{{direct.timeout}}"
steps:
- - process:
- ref: "myFailingProcessor"
\ No newline at end of file
+ - set-body:
+ constant: "{{direct.result}}"
\ No newline at end of file
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_route.yaml
similarity index 75%
copy from camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
copy to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_route.yaml
index 3bd3bcb..08e9791 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_route.yaml
@@ -14,15 +14,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-- on-exception:
- exceptioons:
- - org.apache.camel.k.loader.yaml.support.MyException
- handled: true
+- route:
+ from:
+ uri: "direct:{{direct.id}}"
+ parameters:
+ timeout: "{{direct.timeout}}"
steps:
- - transform:
- constant: "Sorry"
-- from:
- uri: "direct:start"
- steps:
- - process:
- ref: "myFailingProcessor"
\ No newline at end of file
+ - set-body:
+ constant: "{{direct.result}}"
\ No newline at end of file
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_to.yaml
similarity index 76%
copy from camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
copy to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_to.yaml
index 3bd3bcb..a42700e 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_to.yaml
@@ -14,15 +14,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-- on-exception:
- exceptioons:
- - org.apache.camel.k.loader.yaml.support.MyException
- handled: true
- steps:
- - transform:
- constant: "Sorry"
- from:
uri: "direct:start"
steps:
- - process:
- ref: "myFailingProcessor"
\ No newline at end of file
+ - to:
+ uri: "direct:{{direct.id}}"
+ parameters:
+ timeout: "{{direct.timeout}}"
+- from:
+ uri: "direct:{{direct.id}}"
+ parameters:
+ timeout: "{{direct.timeout}}"
+ steps:
+ - set-body:
+ constant: "{{direct.result}}"
\ No newline at end of file
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_tod.yaml
similarity index 76%
copy from camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
copy to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_tod.yaml
index 3bd3bcb..1ff60fd 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RouteWithPlaceholdersTest_tod.yaml
@@ -14,15 +14,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-- on-exception:
- exceptioons:
- - org.apache.camel.k.loader.yaml.support.MyException
- handled: true
- steps:
- - transform:
- constant: "Sorry"
- from:
uri: "direct:start"
steps:
- - process:
- ref: "myFailingProcessor"
\ No newline at end of file
+ - tod:
+ uri: "direct:{{direct.id}}"
+ parameters:
+ timeout: "{{direct.timeout}}"
+- from:
+ uri: "direct:{{direct.id}}"
+ parameters:
+ timeout: "{{direct.timeout}}"
+ steps:
+ - set-body:
+ constant: "{{direct.result}}"
\ No newline at end of file
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
index 3bd3bcb..56d5a17 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_onExceptionHandled.yaml
@@ -15,7 +15,7 @@
# limitations under the License.
#
- on-exception:
- exceptioons:
+ exceptions:
- org.apache.camel.k.loader.yaml.support.MyException
handled: true
steps:
diff --git a/camel-k-runtime-knative/src/main/java/org/apache/camel/k/knative/yaml/parser/KnativeStepParser.java b/camel-k-runtime-knative/src/main/java/org/apache/camel/k/knative/yaml/parser/KnativeStepParser.java
index 8e07785..0027a61 100644
--- a/camel-k-runtime-knative/src/main/java/org/apache/camel/k/knative/yaml/parser/KnativeStepParser.java
+++ b/camel-k-runtime-knative/src/main/java/org/apache/camel/k/knative/yaml/parser/KnativeStepParser.java
@@ -25,7 +25,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.camel.component.knative.spi.Knative;
import org.apache.camel.k.loader.yaml.spi.ProcessorStepParser;
import org.apache.camel.k.loader.yaml.spi.StartStepParser;
-import org.apache.camel.k.loader.yaml.spi.StepParserSupport;
+import org.apache.camel.k.loader.yaml.support.StepParserSupport;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.ToDefinition;
diff --git a/camel-knative/camel-knative/src/generated/resources/org/apache/camel/component/knative/knative.json b/camel-knative/camel-knative/src/generated/resources/org/apache/camel/component/knative/knative.json
index 24c9cd1..12371c6 100644
--- a/camel-knative/camel-knative/src/generated/resources/org/apache/camel/component/knative/knative.json
+++ b/camel-knative/camel-knative/src/generated/resources/org/apache/camel/component/knative/knative.json
@@ -11,7 +11,7 @@
"supportLevel": "Preview",
"groupId": "org.apache.camel.k",
"artifactId": "camel-knative",
- "version": "1.4.0-SNAPSHOT",
+ "version": "1.5.0-SNAPSHOT",
"scheme": "knative",
"extendsScheme": "",
"syntax": "knative:type\/name",