Repository: camel Updated Branches: refs/heads/camel-2.14.x 0c55f5600 -> f7b4bedf2 refs/heads/master 39ccf5d6d -> c4d6eb333
CAMEL-8099: Add support for using default values in Camel property placeholder.: Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f7b4bedf Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f7b4bedf Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f7b4bedf Branch: refs/heads/camel-2.14.x Commit: f7b4bedf282905264399786027df09b9d329bd90 Parents: e8abd63 Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Dec 2 17:30:53 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Dec 2 19:44:16 2014 +0100 ---------------------------------------------------------------------- .../simple/ast/SimpleFunctionExpression.java | 12 +++++++- .../PropertiesComponentGetOrElseTest.java | 29 ++++++++++++++++++++ .../PropertiesComponentSimpleLanguageTest.java | 6 ++-- 3 files changed, 43 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/f7b4bedf/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java index 4eedcba..d5b648a 100644 --- a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java +++ b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java @@ -157,7 +157,17 @@ public class SimpleFunctionExpression extends LiteralExpression { if (remainder != null) { String[] parts = remainder.split(":"); if (parts.length > 2) { - throw new SimpleParserException("Valid syntax: ${properties:[locations]:key} was: " + function, token.getIndex()); + throw new SimpleParserException("Valid syntax: ${properties:key[:default]} was: " + function, token.getIndex()); + } + return ExpressionBuilder.propertiesComponentExpression(remainder, null); + } + + // properties-location: prefix + remainder = ifStartsWithReturnRemainder("properties-location:", function); + if (remainder != null) { + String[] parts = remainder.split(":"); + if (parts.length > 2) { + throw new SimpleParserException("Valid syntax: ${properties-location:location:key[:default]} was: " + function, token.getIndex()); } String locations = null; http://git-wip-us.apache.org/repos/asf/camel/blob/f7b4bedf/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java index e5e5d12..46db7df 100644 --- a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java @@ -62,6 +62,35 @@ public class PropertiesComponentGetOrElseTest extends ContextTestSupport { assertMockEndpointsSatisfied(); } + public void testPropertiesComponentSimpleLanguage() throws Exception { + context.addRoutes(new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:start") + .transform().simple("Hi ${body} do you think ${properties:cool.name} rocks?"); + } + }); + context.start(); + + String reply = template.requestBody("direct:start", "Claus", String.class); + assertEquals("Hi Claus do you think Camel rocks?", reply); + } + + public void testPropertiesComponentSimpleLanguageUsingDefaultValue() throws Exception { + context.addRoutes(new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:start") + .transform().simple("Hi ${body} do you think ${properties:unknown:Beer} rocks?"); + } + }); + context.start(); + + String reply = template.requestBody("direct:start", "Claus", String.class); + assertEquals("Hi Claus do you think Beer rocks?", reply); + } + + @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); http://git-wip-us.apache.org/repos/asf/camel/blob/f7b4bedf/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java index 860a1ed..80ed133 100644 --- a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSimpleLanguageTest.java @@ -65,7 +65,7 @@ public class PropertiesComponentSimpleLanguageTest extends ContextTestSupport { @Override public void configure() throws Exception { from("direct:start") - .transform().simple("Hi ${body}. ${properties:org/apache/camel/component/properties/bar.properties:bar.quote}."); + .transform().simple("Hi ${body}. ${properties-location:org/apache/camel/component/properties/bar.properties:bar.quote}."); } }); context.start(); @@ -80,7 +80,7 @@ public class PropertiesComponentSimpleLanguageTest extends ContextTestSupport { @Override public void configure() throws Exception { from("direct:start") - .transform().simple("Hi ${body}. ${properties:org/apache/camel/component/properties/bar.properties:bar.quote}."); + .transform().simple("Hi ${body}. ${properties-location:org/apache/camel/component/properties/bar.properties:bar.quote}."); } }); context.start(); @@ -95,7 +95,7 @@ public class PropertiesComponentSimpleLanguageTest extends ContextTestSupport { @Override public void configure() throws Exception { from("direct:start") - .transform().simple("Hi ${body}. ${properties:org/apache/camel/component/properties/bar.properties," + .transform().simple("Hi ${body}. ${properties-location:org/apache/camel/component/properties/bar.properties," + "org/apache/camel/component/properties/cheese.properties:cheese.quote}."); } });