You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/07/04 09:23:53 UTC
svn commit: r1357115 - in /camel/branches/camel-2.9.x: ./
camel-core/src/main/java/org/apache/camel/language/simple/ast/
camel-core/src/test/java/org/apache/camel/language/simple/
Author: davsclaus
Date: Wed Jul 4 07:23:53 2012
New Revision: 1357115
URL: http://svn.apache.org/viewvc?rev=1357115&view=rev
Log:
CAMEL-5415: Fixed simple empty quoted literals to be empty expression when used in predicates, so you can compare against empty strings.
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1357114
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java?rev=1357115&r1=1357114&r2=1357115&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java Wed Jul 4 07:23:53 2012
@@ -17,6 +17,7 @@
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;
/**
@@ -39,11 +40,15 @@ public class DoubleQuoteStart extends Ba
@Override
public Expression createExpression(String expression) {
+ Expression answer = null;
if (block != null) {
- return block.createExpression(expression);
- } else {
- return null;
+ answer = block.createExpression(expression);
}
+ if (answer == null) {
+ // there quoted literal is empty
+ answer = ExpressionBuilder.constantExpression("");
+ }
+ return answer;
}
@Override
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java?rev=1357115&r1=1357114&r2=1357115&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java Wed Jul 4 07:23:53 2012
@@ -17,6 +17,7 @@
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;
/**
@@ -39,11 +40,15 @@ public class SingleQuoteStart extends Ba
@Override
public Expression createExpression(String expression) {
+ Expression answer = null;
if (block != null) {
- return block.createExpression(expression);
- } else {
- return null;
+ answer = block.createExpression(expression);
}
+ if (answer == null) {
+ // there quoted literal is empty
+ answer = ExpressionBuilder.constantExpression("");
+ }
+ return answer;
}
@Override
Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java?rev=1357115&r1=1357114&r2=1357115&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/language/simple/SimpleOperatorTest.java Wed Jul 4 07:23:53 2012
@@ -48,6 +48,24 @@ public class SimpleOperatorTest extends
assertPredicate("${body} != null", false);
}
+ public void testEmptyValue() throws Exception {
+ exchange.getIn().setBody("");
+ assertPredicate("${in.body} == null", false);
+ assertPredicate("${body} == null", false);
+
+ exchange.getIn().setBody("");
+ assertPredicate("${in.body} == ''", true);
+ assertPredicate("${body} == \"\"", true);
+
+ exchange.getIn().setBody(" ");
+ assertPredicate("${in.body} == ''", false);
+ assertPredicate("${body} == \"\"", false);
+
+ exchange.getIn().setBody("Value");
+ assertPredicate("${in.body} == ''", false);
+ assertPredicate("${body} == \"\"", false);
+ }
+
public void testAnd() throws Exception {
assertPredicate("${in.header.foo} == 'abc' && ${in.header.bar} == 123", true);
assertPredicate("${in.header.foo} == 'abc' && ${in.header.bar} == 444", false);