This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch properties in repository https://gitbox.apache.org/repos/asf/camel.git
commit c1067b705a26960362ede672fb3d06a633fae533 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Jul 3 20:45:22 2019 +0200 CAMEL-13708: Properties component should have API to make it easier to lookup a property on-demand or from all pre-loaded properties. --- .../properties/DefaultPropertiesParser.java | 2 +- .../component/properties/PropertiesComponent.java | 16 +++++++ .../src/main/docs/eips/setHeader-eip.adoc | 2 +- .../OptionalPropertiesDslInvalidSyntaxTest.java | 4 +- .../properties/OptionalPropertiesDslTest.java | 4 +- ...onentAdviceWithInterceptSendToEndpointTest.java | 4 +- ...opertiesComponentConcatenatePropertiesTest.java | 4 +- .../PropertiesComponentEncodingTest.java | 3 +- ... PropertiesComponentEndpointMandatoryTest.java} | 50 +--------------------- .../PropertiesComponentEndpointTest.java | 21 --------- .../PropertiesComponentGetOrElseTest.java | 4 +- ...ertiesComponentInterceptSendToEndpointTest.java | 4 +- .../PropertiesComponentLoadPropertiesTest.java | 4 +- .../PropertiesComponentNestPropertiesTest.java | 4 +- .../properties/PropertiesComponentTest.java | 4 +- .../properties/PropertiesRouteFromTest.java | 4 +- .../properties/PropertiesRouteIdTest.java | 4 +- 17 files changed, 54 insertions(+), 84 deletions(-) diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java index 01aba6b..66b5392 100644 --- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java +++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java @@ -238,7 +238,7 @@ public class DefaultPropertiesParser implements PropertiesParser { if (value == null) { StringBuilder esb = new StringBuilder(); - if (propertiesComponent == null || propertiesComponent.getCamelContext().getGlobalOption(PropertiesComponent.DEFAULT_CREATED) == null) { + if (propertiesComponent == null || "true".equals(propertiesComponent.getCamelContext().getGlobalOption(PropertiesComponent.DEFAULT_CREATED))) { // if the component was auto created then include more information that the end user should define it esb.append("PropertiesComponent with name properties must be defined in CamelContext to support property placeholders. "); } diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java index b629d88..95ed85f 100644 --- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java +++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java @@ -145,6 +145,22 @@ public class PropertiesComponent extends DefaultComponent implements org.apache. addFunction(new ServicePortPropertiesFunction()); } + /** + * A list of locations to load properties. You can use comma to separate multiple locations. + */ + public PropertiesComponent(String location) { + this(); + setLocation(location); + } + + /** + * A list of locations to load properties. + */ + public PropertiesComponent(String... locations) { + this(); + setLocations(locations); + } + @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { String endpointUri = parseUri(remaining); diff --git a/core/camel-core/src/main/docs/eips/setHeader-eip.adoc b/core/camel-core/src/main/docs/eips/setHeader-eip.adoc index f8d3d85..20a00c1 100644 --- a/core/camel-core/src/main/docs/eips/setHeader-eip.adoc +++ b/core/camel-core/src/main/docs/eips/setHeader-eip.adoc @@ -11,7 +11,7 @@ The Set Header EIP supports 1 options which are listed below: [width="100%",cols="2,5,^1,2",options="header"] |=== | Name | Description | Default | Type -| *headerName* | *Required* Name of message header to set a new value The simple language can be used to define a dynamic evaluated header name to be used. Otherwise a constant name will be used. | | String +| *name* | *Required* Name of message header to set a new value The simple language can be used to define a dynamic evaluated header name to be used. Otherwise a constant name will be used. | | String |=== // eip options: END diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java index 127c323..e22b671 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java @@ -72,7 +72,9 @@ public class OptionalPropertiesDslInvalidSyntaxTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslTest.java index e371e37..9069b23 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslTest.java @@ -60,7 +60,9 @@ public class OptionalPropertiesDslTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentAdviceWithInterceptSendToEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentAdviceWithInterceptSendToEndpointTest.java index 027f96f..556465a 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentAdviceWithInterceptSendToEndpointTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentAdviceWithInterceptSendToEndpointTest.java @@ -56,7 +56,9 @@ public class PropertiesComponentAdviceWithInterceptSendToEndpointTest extends Co @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentConcatenatePropertiesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentConcatenatePropertiesTest.java index 821e892..0fb0998 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentConcatenatePropertiesTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentConcatenatePropertiesTest.java @@ -26,7 +26,9 @@ public class PropertiesComponentConcatenatePropertiesTest extends ContextTestSup @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/concatenation.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/concatenation.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEncodingTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEncodingTest.java index 7f998b1..2b84b5b6 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEncodingTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEncodingTest.java @@ -49,7 +49,8 @@ public class PropertiesComponentEncodingTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - PropertiesComponent prop = new PropertiesComponent("classpath:org/apache/camel/component/properties/myutf8.properties"); + PropertiesComponent prop = new PropertiesComponent(); + prop.setLocation("classpath:org/apache/camel/component/properties/myutf8.properties"); prop.setEncoding("UTF-8"); context.addComponent("properties", prop); return context; diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointMandatoryTest.java similarity index 56% copy from core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java copy to core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointMandatoryTest.java index 5c29aad..f16e4cd 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointMandatoryTest.java @@ -16,13 +16,12 @@ */ package org.apache.camel.component.properties; -import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; import org.apache.camel.RuntimeCamelException; import org.apache.camel.builder.RouteBuilder; import org.junit.Test; -public class PropertiesComponentEndpointTest extends ContextTestSupport { +public class PropertiesComponentEndpointMandatoryTest extends ContextTestSupport { @Override public boolean isUseRouteBuilder() { @@ -30,42 +29,6 @@ public class PropertiesComponentEndpointTest extends ContextTestSupport { } @Test - public void testPropertiesComponentEndpoint() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - from("direct:start").to("mock:{{cool.result}}"); - } - }); - context.start(); - - getMockEndpoint("mock:result").expectedMessageCount(1); - - template.sendBody("direct:start", "Hello World"); - - assertMockEndpointsSatisfied(); - } - - @Test - public void testPropertiesComponentEndpoints() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - from("{{cool.start}}") - .to("log:{{cool.start}}?showBodyType=false&showExchangeId={{cool.showid}}") - .to("mock:{{cool.result}}"); - } - }); - context.start(); - - getMockEndpoint("mock:{{cool.result}}").expectedMessageCount(1); - - template.sendBody("{{cool.start}}", "Hello World"); - - assertMockEndpointsSatisfied(); - } - - @Test public void testPropertiesComponentMandatory() throws Exception { context.removeComponent("properties"); try { @@ -86,15 +49,4 @@ public class PropertiesComponentEndpointTest extends ContextTestSupport { } } - @Override - protected CamelContext createCamelContext() throws Exception { - CamelContext context = super.createCamelContext(); - - PropertiesComponent pc = new PropertiesComponent(); - pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); - context.addComponent("properties", pc); - - return context; - } - } \ No newline at end of file diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java index 5c29aad..b66a00b 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentEndpointTest.java @@ -65,27 +65,6 @@ public class PropertiesComponentEndpointTest extends ContextTestSupport { assertMockEndpointsSatisfied(); } - @Test - public void testPropertiesComponentMandatory() throws Exception { - context.removeComponent("properties"); - try { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - from("{{cool.start}}") - .to("log:{{cool.start}}?showBodyType=false&showExchangeId={{cool.showid}}") - .to("mock:{{cool.result}}"); - } - }); - context.start(); - fail("Should throw exception"); - } catch (RuntimeCamelException e) { - IllegalArgumentException cause = assertIsInstanceOf(IllegalArgumentException.class, e.getCause()); - String msg = "PropertiesComponent with name properties must be defined in CamelContext to support property placeholders."; - assertTrue(cause.getMessage().startsWith(msg)); - } - } - @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java index 351a9b0..de2ae64 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentGetOrElseTest.java @@ -96,7 +96,9 @@ public class PropertiesComponentGetOrElseTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentInterceptSendToEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentInterceptSendToEndpointTest.java index 1c2bbf1..f47e42d 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentInterceptSendToEndpointTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentInterceptSendToEndpointTest.java @@ -48,7 +48,9 @@ public class PropertiesComponentInterceptSendToEndpointTest extends ContextTestS @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesTest.java index eb9f163..06917be 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesTest.java @@ -46,7 +46,9 @@ public class PropertiesComponentLoadPropertiesTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentNestPropertiesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentNestPropertiesTest.java index 4cf4660..3c2c948 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentNestPropertiesTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentNestPropertiesTest.java @@ -27,7 +27,9 @@ public class PropertiesComponentNestPropertiesTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/adapter.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/adapter.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentTest.java index 54d293f..3d50c08 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentTest.java @@ -491,7 +491,9 @@ public class PropertiesComponentTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteFromTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteFromTest.java index af9fa88..04a1abf 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteFromTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteFromTest.java @@ -57,7 +57,9 @@ public class PropertiesRouteFromTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteIdTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteIdTest.java index 9621250..43f437f 100644 --- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteIdTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesRouteIdTest.java @@ -49,7 +49,9 @@ public class PropertiesRouteIdTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.addComponent("properties", new PropertiesComponent("classpath:org/apache/camel/component/properties/myproperties.properties")); + PropertiesComponent pc = new PropertiesComponent(); + pc.setLocation("classpath:org/apache/camel/component/properties/myproperties.properties"); + context.addComponent("properties", pc); return context; }