You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2016/04/07 21:27:29 UTC
[1/2] camel git commit: CAMEL-9838 - Add ends with operator to simple
language
Repository: camel
Updated Branches:
refs/heads/camel-2.17.x f465ab51d -> 8bdbe398c
refs/heads/master c134e5a6e -> ff085260d
CAMEL-9838 - Add ends with operator to simple language
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ff085260
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ff085260
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ff085260
Branch: refs/heads/master
Commit: ff085260d530e7bc5b23c124acdca8094739ee7d
Parents: c134e5a
Author: Jonathan Anstey <ja...@gmail.com>
Authored: Thu Apr 7 16:33:06 2016 -0230
Committer: Jonathan Anstey <ja...@gmail.com>
Committed: Thu Apr 7 16:33:12 2016 -0230
----------------------------------------------------------------------
.../apache/camel/language/simple/SimpleTokenizer.java | 1 +
.../camel/language/simple/ast/BinaryExpression.java | 2 ++
.../camel/language/simple/types/BinaryOperatorType.java | 8 +++++++-
.../camel/language/simple/SimpleOperatorTest.java | 12 +++++++++++-
4 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/ff085260/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java b/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
index 3977260..8956fad 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
@@ -66,6 +66,7 @@ public final class SimpleTokenizer {
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "in"));
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "range"));
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "not range"));
+ KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "ends with"));
// unary operators
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.unaryOperator, "++"));
http://git-wip-us.apache.org/repos/asf/camel/blob/ff085260/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java b/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
index 6d0e779..3c76c31 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
@@ -104,6 +104,8 @@ public class BinaryExpression extends BaseSimpleNode {
return createInExpression(leftExp, rightExp);
} else if (operator == BinaryOperatorType.RANGE || operator == BinaryOperatorType.NOT_RANGE) {
return createRangeExpression(expression, leftExp, rightExp);
+ } else if (operator == BinaryOperatorType.ENDS_WITH) {
+ return createExpression(leftExp, rightExp, PredicateBuilder.endsWith(leftExp, rightExp));
}
throw new SimpleParserException("Unknown binary operator " + operator, token.getIndex());
http://git-wip-us.apache.org/repos/asf/camel/blob/ff085260/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java b/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
index 2156c30..02e7665 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
@@ -22,7 +22,7 @@ package org.apache.camel.language.simple.types;
public enum BinaryOperatorType {
EQ, EQ_IGNORE, GT, GTE, LT, LTE, NOT_EQ, CONTAINS, NOT_CONTAINS, REGEX, NOT_REGEX,
- IN, NOT_IN, IS, NOT_IS, RANGE, NOT_RANGE;
+ IN, NOT_IN, IS, NOT_IS, RANGE, NOT_RANGE, ENDS_WITH;
public static BinaryOperatorType asOperator(String text) {
if ("==".equals(text)) {
@@ -59,6 +59,8 @@ public enum BinaryOperatorType {
return RANGE;
} else if ("not range".equals(text)) {
return NOT_RANGE;
+ } else if ("ends with".equals(text)) {
+ return ENDS_WITH;
}
throw new IllegalArgumentException("Operator not supported: " + text);
}
@@ -98,6 +100,8 @@ public enum BinaryOperatorType {
return "range";
} else if (operator == NOT_RANGE) {
return "not range";
+ } else if (operator == ENDS_WITH) {
+ return "ends with";
}
return "";
}
@@ -182,6 +186,8 @@ public enum BinaryOperatorType {
return new ParameterType[]{ParameterType.LiteralWithFunction, ParameterType.Function};
} else if (operator == NOT_RANGE) {
return new ParameterType[]{ParameterType.LiteralWithFunction, ParameterType.Function};
+ } else if (operator == ENDS_WITH) {
+ return null;
}
return null;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/ff085260/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
index d464ef9..dd315bf 100644
--- a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
+++ b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
@@ -321,7 +321,7 @@ public class SimpleOperatorTest extends LanguageTestSupport {
assertPredicate("${in.header.foo} contains 'abc'", true);
assertPredicate("${in.header.foo} contains 'def'", false);
}
-
+
public void testNotContains() throws Exception {
assertPredicate("${in.header.foo} not contains 'a'", false);
assertPredicate("${in.header.foo} not contains 'ab'", false);
@@ -500,6 +500,16 @@ public class SimpleOperatorTest extends LanguageTestSupport {
assertPredicate("${in.header.bar}-- == 124", false);
}
+ public void testEndsWith() throws Exception {
+ exchange.getIn().setBody("Hello there");
+ assertPredicate("${in.body} ends with 'there'", true);
+ assertPredicate("${in.body} ends with 're'", true);
+ assertPredicate("${in.body} ends with ' there'", true);
+ assertPredicate("${in.body} ends with 'Hello there'", true);
+ assertPredicate("${in.body} ends with 'Hello ther'", false);
+ assertPredicate("${in.body} ends with 'Hi'", false);
+ }
+
protected String getLanguageName() {
return "simple";
}
[2/2] camel git commit: CAMEL-9838 - Add ends with operator to simple
language
Posted by ja...@apache.org.
CAMEL-9838 - Add ends with operator to simple language
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8bdbe398
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8bdbe398
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8bdbe398
Branch: refs/heads/camel-2.17.x
Commit: 8bdbe398c2231de0f8e5e269f015e0fb7f716f57
Parents: f465ab5
Author: Jonathan Anstey <ja...@gmail.com>
Authored: Thu Apr 7 16:33:06 2016 -0230
Committer: Jonathan Anstey <ja...@gmail.com>
Committed: Thu Apr 7 16:55:45 2016 -0230
----------------------------------------------------------------------
.../apache/camel/language/simple/SimpleTokenizer.java | 1 +
.../camel/language/simple/ast/BinaryExpression.java | 2 ++
.../camel/language/simple/types/BinaryOperatorType.java | 8 +++++++-
.../camel/language/simple/SimpleOperatorTest.java | 12 +++++++++++-
4 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/8bdbe398/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java b/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
index 3977260..8956fad 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
@@ -66,6 +66,7 @@ public final class SimpleTokenizer {
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "in"));
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "range"));
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "not range"));
+ KNOWN_TOKENS.add(new SimpleTokenType(TokenType.binaryOperator, "ends with"));
// unary operators
KNOWN_TOKENS.add(new SimpleTokenType(TokenType.unaryOperator, "++"));
http://git-wip-us.apache.org/repos/asf/camel/blob/8bdbe398/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java b/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
index 6d0e779..3c76c31 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
@@ -104,6 +104,8 @@ public class BinaryExpression extends BaseSimpleNode {
return createInExpression(leftExp, rightExp);
} else if (operator == BinaryOperatorType.RANGE || operator == BinaryOperatorType.NOT_RANGE) {
return createRangeExpression(expression, leftExp, rightExp);
+ } else if (operator == BinaryOperatorType.ENDS_WITH) {
+ return createExpression(leftExp, rightExp, PredicateBuilder.endsWith(leftExp, rightExp));
}
throw new SimpleParserException("Unknown binary operator " + operator, token.getIndex());
http://git-wip-us.apache.org/repos/asf/camel/blob/8bdbe398/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java b/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
index 2156c30..02e7665 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
@@ -22,7 +22,7 @@ package org.apache.camel.language.simple.types;
public enum BinaryOperatorType {
EQ, EQ_IGNORE, GT, GTE, LT, LTE, NOT_EQ, CONTAINS, NOT_CONTAINS, REGEX, NOT_REGEX,
- IN, NOT_IN, IS, NOT_IS, RANGE, NOT_RANGE;
+ IN, NOT_IN, IS, NOT_IS, RANGE, NOT_RANGE, ENDS_WITH;
public static BinaryOperatorType asOperator(String text) {
if ("==".equals(text)) {
@@ -59,6 +59,8 @@ public enum BinaryOperatorType {
return RANGE;
} else if ("not range".equals(text)) {
return NOT_RANGE;
+ } else if ("ends with".equals(text)) {
+ return ENDS_WITH;
}
throw new IllegalArgumentException("Operator not supported: " + text);
}
@@ -98,6 +100,8 @@ public enum BinaryOperatorType {
return "range";
} else if (operator == NOT_RANGE) {
return "not range";
+ } else if (operator == ENDS_WITH) {
+ return "ends with";
}
return "";
}
@@ -182,6 +186,8 @@ public enum BinaryOperatorType {
return new ParameterType[]{ParameterType.LiteralWithFunction, ParameterType.Function};
} else if (operator == NOT_RANGE) {
return new ParameterType[]{ParameterType.LiteralWithFunction, ParameterType.Function};
+ } else if (operator == ENDS_WITH) {
+ return null;
}
return null;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/8bdbe398/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
index d464ef9..dd315bf 100644
--- a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
+++ b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
@@ -321,7 +321,7 @@ public class SimpleOperatorTest extends LanguageTestSupport {
assertPredicate("${in.header.foo} contains 'abc'", true);
assertPredicate("${in.header.foo} contains 'def'", false);
}
-
+
public void testNotContains() throws Exception {
assertPredicate("${in.header.foo} not contains 'a'", false);
assertPredicate("${in.header.foo} not contains 'ab'", false);
@@ -500,6 +500,16 @@ public class SimpleOperatorTest extends LanguageTestSupport {
assertPredicate("${in.header.bar}-- == 124", false);
}
+ public void testEndsWith() throws Exception {
+ exchange.getIn().setBody("Hello there");
+ assertPredicate("${in.body} ends with 'there'", true);
+ assertPredicate("${in.body} ends with 're'", true);
+ assertPredicate("${in.body} ends with ' there'", true);
+ assertPredicate("${in.body} ends with 'Hello there'", true);
+ assertPredicate("${in.body} ends with 'Hello ther'", false);
+ assertPredicate("${in.body} ends with 'Hi'", false);
+ }
+
protected String getLanguageName() {
return "simple";
}