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 050789672c3a96363d360c12cf3585c8bda523dd Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Apr 15 21:33:43 2019 +0200 Move mock component out of camel-core. Work in progress. --- .../apache/camel/builder/ExpressionBuilder.java | 3 + .../camel/builder/ExpressionClauseSupport.java | 1 - .../camel/component/mock/AssertionClause.java | 3 +- .../mock/MockExpressionClauseSupport.java} | 80 +++++++++------------- 4 files changed, 36 insertions(+), 51 deletions(-) diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java b/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java index 5b4e215..ebbe476 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java @@ -77,6 +77,9 @@ import org.apache.camel.util.StringHelper; */ public final class ExpressionBuilder { + // TODO: Make this possible to have a base class in camel-support, and then extend it here, so we can have both + // and maybe deprecate this and refer to the builder in camel-support + private static final Pattern OFFSET_PATTERN = Pattern.compile("([+-])([^+-]+)"); /** diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java b/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java index b77da58..ddfd467 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java @@ -21,7 +21,6 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Expression; import org.apache.camel.support.builder.xml.Namespaces; -// TODO: All these should be behind support language so we can separate import org.apache.camel.model.language.ConstantExpression; import org.apache.camel.model.language.ExchangePropertyExpression; import org.apache.camel.model.language.GroovyExpression; diff --git a/core/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java b/core/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java index 795f7d5..5556cba 100644 --- a/core/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java +++ b/core/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java @@ -25,7 +25,6 @@ import org.apache.camel.Expression; import org.apache.camel.Predicate; import org.apache.camel.StreamCache; import org.apache.camel.builder.ExpressionClause; -import org.apache.camel.builder.ExpressionClauseSupport; import org.apache.camel.builder.ValueBuilder; import org.apache.camel.support.PredicateAssertHelper; import org.apache.camel.support.language.ExpressionModel; @@ -33,7 +32,7 @@ import org.apache.camel.support.language.ExpressionModel; /** * A builder of assertions on message exchanges */ -public abstract class AssertionClause extends ExpressionClauseSupport<ValueBuilder> implements Runnable { +public abstract class AssertionClause extends MockExpressionClauseSupport<ValueBuilder> implements Runnable { protected final MockEndpoint mock; protected volatile int currentIndex; diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java b/core/camel-core/src/main/java/org/apache/camel/component/mock/MockExpressionClauseSupport.java similarity index 94% copy from core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java copy to core/camel-core/src/main/java/org/apache/camel/component/mock/MockExpressionClauseSupport.java index b77da58..eb58656 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java +++ b/core/camel-core/src/main/java/org/apache/camel/component/mock/MockExpressionClauseSupport.java @@ -14,47 +14,36 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.builder; +package org.apache.camel.component.mock; import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Expression; -import org.apache.camel.support.builder.xml.Namespaces; -// TODO: All these should be behind support language so we can separate -import org.apache.camel.model.language.ConstantExpression; -import org.apache.camel.model.language.ExchangePropertyExpression; -import org.apache.camel.model.language.GroovyExpression; -import org.apache.camel.model.language.HeaderExpression; -import org.apache.camel.model.language.Hl7TerserExpression; -import org.apache.camel.model.language.JavaScriptExpression; +import org.apache.camel.builder.ExpressionBuilder; import org.apache.camel.model.language.JsonPathExpression; import org.apache.camel.model.language.LanguageExpression; import org.apache.camel.model.language.MethodCallExpression; -import org.apache.camel.model.language.MvelExpression; -import org.apache.camel.model.language.OgnlExpression; -import org.apache.camel.model.language.RefExpression; import org.apache.camel.model.language.SimpleExpression; -import org.apache.camel.model.language.SpELExpression; import org.apache.camel.model.language.TokenizerExpression; import org.apache.camel.model.language.XMLTokenizerExpression; import org.apache.camel.model.language.XPathExpression; import org.apache.camel.model.language.XQueryExpression; +import org.apache.camel.support.builder.xml.Namespaces; import org.apache.camel.support.language.ExpressionModel; /** * A support class for building expression clauses. */ -public class ExpressionClauseSupport<T> { +public class MockExpressionClauseSupport<T> { - // Implementation detail: We must use the specific model.language.xxx classes to make the DSL use these specific types - // which ensures that the route model dumped as XML uses these types, eg <header> instead of <language name="header"> etc. + // TODO: make the model.language class not here as we want to use this in camel-mock but have similar method api compatability private T result; private Expression expressionValue; private ExpressionModel expressionType; - public ExpressionClauseSupport(T result) { + public MockExpressionClauseSupport(T result) { this.result = result; } @@ -87,11 +76,7 @@ public class ExpressionClauseSupport<T> { * do not use this if you want dynamic values during routing. */ public T constant(Object value) { - if (value instanceof String) { - return expression(new ConstantExpression((String) value)); - } else { - return expression(ExpressionBuilder.constantExpression(value)); - } + return expression(ExpressionBuilder.constantExpression(value)); } /** @@ -119,8 +104,7 @@ public class ExpressionClauseSupport<T> { * An expression of an inbound message body */ public T body() { - // reuse simple as this allows the model to represent this as a known JAXB type - return expression(new SimpleExpression("${body}")); + return expression(ExpressionBuilder.bodyExpression()); } /** @@ -148,7 +132,7 @@ public class ExpressionClauseSupport<T> { * An expression of an inbound message header of the given name */ public T header(String name) { - return expression(new HeaderExpression(name)); + return expression(ExpressionBuilder.headerExpression(name)); } /** @@ -190,7 +174,7 @@ public class ExpressionClauseSupport<T> { * An expression of an exchange property of the given name */ public T exchangeProperty(String name) { - return expression(new ExchangePropertyExpression(name)); + return expression(ExpressionBuilder.exchangePropertyExpression(name)); } /** @@ -213,7 +197,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T method(String bean) { - return expression(new MethodCallExpression(bean)); + return expression(ExpressionBuilder.beanExpression(bean)); } /** @@ -292,7 +276,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T groovy(String text) { - return expression(new GroovyExpression(text)); + return expression(ExpressionBuilder.languageExpression("groovy", text)); } /** @@ -306,7 +290,7 @@ public class ExpressionClauseSupport<T> { */ @Deprecated public T javaScript(String text) { - return expression(new JavaScriptExpression(text)); + return expression(ExpressionBuilder.languageExpression("js", text)); } /** @@ -317,7 +301,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T jsonpath(String text) { - return jsonpath(text, false); + return expression(ExpressionBuilder.languageExpression("jsonpath", text)); } /** @@ -492,7 +476,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T ognl(String text) { - return expression(new OgnlExpression(text)); + return expression(ExpressionBuilder.languageExpression("ognl", text)); } /** @@ -503,7 +487,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T mvel(String text) { - return expression(new MvelExpression(text)); + return expression(ExpressionBuilder.languageExpression("mvel", text)); } /** @@ -514,7 +498,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T ref(String ref) { - return expression(new RefExpression(ref)); + return expression(ExpressionBuilder.languageExpression("ref", ref)); } /** @@ -525,7 +509,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T spel(String text) { - return expression(new SpELExpression(text)); + return expression(ExpressionBuilder.languageExpression("spel", text)); } /** @@ -536,7 +520,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T simple(String text) { - return expression(new SimpleExpression(text)); + return expression(ExpressionBuilder.languageExpression("simple", text)); } /** @@ -562,7 +546,7 @@ public class ExpressionClauseSupport<T> { * @return the builder to continue processing the DSL */ public T hl7terser(String text) { - return expression(new Hl7TerserExpression(text)); + return expression(ExpressionBuilder.languageExpression("hl7terser", text)); } /** @@ -765,11 +749,11 @@ public class ExpressionClauseSupport<T> { /** * Evaluates an XML token expression on the message body with XML content - * + * * @param path the xpath like path notation specifying the child nodes to tokenize * @param mode one of 'i', 'w', or 'u' to inject the namespaces to the token, to * wrap the token with its ancestor contet, or to unwrap to its element child - * @param namespaces the namespace map to the namespace bindings + * @param namespaces the namespace map to the namespace bindings * @param group to group by the given number * @return the builder to continue processing the DSL */ @@ -795,11 +779,11 @@ public class ExpressionClauseSupport<T> { public T xpath(String text) { return expression(new XPathExpression(text)); } - + /** * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath * expression</a> on the supplied header name's contents - * + * * @param text the expression to be evaluated * @param headerName the name of the header to apply the expression to * @return the builder to continue processing the DSL @@ -809,7 +793,7 @@ public class ExpressionClauseSupport<T> { expression.setHeaderName(headerName); return expression(expression); } - + /** * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath * expression</a> with the specified result type @@ -825,7 +809,7 @@ public class ExpressionClauseSupport<T> { return result; } - + /** * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath * expression</a> with the specified result type on the supplied @@ -842,7 +826,7 @@ public class ExpressionClauseSupport<T> { setExpressionType(expression); return result; } - + /** * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath @@ -857,7 +841,7 @@ public class ExpressionClauseSupport<T> { public T xpath(String text, Class<?> resultType, Namespaces namespaces) { return xpath(text, resultType, namespaces.getNamespaces()); } - + /** * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath * expression</a> with the specified result type and set of namespace @@ -938,7 +922,7 @@ public class ExpressionClauseSupport<T> { /** * Evaluates an <a href="http://camel.apache.org/xquery.html">XQuery * expression</a> - * + * * @param text the expression to be evaluated * @param headerName the name of the header to apply the expression to * @return the builder to continue processing the DSL @@ -964,8 +948,8 @@ public class ExpressionClauseSupport<T> { setExpressionType(expression); return result; } - - + + /** * Evaluates an <a * href="http://camel.apache.org/xquery.html">XQuery expression</a> @@ -996,7 +980,7 @@ public class ExpressionClauseSupport<T> { public T xquery(String text, Class<?> resultType, Namespaces namespaces) { return xquery(text, resultType, namespaces.getNamespaces()); } - + /** * Evaluates an <a * href="http://camel.apache.org/xquery.html">XQuery expression</a>