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 31b7d364bd54eb8f73703d8d7ff1009053dfdd6a
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Apr 15 13:15:19 2019 +0200

    Move mock component out of camel-core. Work in progress.
---
 .../blueprint/handler/CamelNamespaceHandler.java   |  2 +-
 .../spring/handler/CamelNamespaceHandler.java      |  2 +-
 .../org/apache/camel/builder/ExpressionClause.java | 32 ++++++++++++++--------
 .../camel/builder/ExpressionClauseSupport.java     | 17 ++++++++----
 .../org/apache/camel/builder/ValueBuilder.java     |  7 +++--
 .../camel/component/mock/AssertionClause.java      | 10 +++----
 .../apache/camel/model/AggregateDefinition.java    | 24 +++++++++++-----
 .../org/apache/camel/model/ChoiceDefinition.java   | 16 +++++++++--
 .../org/apache/camel/model/ExpressionNode.java     | 10 ++++++-
 .../apache/camel/model/ResequenceDefinition.java   |  7 +++++
 .../camel/model/language/ExpressionDefinition.java | 14 ++++++----
 .../util/DumpModelAsXmlChoiceFilterRouteTest.java  |  2 ++
 .../camel/support/language/ExpressionModel.java    | 29 ++++++++++++++++++++
 13 files changed, 129 insertions(+), 43 deletions(-)

diff --git 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
index 57a85de..330823e 100644
--- 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
+++ 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
@@ -62,7 +62,6 @@ import org.apache.camel.blueprint.CamelContextFactoryBean;
 import org.apache.camel.blueprint.CamelEndpointFactoryBean;
 import org.apache.camel.blueprint.CamelRestContextFactoryBean;
 import org.apache.camel.blueprint.CamelRouteContextFactoryBean;
-import org.apache.camel.builder.xml.Namespaces;
 import org.apache.camel.core.xml.AbstractCamelFactoryBean;
 import org.apache.camel.impl.CamelPostProcessorHelper;
 import org.apache.camel.impl.DefaultCamelContextNameStrategy;
@@ -88,6 +87,7 @@ import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.model.rest.RestBindingMode;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.VerbDefinition;
+import org.apache.camel.support.builder.xml.Namespaces;
 import org.apache.camel.spi.CamelContextNameStrategy;
 import org.apache.camel.spi.ComponentResolver;
 import org.apache.camel.spi.DataFormatResolver;
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
index 05bbf72..5acdf03 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
@@ -32,11 +32,11 @@ import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-import org.apache.camel.builder.xml.Namespaces;
 import org.apache.camel.core.xml.CamelJMXAgentDefinition;
 import org.apache.camel.core.xml.CamelPropertyPlaceholderDefinition;
 import org.apache.camel.core.xml.CamelStreamCachingStrategyDefinition;
 import org.apache.camel.impl.DefaultCamelContextNameStrategy;
+import org.apache.camel.support.builder.xml.Namespaces;
 import org.apache.camel.spi.CamelContextNameStrategy;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.spring.CamelBeanPostProcessor;
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 7b89cab..eed851f 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
@@ -24,16 +24,18 @@ import java.util.function.Supplier;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Message;
-import org.apache.camel.support.builder.xml.Namespaces;
+import org.apache.camel.Predicate;
 import org.apache.camel.model.ExpressionNode;
-import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.support.ExpressionAdapter;
+import org.apache.camel.support.ExpressionToPredicateAdapter;
+import org.apache.camel.support.builder.xml.Namespaces;
+import org.apache.camel.support.language.ExpressionModel;
 
 /**
  * Represents an expression clause within the DSL which when the expression is
  * complete the clause continues to another part of the DSL
  */
