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 <claus.ib...@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"); + } + }; + } +}