This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a29bf5c5a43e5bb2eebf1f2fd6e7436a3a29522b
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Tue May 21 00:36:33 2019 +0200

    [CAMEL-13371] Move languages to camel-base
---
 .../camel/language/constant/ConstantLanguage.java  |   0
 .../apache/camel/language/constant/package.html    |   0
 .../camel/language/header/HeaderLanguage.java      |   0
 .../org/apache/camel/language/header/package.html  |   0
 .../java/org/apache/camel/language/package.html    |   0
 .../property/ExchangePropertyLanguage.java         |   0
 .../apache/camel/language/property/package.html    |   0
 .../org/apache/camel/language/ref/RefLanguage.java |   0
 .../org/apache/camel/language/ref/package.html     |   0
 .../camel/language/simple/BaseSimpleParser.java    |   0
 .../apache/camel/language/simple/FileLanguage.java |   0
 .../org/apache/camel/language/simple/Simple.java   |   0
 .../language/simple/SimpleExpressionBuilder.java   |  25 +-
 .../language/simple/SimpleExpressionParser.java    |   0
 .../camel/language/simple/SimpleLanguage.java      |   2 +-
 .../language/simple/SimplePredicateParser.java     |   0
 .../camel/language/simple/SimpleTokenizer.java     |   0
 .../camel/language/simple/ast/BaseSimpleNode.java  |   0
 .../language/simple/ast/BinaryExpression.java      |   2 +-
 .../apache/camel/language/simple/ast/Block.java    |   0
 .../apache/camel/language/simple/ast/BlockEnd.java |   0
 .../camel/language/simple/ast/BlockStart.java      |   0
 .../camel/language/simple/ast/CompositeNodes.java  |   2 +-
 .../camel/language/simple/ast/DoubleQuoteEnd.java  |   0
 .../language/simple/ast/DoubleQuoteStart.java      |   2 +-
 .../language/simple/ast/LiteralExpression.java     |   2 +-
 .../camel/language/simple/ast/LiteralNode.java     |   0
 .../language/simple/ast/LogicalExpression.java     |   2 +-
 .../camel/language/simple/ast/NullExpression.java  |   0
 .../language/simple/ast/SimpleFunctionEnd.java     |   0
 .../simple/ast/SimpleFunctionExpression.java       |   0
 .../language/simple/ast/SimpleFunctionStart.java   |   0
 .../camel/language/simple/ast/SimpleNode.java      |   0
 .../camel/language/simple/ast/SingleQuoteEnd.java  |   0
 .../language/simple/ast/SingleQuoteStart.java      |   2 +-
 .../camel/language/simple/ast/UnaryExpression.java |   0
 .../apache/camel/language/simple/ast/package.html  |   0
 .../org/apache/camel/language/simple/package.html  |   0
 .../language/simple/types/BinaryOperatorType.java  |   0
 .../language/simple/types/LogicalOperatorType.java |   0
 .../simple/types/SimpleIllegalSyntaxException.java |   0
 .../simple/types/SimpleParserException.java        |   0
 .../camel/language/simple/types/SimpleToken.java   |   0
 .../language/simple/types/SimpleTokenType.java     |   0
 .../camel/language/simple/types/TokenType.java     |   0
 .../language/simple/types/UnaryOperatorType.java   |   0
 .../camel/language/simple/types/package.html       |   0
 .../apache/camel/builder/ExpressionBuilder.java    |  12 -
 .../org/apache/camel/builder/ValueBuilder.java     | 274 +--------------------
 .../camel/support/builder/ExpressionBuilder.java   |  24 ++
 .../camel/support}/builder/ValueBuilder.java       |  22 +-
 51 files changed, 43 insertions(+), 328 deletions(-)

diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/constant/package.html 
b/core/camel-base/src/main/java/org/apache/camel/language/constant/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/constant/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/constant/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/header/HeaderLanguage.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/header/HeaderLanguage.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/header/package.html 
b/core/camel-base/src/main/java/org/apache/camel/language/header/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/header/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/header/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/package.html 
b/core/camel-base/src/main/java/org/apache/camel/language/package.html
similarity index 100%
rename from core/camel-core/src/main/java/org/apache/camel/language/package.html
rename to core/camel-base/src/main/java/org/apache/camel/language/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/property/ExchangePropertyLanguage.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/property/ExchangePropertyLanguage.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/property/ExchangePropertyLanguage.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/property/ExchangePropertyLanguage.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/property/package.html 
b/core/camel-base/src/main/java/org/apache/camel/language/property/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/property/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/property/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java 
b/core/camel-base/src/main/java/org/apache/camel/language/ref/RefLanguage.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/ref/RefLanguage.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/ref/package.html 
b/core/camel-base/src/main/java/org/apache/camel/language/ref/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/ref/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/ref/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/FileLanguage.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/FileLanguage.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/FileLanguage.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/Simple.java 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/Simple.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/Simple.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/Simple.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
similarity index 96%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
index 5be7afd..9a0cc77 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
@@ -35,7 +35,6 @@ import org.apache.camel.Expression;
 import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.model.language.MethodCallExpression;
 import org.apache.camel.spi.ExchangeFormatter;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.ExpressionAdapter;
@@ -534,12 +533,8 @@ public final class SimpleExpressionBuilder {
                 } catch (InvalidPayloadException e) {
                     throw 
CamelExecutionException.wrapCamelExecutionException(exchange, e);
                 }
-                // ognl is able to evaluate method name if it contains nested 
functions
-                // so we should not eager evaluate ognl as a string
-                MethodCallExpression call = new MethodCallExpression(exchange, 
ognl);
-                // set the instance to use
-                call.setInstance(body);
-                return call.evaluate(exchange);
+                Expression exp = ExpressionBuilder.beanExpression(body, ognl);
+                return exp.evaluate(exchange, Object.class);
             }
 
             @Override
@@ -595,10 +590,8 @@ public final class SimpleExpressionBuilder {
                 if (body != null) {
                     // ognl is able to evaluate method name if it contains 
nested functions
                     // so we should not eager evaluate ognl as a string
-                    MethodCallExpression call = new 
MethodCallExpression(exchange, ognl);
-                    // set the instance to use
-                    call.setInstance(body);
-                    return call.evaluate(exchange);
+                    return ExpressionBuilder.beanExpression(body, ognl)
+                            .evaluate(exchange, Object.class);
                 } else {
                     return null;
                 }
@@ -622,7 +615,7 @@ public final class SimpleExpressionBuilder {
             public Object evaluate(Exchange exchange) {
                 // ognl is able to evaluate method name if it contains nested 
functions
                 // so we should not eager evaluate ognl as a string
-                return new MethodCallExpression(exchange, 
ognl).evaluate(exchange);
+                return ExpressionBuilder.beanExpression(exchange, 
ognl).evaluate(exchange, Object.class);
             }
 
             @Override
@@ -647,7 +640,7 @@ public final class SimpleExpressionBuilder {
                 }
                 // ognl is able to evaluate method name if it contains nested 
functions
                 // so we should not eager evaluate ognl as a string
-                return new MethodCallExpression(context, 
ognl).evaluate(exchange);
+                return ExpressionBuilder.beanExpression(context, 
ognl).evaluate(exchange, Object.class);
             }
 
             @Override
@@ -672,7 +665,7 @@ public final class SimpleExpressionBuilder {
                 }
                 // ognl is able to evaluate method name if it contains nested 
functions
                 // so we should not eager evaluate ognl as a string
-                return new MethodCallExpression(body, ognl).evaluate(exchange);
+                return ExpressionBuilder.beanExpression(body, 
ognl).evaluate(exchange, Object.class);
             }
 
             @Override
@@ -781,7 +774,7 @@ public final class SimpleExpressionBuilder {
 
                 // ognl is able to evaluate method name if it contains nested 
functions
                 // so we should not eager evaluate ognl as a string
-                return new MethodCallExpression(exception, 
ognl).evaluate(exchange);
+                return ExpressionBuilder.beanExpression(exception, 
ognl).evaluate(exchange, Object.class);
             }
 
             @Override
@@ -836,7 +829,7 @@ public final class SimpleExpressionBuilder {
             }
             // the remainder is the rest of the ognl without the key
             String remainder = StringHelper.after(ognl, key + keySuffix);
-            return new MethodCallExpression(property, 
remainder).evaluate(exchange);
+            return ExpressionBuilder.beanExpression(property, 
remainder).evaluate(exchange, Object.class);
         }
 
         @Override
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
similarity index 99%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
index cbe9310..36226a8 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
@@ -21,13 +21,13 @@ import java.util.Map;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
 import org.apache.camel.StaticService;
