https://stackoverflow.com/questions/43607569/simple-expression-in-sql-stored-component Added colon to Simple and parameter grammar
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0bb2844a Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0bb2844a Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0bb2844a Branch: refs/heads/master Commit: 0bb2844aa45576393a9016601b626c7defd3b370 Parents: 895c474 Author: Sami Nurminen <snurm...@gmail.com> Authored: Tue May 2 20:39:01 2017 +0300 Committer: Claus Ibsen <davscl...@apache.org> Committed: Mon May 8 14:35:26 2017 +0200 ---------------------------------------------------------------------- .../sql/stored/template/grammar/sspt.jj | 2 +- .../camel/component/sql/stored/ParserTest.java | 21 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0bb2844a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj ---------------------------------------------------------------------- diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj index 85a2f27..0ad95ed 100644 --- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj +++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj @@ -142,7 +142,7 @@ TOKEN: { } TOKEN: { - <#SPECIAL: (["#","_","-","'",".","$","{","}","\"","[","]"])> + <#SPECIAL: ([":","#","_","-","'",".","$","{","}","\"","[","]"])> } TOKEN: { http://git-wip-us.apache.org/repos/asf/camel/blob/0bb2844a/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java ---------------------------------------------------------------------- diff --git a/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java b/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java index 2534aed..ae807b2 100644 --- a/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java +++ b/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.Map; import org.apache.camel.Exchange; +import org.apache.camel.component.properties.PropertiesComponent; import org.apache.camel.component.sql.stored.template.TemplateParser; import org.apache.camel.component.sql.stored.template.ast.InputParameter; import org.apache.camel.component.sql.stored.template.ast.OutParameter; @@ -105,6 +106,26 @@ public class ParserTest extends CamelTestSupport { } @Test + public void colonInSimple() { + + PropertiesComponent pc = (PropertiesComponent) context.getComponent("properties"); + pc.setLocation("classpath:jndi.properties"); + Exchange exchange = createExchangeWithBody(1); + Template template = parser.parseTemplate("ADDNUMBERS2(-1342 ${properties:java.naming.factory.initial})"); + assertEquals("org.apache.camel.util.jndi.CamelInitialContextFactory",((InputParameter)template.getParameterList().get(0)).getValueExtractor().eval(exchange, null)); + } + + @Test + public void colonInLocation() { + Template template = parser.parseTemplate("ADDNUMBERS2(-1342 :#a:)"); + Exchange exchange = createExchangeWithBody(1); + + Map container = new HashMap(); + container.put("a:",1); + assertEquals(1, ((InputParameter) template.getParameterList().get(0)).getValueExtractor().eval(exchange, container)); + } + + @Test public void vendorSpecificPositiveSqlTypeOut() { Template template = parser.parseTemplate("ADDNUMBERS2(OUT 1342 h1)"); assertEquals(1342, ((OutParameter) template.getParameterList().get(0)).getSqlType());