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 2019/04/17 09:41:20 UTC
[camel] 03/38: Move mock component out of camel-core. Work in
progress.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch mock
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b75878e52d7e81ccd5104a2415385cf863232fbe
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Apr 15 16:13:32 2019 +0200
Move mock component out of camel-core. Work in progress.
---
.../org/apache/camel/builder/ExpressionClause.java | 7 --
.../apache/camel/model/ProcessorDefinition.java | 40 ++++-----
...mlChoiceFilterRoutePropertyPlaceholderTest.java | 95 ++++++++++++++++++++++
3 files changed, 116 insertions(+), 26 deletions(-)
diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java b/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
index eed851f..6dd377b 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
+++ b/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
@@ -25,7 +25,6 @@ import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Message;
import org.apache.camel.Predicate;
-import org.apache.camel.model.ExpressionNode;
import org.apache.camel.support.ExpressionAdapter;
import org.apache.camel.support.ExpressionToPredicateAdapter;
import org.apache.camel.support.builder.xml.Namespaces;
@@ -42,12 +41,6 @@ public class ExpressionClause<T> implements Expression, Predicate {
this.delegate = new ExpressionClauseSupport<>(result);
}
- public static <T extends ExpressionNode> ExpressionClause<T> createAndSetExpression(T result) {
- ExpressionClause<T> clause = new ExpressionClause<>(result);
- result.setExpression(clause);
- return clause;
- }
-
// Helper expressions
// -------------------------------------------------------------------------
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index 46f2463..37ea037 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -94,6 +94,12 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
index = COUNTER.getAndIncrement();
}
+ private static <T extends ExpressionNode> ExpressionClause<T> createAndSetExpression(T result) {
+ ExpressionClause<T> clause = new ExpressionClause<>(result);
+ result.setExpression(clause);
+ return clause;
+ }
+
/**
* Gets the unique index number for when this {@link ProcessorDefinition} was created by its constructor.
* <p/>
@@ -1061,8 +1067,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<IdempotentConsumerDefinition> idempotentConsumer() {
IdempotentConsumerDefinition answer = new IdempotentConsumerDefinition();
addOutput(answer);
-
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1106,7 +1111,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<? extends FilterDefinition> filter() {
FilterDefinition filter = new FilterDefinition();
addOutput(filter);
- return ExpressionClause.createAndSetExpression(filter);
+ return createAndSetExpression(filter);
}
/**
@@ -1189,7 +1194,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<ValidateDefinition> validate() {
ValidateDefinition answer = new ValidateDefinition();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1397,7 +1402,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
RecipientListDefinition<Type> answer = new RecipientListDefinition<>();
answer.setDelimiter(delimiter);
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1410,7 +1415,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<RecipientListDefinition<Type>> recipientList() {
RecipientListDefinition<Type> answer = new RecipientListDefinition<>();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1463,7 +1468,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<RoutingSlipDefinition<Type>> routingSlip() {
RoutingSlipDefinition<Type> answer = new RoutingSlipDefinition<>();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1499,7 +1504,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<DynamicRouterDefinition<Type>> dynamicRouter() {
DynamicRouterDefinition<Type> answer = new DynamicRouterDefinition<>();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1564,7 +1569,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<SplitDefinition> split() {
SplitDefinition answer = new SplitDefinition();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1712,7 +1717,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<DelayDefinition> delay() {
DelayDefinition answer = new DelayDefinition();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1735,8 +1740,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<ThrottleDefinition> throttle() {
ThrottleDefinition answer = new ThrottleDefinition();
addOutput(answer);
-
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -1823,7 +1827,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<LoopDefinition> loop() {
LoopDefinition loop = new LoopDefinition();
addOutput(loop);
- return ExpressionClause.createAndSetExpression(loop);
+ return createAndSetExpression(loop);
}
/**
@@ -1864,10 +1868,8 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<LoopDefinition> loopDoWhile() {
LoopDefinition loop = new LoopDefinition();
loop.setDoWhile(true);
-
addOutput(loop);
-
- return ExpressionClause.createAndSetExpression(loop);
+ return createAndSetExpression(loop);
}
/**
@@ -2671,7 +2673,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public <T> ExpressionClause<SortDefinition<T>> sort() {
SortDefinition<T> answer = new SortDefinition<>();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -2852,7 +2854,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<EnrichDefinition> enrich() {
EnrichDefinition answer = new EnrichDefinition();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
@@ -3107,7 +3109,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
public ExpressionClause<PollEnrichDefinition> pollEnrich() {
PollEnrichDefinition answer = new PollEnrichDefinition();
addOutput(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return createAndSetExpression(answer);
}
/**
diff --git a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRoutePropertyPlaceholderTest.java b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRoutePropertyPlaceholderTest.java
new file mode 100644
index 0000000..b369dcc
--- /dev/null
+++ b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRoutePropertyPlaceholderTest.java
@@ -0,0 +1,95 @@
+/*
+ * 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.util;
+
+import java.util.Properties;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.model.ModelHelper;
+import org.apache.camel.spi.PropertiesComponent;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class DumpModelAsXmlChoiceFilterRoutePropertyPlaceholderTest extends ContextTestSupport {
+
+ @Test
+ public void testDumpModelAsXml() throws Exception {
+ String xml = ModelHelper.dumpModelAsXml(context, context.getRouteDefinition("myRoute"));
+ assertNotNull(xml);
+ log.info(xml);
+
+ assertTrue(xml.contains("<header>{{duke}}</header>"));
+ assertTrue(xml.contains("<header>{{best}}</header>"));
+ assertTrue(xml.contains("<header>{{extra}}</header>"));
+ assertTrue(xml.contains("<simple>${body} contains 'Camel'</simple>"));
+ }
+
+ @Test
+ public void testDumpModelAsXmAl() throws Exception {
+ String xml = ModelHelper.dumpModelAsXml(context, context.getRouteDefinition("a"));
+ assertNotNull(xml);
+ log.info(xml);
+
+ assertTrue(xml.contains("message=\"{{mypath}}\""));
+ assertTrue(xml.contains("<constant>bar</constant>"));
+ assertTrue(xml.contains("<expressionDefinition>header{test} is not null</expressionDefinition>"));
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ Properties prop = new Properties();
+ prop.put("duke", "dude");
+ prop.put("best", "gold");
+ prop.put("extra", "extra-gold");
+ prop.put("mypath", "xpath");
+
+ PropertiesComponent pc = context.getPropertiesComponent(true);
+ pc.setInitialProperties(prop);
+
+ from("direct:start").routeId("myRoute")
+ .to("log:input")
+ .transform().header("{{duke}}")
+ .choice()
+ .when().header("{{best}}")
+ .to("mock:gold")
+ .filter().header("{{extra}}")
+ .to("mock:extra-gold")
+ .endChoice()
+ .when().simple("${body} contains 'Camel'")
+ .to("mock:camel")
+ .otherwise()
+ .to("mock:other")
+ .end()
+ .to("mock:result");
+
+ from("seda:a").routeId("a")
+ .setProperty("foo").constant("bar")
+ .choice()
+ .when(header("test").isNotNull()).log("not null")
+ .when(xpath("/foo/bar")).log("{{mypath}}")
+ .end()
+ .to("mock:a");
+ }
+ };
+ }
+}