-import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.spi.annotations.Language;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.LRUCache;
 import org.apache.camel.support.LRUCacheFactory;
 import org.apache.camel.support.LanguageSupport;
 import org.apache.camel.support.PredicateToExpressionAdapter;
+import org.apache.camel.support.builder.ExpressionBuilder;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BaseSimpleNode.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BaseSimpleNode.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BaseSimpleNode.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BaseSimpleNode.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
similarity index 99%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
index 22ac34b..1c94763 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
@@ -25,7 +25,6 @@ import java.util.regex.Pattern;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
-import org.apache.camel.builder.ValueBuilder;
 import org.apache.camel.language.simple.types.BinaryOperatorType;
 import org.apache.camel.language.simple.types.SimpleIllegalSyntaxException;
 import org.apache.camel.language.simple.types.SimpleParserException;
@@ -33,6 +32,7 @@ import org.apache.camel.language.simple.types.SimpleToken;
 import org.apache.camel.support.ObjectHelper;
 import org.apache.camel.support.builder.ExpressionBuilder;
 import org.apache.camel.support.builder.PredicateBuilder;
+import org.apache.camel.support.builder.ValueBuilder;
 
 /**
  * Represents a binary expression in the AST.
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/Block.java 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/Block.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/Block.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/Block.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BlockEnd.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BlockEnd.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BlockEnd.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BlockEnd.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BlockStart.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BlockStart.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/BlockStart.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/BlockStart.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
similarity index 97%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
index 7318905..7a2cfb4 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
@@ -20,8 +20,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.camel.Expression;
-import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.language.simple.types.SimpleToken;
+import org.apache.camel.support.builder.ExpressionBuilder;
 
 /**
  * A node which contains other {@link SimpleNode nodes}.
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
similarity index 97%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
index 6986ee7..3d6b23f 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
@@ -17,8 +17,8 @@
 package org.apache.camel.language.simple.ast;
 
 import org.apache.camel.Expression;
-import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.language.simple.types.SimpleToken;
+import org.apache.camel.support.builder.ExpressionBuilder;
 
 /**
  * Starts a block enclosed by double quotes
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
similarity index 97%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
index de7fc3b..157668b 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
@@ -17,8 +17,8 @@
 package org.apache.camel.language.simple.ast;
 
 import org.apache.camel.Expression;
-import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.language.simple.types.SimpleToken;
+import org.apache.camel.support.builder.ExpressionBuilder;
 
 /**
  * Represents literals in the AST.
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LiteralNode.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LiteralNode.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LiteralNode.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LiteralNode.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
similarity index 98%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
index 8177d25..d6599f1 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
@@ -19,11 +19,11 @@ package org.apache.camel.language.simple.ast;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.language.simple.types.LogicalOperatorType;
 import org.apache.camel.language.simple.types.SimpleParserException;
 import org.apache.camel.language.simple.types.SimpleToken;
 import org.apache.camel.support.ExpressionToPredicateAdapter;
+import org.apache.camel.support.builder.PredicateBuilder;
 import org.apache.camel.util.ObjectHelper;
 
 /**
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
similarity index 97%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
index 9a04fb1..a1b4158 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
@@ -17,8 +17,8 @@
 package org.apache.camel.language.simple.ast;
 
 import org.apache.camel.Expression;
-import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.language.simple.types.SimpleToken;
+import org.apache.camel.support.builder.ExpressionBuilder;
 
 /**
  * Starts a block enclosed by single quotes
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/ast/package.html
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/ast/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/ast/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/ast/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/package.html 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/package.html
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/LogicalOperatorType.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/LogicalOperatorType.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/LogicalOperatorType.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/LogicalOperatorType.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleParserException.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleParserException.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleParserException.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleParserException.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleToken.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleToken.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleToken.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleToken.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleTokenType.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleTokenType.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/SimpleTokenType.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/SimpleTokenType.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/TokenType.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/TokenType.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/TokenType.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/TokenType.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/UnaryOperatorType.java
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/UnaryOperatorType.java
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/UnaryOperatorType.java
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/UnaryOperatorType.java
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/language/simple/types/package.html
 
b/core/camel-base/src/main/java/org/apache/camel/language/simple/types/package.html
similarity index 100%
rename from 
core/camel-core/src/main/java/org/apache/camel/language/simple/types/package.html
rename to 
core/camel-base/src/main/java/org/apache/camel/language/simple/types/package.html
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 fe7ec30..3ee51ee 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
@@ -20,12 +20,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.spi.Language;
 import org.apache.camel.support.ExpressionAdapter;
-import org.apache.camel.support.IntrospectionSupport;
 import org.apache.camel.support.builder.Namespaces;
 import org.apache.camel.util.StringHelper;
 
-import static org.apache.camel.support.IntrospectionSupport.setProperty;
-
 /**
  * A helper class for working with <a 
href="http://camel.apache.org/expression.html";>expressions</a>.
  */