-public class ExpressionClause<T> extends ExpressionDefinition {
+public class ExpressionClause<T> implements Expression, Predicate {
     private ExpressionClauseSupport<T> delegate;
 
     public ExpressionClause(T result) {
@@ -1062,23 +1064,31 @@ public class ExpressionClause<T> extends 
ExpressionDefinition {
     // Properties
     // 
-------------------------------------------------------------------------
 
-    @Override
     public Expression getExpressionValue() {
         return delegate.getExpressionValue();
     }
 
-    @Override
-    protected void setExpressionValue(Expression expressionValue) {
-        delegate.setExpressionValue(expressionValue);
+    public ExpressionModel getExpressionType() {
+        return delegate.getExpressionType();
     }
 
     @Override
-    public ExpressionDefinition getExpressionType() {
-        return delegate.getExpressionType();
+    public <T> T evaluate(Exchange exchange, Class<T> type) {
+        if (getExpressionValue() != null) {
+            return getExpressionValue().evaluate(exchange, type);
+        } else {
+            Expression exp = 
delegate.getExpressionType().createExpression(exchange.getContext());
+            return exp.evaluate(exchange, type);
+        }
     }
 
     @Override
-    protected void setExpressionType(ExpressionDefinition expressionType) {
-        delegate.setExpressionType(expressionType);
+    public boolean matches(Exchange exchange) {
+        if (getExpressionValue() != null) {
+            return new 
ExpressionToPredicateAdapter(getExpressionValue()).matches(exchange);
+        } else {
+            Expression exp = 
delegate.getExpressionType().createExpression(exchange.getContext());
+            return new ExpressionToPredicateAdapter(exp).matches(exchange);
+        }
     }
 }
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 fa515c4..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
@@ -23,7 +23,6 @@ import org.apache.camel.Expression;
 import org.apache.camel.support.builder.xml.Namespaces;
 import org.apache.camel.model.language.ConstantExpression;
 import org.apache.camel.model.language.ExchangePropertyExpression;
-import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.model.language.GroovyExpression;
 import org.apache.camel.model.language.HeaderExpression;
 import org.apache.camel.model.language.Hl7TerserExpression;
@@ -40,6 +39,7 @@ 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.language.ExpressionModel;
 
 /**
  * A support class for building expression clauses.
@@ -51,7 +51,7 @@ public class ExpressionClauseSupport<T> {
 
     private T result;
     private Expression expressionValue;
-    private ExpressionDefinition expressionType;
+    private ExpressionModel expressionType;
 
     public ExpressionClauseSupport(T result) {
         this.result = result;
@@ -65,10 +65,16 @@ public class ExpressionClauseSupport<T> {
      */
     public T expression(Expression expression) {
         setExpressionValue(expression);
+        if (expression instanceof ExpressionModel) {
+            setExpressionType((ExpressionModel) expression);
+        }
         return result;
     }
 
-    public T expression(ExpressionDefinition expression) {
+    /**
+     * Specify an {@link ExpressionModel} instance
+     */
+    public T language(ExpressionModel expression) {
         setExpressionType(expression);
         return result;
     }
@@ -1081,11 +1087,11 @@ public class ExpressionClauseSupport<T> {
         this.expressionValue = expressionValue;
     }
 
-    public ExpressionDefinition getExpressionType() {
+    public ExpressionModel getExpressionType() {
         return expressionType;
     }
 
-    public void setExpressionType(ExpressionDefinition expressionType) {
+    public void setExpressionType(ExpressionModel expressionType) {
         this.expressionType = expressionType;
     }
 
@@ -1101,6 +1107,7 @@ public class ExpressionClauseSupport<T> {
     }
 
     protected void configureExpression(CamelContext camelContext, Expression 
expression) {
+        // noop
     }
 
 }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java 
b/core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index dc50ec4..a37d742 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -24,10 +24,10 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
-import org.apache.camel.support.builder.xml.Namespaces;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.support.ExpressionAdapter;
 import org.apache.camel.support.ExpressionToPredicateAdapter;
+import org.apache.camel.support.builder.xml.Namespaces;
 
 /**
  * A builder of expressions or predicates based on values.
@@ -92,11 +92,12 @@ public class ValueBuilder implements Expression, Predicate {
         final Expression right = new ExpressionAdapter() {
             @Override
             public Object evaluate(Exchange exchange) {
-                if (answer.getExpressionValue() != null) {
+                return answer.evaluate(exchange, Object.class);
+                /*if (answer.getExpressionValue() != null) {
                     return answer.getExpressionValue().evaluate(exchange, 
Object.class);
                 } else {
                     return answer.getExpressionType().evaluate(exchange);
-                }
+                }*/
             }
         };
         // okay now we can set the reference to the right-hand-side
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 b6f0a75..795f7d5 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
@@ -27,8 +27,8 @@ 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.model.language.ExpressionDefinition;
 import org.apache.camel.support.PredicateAssertHelper;
+import org.apache.camel.support.language.ExpressionModel;
 
 /**
  * A builder of assertions on message exchanges
@@ -52,13 +52,13 @@ public abstract class AssertionClause extends 
ExpressionClauseSupport<ValueBuild
     public ValueBuilder expression(Expression expression) {
         // must override this method as we provide null in the constructor
         super.expression(expression);
-        return new PredicateValueBuilder(getExpressionValue());
+        return new PredicateValueBuilder(expression);
     }
 
-    public ValueBuilder expression(ExpressionDefinition expression) {
+    public ValueBuilder language(ExpressionModel expression) {
         // must override this method as we provide null in the constructor
-        super.expression(expression);
-        return new 
PredicateValueBuilder(expression.createExpression(mock.getCamelContext()));
+        super.expression(expression.createExpression(mock.getCamelContext()));
+        return new PredicateValueBuilder(getExpressionValue());
     }
 
     /**
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java 
b/core/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
index ff3af9e..a81e290 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
@@ -41,6 +41,7 @@ import 
org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy;
 import org.apache.camel.spi.AggregationRepository;
 import org.apache.camel.spi.AsPredicate;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.support.language.ExpressionModel;
 
 /**
  * Aggregates many messages into a single message
@@ -163,18 +164,23 @@ public class AggregateDefinition extends 
ProcessorDefinition<AggregateDefinition
 
     @Override
     public void configureChild(ProcessorDefinition<?> output) {
-        if (expression instanceof ExpressionClause) {
-            ExpressionClause<?> clause = (ExpressionClause<?>) expression;
+        Expression exp = getExpression();
+        if (getExpression() != null && getExpression().getExpressionValue() != 
null) {
+            exp = getExpression().getExpressionValue();
+        }
+
+        if (exp instanceof ExpressionClause) {
+            ExpressionClause<?> clause = (ExpressionClause<?>) exp;
             if (clause.getExpressionType() != null) {
                 // if using the Java DSL then the expression may have been set 
using the
                 // ExpressionClause which is a fancy builder to define 
expressions and predicates
                 // using fluent builders in the DSL. However we need 
afterwards a callback to
                 // reset the expression to the expression type the 
ExpressionClause did build for us
-                expression = clause.getExpressionType();
-                // set the correlation expression from the expression type, as 
the model definition
-                // would then be accurate
-                correlationExpression = new ExpressionSubElementDefinition();
-                
correlationExpression.setExpressionType(clause.getExpressionType());
+                ExpressionModel model = clause.getExpressionType();
+                if (model instanceof ExpressionDefinition) {
+                    correlationExpression = new 
ExpressionSubElementDefinition();
+                    
correlationExpression.setExpressionType((ExpressionDefinition) model);
+                }
             }
         }
     }
@@ -922,6 +928,10 @@ public class AggregateDefinition extends 
ProcessorDefinition<AggregateDefinition
         this.expression = expression;
     }
 
+    public void setExpression(Expression expression) {
+        setExpression(new ExpressionDefinition(expression));
+    }
+
     protected void checkNoCompletedPredicate() {
         if (getCompletionPredicate() != null) {
             throw new IllegalArgumentException("There is already a 
completionPredicate defined for this aggregator: " + this);
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/ChoiceDefinition.java 
b/core/camel-core/src/main/java/org/apache/camel/model/ChoiceDefinition.java
index a926bd0..a782d5e 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ChoiceDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ChoiceDefinition.java
@@ -28,8 +28,10 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionClause;
+import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.spi.AsPredicate;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.support.language.ExpressionModel;
 import org.apache.camel.util.CollectionStringBuffer;
 import org.apache.camel.util.ObjectHelper;
 
@@ -253,14 +255,22 @@ public class ChoiceDefinition extends 
ProcessorDefinition<ChoiceDefinition> {
             return;
         }
         for (WhenDefinition when : whenClauses) {
-            if (when.getExpression() instanceof ExpressionClause) {
-                ExpressionClause<?> clause = (ExpressionClause<?>) 
when.getExpression();
+            ExpressionDefinition exp = when.getExpression();
+            if (exp.getExpressionType() != null) {
+                exp = exp.getExpressionType();
+            }
+            Predicate pre = exp.getPredicate();
+            if (pre instanceof ExpressionClause) {
+                ExpressionClause<?> clause = (ExpressionClause<?>) pre;
                 if (clause.getExpressionType() != null) {
                     // if using the Java DSL then the expression may have been 
set using the
                     // ExpressionClause which is a fancy builder to define 
expressions and predicates
                     // using fluent builders in the DSL. However we need 
afterwards a callback to
                     // reset the expression to the expression type the 
ExpressionClause did build for us
-                    when.setExpression(clause.getExpressionType());
+                    ExpressionModel model = clause.getExpressionType();
+                    if (model instanceof ExpressionDefinition) {
+                        when.setExpression((ExpressionDefinition) model);
+                    }
                 }
             }
         }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java 
b/core/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
index 2286858..7372044 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
@@ -28,6 +28,7 @@ import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionClause;
 import org.apache.camel.model.language.ExpressionDefinition;
+import org.apache.camel.support.language.ExpressionModel;
 
 /**
  * A base class for nodes which contain an expression and a number of outputs
@@ -63,6 +64,10 @@ public abstract class ExpressionNode extends 
ProcessorDefinition<ExpressionNode>
         return expression;
     }
 
+    public void setExpression(Expression expression) {
+        setExpression(new ExpressionDefinition(expression));
+    }
+
     public void setExpression(ExpressionDefinition expression) {
         // favour using the helper to set the expression as it can unwrap some 
unwanted builders when using Java DSL
         this.expression = expression;
@@ -110,7 +115,10 @@ public abstract class ExpressionNode extends 
ProcessorDefinition<ExpressionNode>
                 // ExpressionClause which is a fancy builder to define 
expressions and predicates
                 // using fluent builders in the DSL. However we need 
afterwards a callback to
                 // reset the expression to the expression type the 
ExpressionClause did build for us
-                setExpression(clause.getExpressionType());
+                ExpressionModel model = clause.getExpressionType();
+                if (model instanceof ExpressionDefinition) {
+                    setExpression((ExpressionDefinition) model);
+                }
             }
         }
 
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
index a463b3f..5285f3e 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
@@ -331,4 +331,11 @@ public class ResequenceDefinition extends 
ProcessorDefinition<ResequenceDefiniti
         this.expression = expression;
     }
 
+    /**
+     * Expression to use for re-ordering the messages, such as a header with a 
sequence number
+     */
+    public void setExpression(Expression expression) {
+        setExpression(new ExpressionDefinition(expression));
+    }
+
 }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
index 6e56a0b..7eb9a4c 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
@@ -44,6 +44,7 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.support.ExpressionToPredicateAdapter;
 import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.support.language.ExpressionModel;
 import org.apache.camel.util.CollectionStringBuffer;
 import org.apache.camel.util.ObjectHelper;
 
@@ -54,7 +55,7 @@ import org.apache.camel.util.ObjectHelper;
 @XmlRootElement
 @XmlType(name = "expression") // must be named expression
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ExpressionDefinition implements Expression, Predicate, 
OtherAttributesAware {
+public class ExpressionDefinition implements Expression, Predicate, 
OtherAttributesAware, ExpressionModel {
     @XmlAttribute
     @XmlID
     private String id;
@@ -97,17 +98,18 @@ public class ExpressionDefinition implements Expression, 
Predicate, OtherAttribu
 
     @Override
     public String toString() {
+        // favour using the output from expression value
+        if (getExpressionValue() != null) {
+            return getExpressionValue().toString();
+        }
+
         StringBuilder sb = new StringBuilder();
         if (getLanguage() != null) {
             sb.append(getLanguage()).append("{");
         }
         if (getPredicate() != null) {
             sb.append(getPredicate().toString());
-        }
-        if (getExpressionValue() != null) {
-            sb.append(getExpressionValue().toString());
-        }
-        if (getPredicate() == null && getExpressionValue() == null && 
getExpression() != null) {
+        } else if (getExpression() != null) {
             sb.append(getExpression());
         }
         if (getLanguage() != null) {
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java
index 7205913..1f8ba3f 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java
@@ -32,6 +32,7 @@ public class DumpModelAsXmlChoiceFilterRouteTest extends 
ContextTestSupport {
         assertNotNull(xml);
         log.info(xml);
 
+        assertTrue(xml.contains("<header>dude</header>"));
         assertTrue(xml.contains("<header>gold</header>"));
         assertTrue(xml.contains("<header>extra-gold</header>"));
         assertTrue(xml.contains("<simple>${body} contains 'Camel'</simple>"));
@@ -54,6 +55,7 @@ public class DumpModelAsXmlChoiceFilterRouteTest extends 
ContextTestSupport {
             public void configure() throws Exception {
                 from("direct:start").routeId("myRoute")
                     .to("log:input")
+                    .transform().header("dude")
                     .choice()
                         .when().header("gold")
                             .to("mock:gold")
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/language/ExpressionModel.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/language/ExpressionModel.java
new file mode 100644
index 0000000..9b812f1
--- /dev/null
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/language/ExpressionModel.java
@@ -0,0 +1,29 @@
+/*
+ * 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.support.language;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Expression;
+
+public interface ExpressionModel {
+
+    // TODO: move to api, and maybe have a @FunctionalInterface
+
+    Expression createExpression(CamelContext camelContext);
+
+
+}

Reply via email to