@@ -94,13 +91,4 @@ public final class ExpressionBuilder extends 
org.apache.camel.support.builder.Ex
         };
     }
 
-    private static void setProperty(Object bean, String name, Object value) {
-        try {
-            IntrospectionSupport.setProperty(bean, name, value);
-        } catch (Exception e) {
-            throw new IllegalArgumentException("Failed to set property " + 
name + " on " + bean
-                    + ". Reason: " + e, e);
-        }
-    }
-
 }
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 e10cd2b..377637d 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
@@ -16,176 +16,21 @@
  */
 package org.apache.camel.builder;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-
-import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
-import org.apache.camel.Predicate;
 import org.apache.camel.support.builder.Namespaces;
 
 /**
  * A builder of expressions or predicates based on values.
  */
-public class ValueBuilder implements Expression, Predicate {
-    private Expression expression;
-    private boolean not;
+public class ValueBuilder extends 
org.apache.camel.support.builder.ValueBuilder {
 
     public ValueBuilder(Expression expression) {
-        this.expression = expression;
-    }
-
-    @Override
-    public <T> T evaluate(Exchange exchange, Class<T> type) {
-        return expression.evaluate(exchange, type);
-    }
-
-    @Override
-    public boolean matches(Exchange exchange) {
-        return PredicateBuilder.toPredicate(getExpression()).matches(exchange);
-    }
-
-    public Expression getExpression() {
-        return expression;
-    }
-
-    @Override
-    public String toString() {
-        return expression.toString();
-    }
-
-    // Predicate builders
-    // 
-------------------------------------------------------------------------
-
-    public Predicate isNotEqualTo(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.isNotEqualTo(expression, 
right));
-    }
-
-    public Predicate isEqualTo(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.isEqualTo(expression, right));
-    }
-
-    public Predicate isEqualToIgnoreCase(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.isEqualToIgnoreCase(expression, 
right));
-    }
-
-    public Predicate isLessThan(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.isLessThan(expression, right));
-    }
-
-    public Predicate isLessThanOrEqualTo(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.isLessThanOrEqualTo(expression, 
right));
-    }
-
-    public Predicate isGreaterThan(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.isGreaterThan(expression, 
right));
-    }
-
-    public Predicate isGreaterThanOrEqualTo(Object value) {
-        Expression right = asExpression(value);
-        return 
onNewPredicate(PredicateBuilder.isGreaterThanOrEqualTo(expression, right));
-    }
-
-    public Predicate isInstanceOf(Class<?> type) {
-        return onNewPredicate(PredicateBuilder.isInstanceOf(expression, type));
-    }
-
-    public Predicate isNull() {
-        return onNewPredicate(PredicateBuilder.isNull(expression));
-    }
-
-    public Predicate isNotNull() {
-        return onNewPredicate(PredicateBuilder.isNotNull(expression));
-    }
-   
-    public Predicate not(Predicate predicate) {
-        return onNewPredicate(PredicateBuilder.not(predicate));
-    }
-
-    public Predicate in(Object... values) {
-        List<Predicate> predicates = new ArrayList<>();
-        for (Object value : values) {
-            Expression right = asExpression(value);
-            right = ExpressionBuilder.convertToExpression(right, expression);
-            Predicate predicate = 
onNewPredicate(PredicateBuilder.isEqualTo(expression, right));
-            predicates.add(predicate);
-        }
-        return in(predicates.toArray(new Predicate[predicates.size()]));
-    }
-
-    public Predicate in(Predicate... predicates) {
-        return onNewPredicate(PredicateBuilder.in(predicates));
-    }
-
-    public Predicate startsWith(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.startsWith(expression, right));
-    }
-
-    public Predicate endsWith(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.endsWith(expression, right));
-    }
-
-    /**
-     * Create a predicate that the left hand expression contains the value of
-     * the right hand expression
-     * 
-     * @param value the element which is compared to be contained within this
-     *                expression
-     * @return a predicate which evaluates to true if the given value 
expression
-     *         is contained within this expression value
-     */
-    public Predicate contains(Object value) {
-        Expression right = asExpression(value);
-        return onNewPredicate(PredicateBuilder.contains(expression, right));
-    }
-
-    /**
-     * Creates a predicate which is true if this expression matches the given
-     * regular expression
-     * 
-     * @param regex the regular expression to match
-     * @return a predicate which evaluates to true if the expression matches 
the
-     *         regex
-     */
-    public Predicate regex(String regex) {
-        return onNewPredicate(PredicateBuilder.regex(expression, regex));
+        super(expression);
     }
 
     // Expression builders
     // 
-------------------------------------------------------------------------
 
-    public ValueBuilder tokenize() {
-        return tokenize("\n");
-    }
-
-    public ValueBuilder tokenize(String token) {
-        Expression newExp = ExpressionBuilder.tokenizeExpression(expression, 
token);
-        return onNewValueBuilder(newExp);
-    }
-
-    public ValueBuilder tokenize(String token, int group, boolean skipFirst) {
-        return tokenize(token, "" + group, skipFirst);
-    }
-
-    public ValueBuilder tokenize(String token, String group, boolean 
skipFirst) {
-        Expression newExp = ExpressionBuilder.tokenizeExpression(expression, 
token);
-        if (group == null && skipFirst) {
-            // wrap in skip first (if group then it has its own skip first 
logic)
-            newExp = ExpressionBuilder.skipFirstExpression(newExp);
-        }
-        newExp = ExpressionBuilder.groupIteratorExpression(newExp, token, 
group, skipFirst);
-        return onNewValueBuilder(newExp);
-    }
-
     public ValueBuilder tokenizeXML(String tagName, String 
inheritNamespaceTagName) {
         Expression newExp = ExpressionBuilder.tokenizeXMLExpression(tagName, 
inheritNamespaceTagName);
         return onNewValueBuilder(newExp);
@@ -205,121 +50,6 @@ public class ValueBuilder implements Expression, Predicate 
{
         return onNewValueBuilder(newExp);
     }
 
-    /**
-     * Tokenizes the string conversion of this expression using the given
-     * regular expression
-     */
-    public ValueBuilder regexTokenize(String regex) {
-        Expression newExp = 
ExpressionBuilder.regexTokenizeExpression(expression, regex);
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Replaces all occurrences of the regular expression with the given
-     * replacement
-     */
-    public ValueBuilder regexReplaceAll(String regex, String replacement) {
-        Expression newExp = ExpressionBuilder.regexReplaceAll(expression, 
regex, replacement);
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Replaces all occurrences of the regular expression with the given
-     * replacement
-     */
-    public ValueBuilder regexReplaceAll(String regex, Expression replacement) {
-        Expression newExp = ExpressionBuilder.regexReplaceAll(expression, 
regex, replacement);
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Converts the current value to the given type using the registered type
-     * converters
-     * 
-     * @param type the type to convert the value to
-     * @return the current builder
-     */
-    public ValueBuilder convertTo(Class<?> type) {
-        Expression newExp = ExpressionBuilder.convertToExpression(expression, 
type);
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Converts the current value to a String using the registered type 
converters
-     * 
-     * @return the current builder
-     */
-    public ValueBuilder convertToString() {
-        return convertTo(String.class);
-    }
-
-    /**
-     * Appends the string evaluation of this expression with the given value
-     *
-     * @param value the value or expression to append
-     * @return the current builder
-     */
-    public ValueBuilder append(Object value) {
-        Expression newExp = ExpressionBuilder.append(expression, 
asExpression(value));
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Prepends the string evaluation of this expression with the given value
-     *
-     * @param value the value or expression to prepend
-     * @return the current builder
-     */
-    public ValueBuilder prepend(Object value) {
-        Expression newExp = ExpressionBuilder.prepend(expression, 
asExpression(value));
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Sorts the current value using the given comparator. The current value 
must be convertable
-     * to a {@link List} to allow sorting using the comparator.
-     *
-     * @param comparator  the comparator used by sorting
-     * @return the current builder
-     */
-    public ValueBuilder sort(Comparator<?> comparator) {
-        Expression newExp = ExpressionBuilder.sortExpression(expression, 
comparator);
-        return onNewValueBuilder(newExp);
-    }
-
-    /**
-     * Negates the built expression.
-     *
-     * @return the current builder
-     */
-    public ValueBuilder not() {
-        not = true;
-        return this;
-    }
-
-    // Implementation methods
-    // 
-------------------------------------------------------------------------
-
-    /**
-     * A strategy method to allow derived classes to deal with the newly 
created
-     * predicate in different ways
-     */
-    protected Predicate onNewPredicate(Predicate predicate) {
-        if (not) {
-            return PredicateBuilder.not(predicate);
-        } else {
-            return predicate;
-        }
-    }
-
-    protected Expression asExpression(Object value) {
-        if (value instanceof Expression) {
-            return (Expression)value;
-        } else {
-            return ExpressionBuilder.constantExpression(value);
-        }
-    }
-
     protected ValueBuilder onNewValueBuilder(Expression exp) {
         return new ValueBuilder(exp);
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
index b76ad9f..dd289d6 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
@@ -44,6 +44,7 @@ import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.support.ExpressionAdapter;
 import org.apache.camel.support.GroupIterator;
 import org.apache.camel.support.GroupTokenIterator;
+import org.apache.camel.support.IntrospectionSupport;
 import org.apache.camel.support.LanguageSupport;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -1520,6 +1521,21 @@ public class ExpressionBuilder {
         };
     }
 
+    public static Expression beanExpression(final Object bean, final String 
expression) {
+        return new ExpressionAdapter() {
+            public Object evaluate(Exchange exchange) {
+                Language language = 
exchange.getContext().resolveLanguage("bean");
+                setProperty(language, "bean", bean);
+                setProperty(language, "method", expression);
+                return language.createExpression(null).evaluate(exchange, 
Object.class);
+            }
+
+            public String toString() {
+                return "bean(" + bean + ", " + expression + ")";
+            }
+        };
+    }
+
     /**
      * Returns Simple expression or fallback to Constant expression if 
expression str is not Simple expression.
      */
@@ -1569,4 +1585,12 @@ public class ExpressionBuilder {
         };
     }
 
+    protected static void setProperty(Object bean, String name, Object value) {
+        try {
+            IntrospectionSupport.setProperty(bean, name, value);
+        } catch (Exception e) {
+            throw new IllegalArgumentException("Failed to set property " + 
name + " on " + bean + ". Reason: " + e, e);
+        }
+    }
+
 }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ValueBuilder.java
similarity index 91%
copy from 
core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
copy to 
core/camel-support/src/main/java/org/apache/camel/support/builder/ValueBuilder.java
index e10cd2b..833de82 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ValueBuilder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.builder;
+package org.apache.camel.support.builder;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -23,7 +23,6 @@ import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
-import org.apache.camel.support.builder.Namespaces;
 
 /**
  * A builder of expressions or predicates based on values.
@@ -186,25 +185,6 @@ public class ValueBuilder implements Expression, Predicate 
{
         return onNewValueBuilder(newExp);
     }
 
-    public ValueBuilder tokenizeXML(String tagName, String 
inheritNamespaceTagName) {
-        Expression newExp = ExpressionBuilder.tokenizeXMLExpression(tagName, 
inheritNamespaceTagName);
-        return onNewValueBuilder(newExp);
-    }
-
-    public ValueBuilder xtokenize(String path, Namespaces namespaces) {
-        return xtokenize(path, 'i', namespaces);
-    }
-
-    public ValueBuilder xtokenize(String path, char mode, Namespaces 
namespaces) {
-        Expression newExp = ExpressionBuilder.tokenizeXMLAwareExpression(path, 
mode, 1, namespaces);
-        return onNewValueBuilder(newExp);
-    }
-
-    public ValueBuilder tokenizePair(String startToken, String endToken, 
boolean includeTokens) {
-        Expression newExp = 
ExpressionBuilder.tokenizePairExpression(startToken, endToken, includeTokens);
-        return onNewValueBuilder(newExp);
-    }
-
     /**
      * Tokenizes the string conversion of this expression using the given
      * regular expression

Reply via email to