Repository: camel Updated Branches: refs/heads/camel-2.16.x d11b039c5 -> 0e77534ba refs/heads/master 7336d59d9 -> 6742fb77f
CAMEL-9479: bean/class component - Should use bean. prefix for bean options Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e53d8a72 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e53d8a72 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e53d8a72 Branch: refs/heads/master Commit: e53d8a7265859f07d1cdc9a4c4ac04eaee8e08ce Parents: 7336d59 Author: Claus Ibsen <davscl...@apache.org> Authored: Mon Jan 4 22:10:46 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Mon Jan 4 22:10:46 2016 +0100 ---------------------------------------------------------------------- .../java/org/apache/camel/component/bean/BeanComponent.java | 7 +++++-- .../java/org/apache/camel/component/bean/BeanEndpoint.java | 2 +- .../org/apache/camel/component/beanclass/ClassComponent.java | 8 +++++++- .../org/apache/camel/component/beanclass/ClassEndpoint.java | 6 +----- .../bean/ClassComponentInvalidConfigurationTest.java | 2 +- ...lassComponentWithPropertiesLookupSetFromEndpointTest.java | 2 +- .../ClassComponentWithPropertiesSetFromEndpointTest.java | 2 +- 7 files changed, 17 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java index 6e54402..fb3ecb4 100644 --- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java +++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanComponent.java @@ -20,6 +20,7 @@ import java.util.Map; import org.apache.camel.Endpoint; import org.apache.camel.impl.UriEndpointComponent; +import org.apache.camel.util.IntrospectionSupport; import org.apache.camel.util.LRUSoftCache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,8 +49,10 @@ public class BeanComponent extends UriEndpointComponent { BeanEndpoint endpoint = new BeanEndpoint(uri, this); endpoint.setBeanName(remaining); setProperties(endpoint, parameters); - // any remaining parameters are parameters for the bean - endpoint.setParameters(parameters); + + // the bean.xxx options is for the bean + Map<String, Object> options = IntrospectionSupport.extractProperties(parameters, "bean."); + endpoint.setParameters(options); return endpoint; } http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java index 2de7d53..cbad9f4 100644 --- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java +++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java @@ -47,7 +47,7 @@ public class BeanEndpoint extends DefaultEndpoint { + "true means the message body should be an array of parameters. Note: This option is used internally by Camel, and is not intended for end users to use.") @Deprecated private boolean multiParameterArray; - @UriParam(label = "advanced", description = "Used for configuring additional properties on the bean") + @UriParam(prefix = "bean.", label = "advanced", description = "Used for configuring additional properties on the bean", multiValue = true) private Map<String, Object> parameters; public BeanEndpoint() { http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassComponent.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassComponent.java b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassComponent.java index 34b36b3..5372c0f 100644 --- a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassComponent.java +++ b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassComponent.java @@ -22,6 +22,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.component.bean.BeanComponent; import org.apache.camel.component.bean.BeanHolder; import org.apache.camel.component.bean.ConstantBeanHolder; +import org.apache.camel.util.IntrospectionSupport; /** * The <a href="http://camel.apache.org/class.html">Class Component</a> is for binding JavaBeans to Camel message exchanges based on class name. @@ -46,8 +47,13 @@ public class ClassComponent extends BeanComponent { // create bean Object bean = getCamelContext().getInjector().newInstance(clazz); + // the bean.xxx options is for the bean + Map<String, Object> options = IntrospectionSupport.extractProperties(parameters, "bean."); + endpoint.setParameters(options); + // now set additional properties on it - setProperties(bean, parameters); + setProperties(bean, options); + validateParameters(uri, options, null); // and register the bean as a holder on the endpoint BeanHolder holder = new ConstantBeanHolder(bean, getCamelContext()); http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java index aa30a38..23b1807 100644 --- a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java +++ b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java @@ -23,15 +23,11 @@ import org.apache.camel.spi.UriEndpoint; /** * The <a href="http://camel.apache.org/class.html">Class Component</a> is for invoking Java Classes (Java beans) from Camel. */ -@UriEndpoint(scheme = "class", title = "Class", syntax = "class:beanName", label = "core,java", lenientProperties = true) +@UriEndpoint(scheme = "class", title = "Class", syntax = "class:beanName", label = "core,java") public class ClassEndpoint extends BeanEndpoint { public ClassEndpoint(String endpointUri, Component component) { super(endpointUri, component); } - @Override - public boolean isLenientProperties() { - return true; - } } http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentInvalidConfigurationTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentInvalidConfigurationTest.java b/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentInvalidConfigurationTest.java index ae08b89..b3e35c7 100644 --- a/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentInvalidConfigurationTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentInvalidConfigurationTest.java @@ -55,7 +55,7 @@ public class ClassComponentInvalidConfigurationTest extends ContextTestSupport { @Override public void configure() throws Exception { from("direct:start") - .to("class:org.apache.camel.component.bean.MyPrefixBean?foo=bar") + .to("class:org.apache.camel.component.bean.MyPrefixBean?bean.foo=bar") .to("mock:result"); } }); http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesLookupSetFromEndpointTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesLookupSetFromEndpointTest.java b/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesLookupSetFromEndpointTest.java index d713c61..f87c7f4 100644 --- a/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesLookupSetFromEndpointTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesLookupSetFromEndpointTest.java @@ -46,7 +46,7 @@ public class ClassComponentWithPropertiesLookupSetFromEndpointTest extends Conte @Override public void configure() throws Exception { from("direct:start") - .to("class:org.apache.camel.component.bean.MyPrefixBean?prefix=#foo") + .to("class:org.apache.camel.component.bean.MyPrefixBean?bean.prefix=#foo") .to("mock:result"); } }; http://git-wip-us.apache.org/repos/asf/camel/blob/e53d8a72/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesSetFromEndpointTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesSetFromEndpointTest.java b/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesSetFromEndpointTest.java index a042f24..e3de4dc 100644 --- a/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesSetFromEndpointTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/bean/ClassComponentWithPropertiesSetFromEndpointTest.java @@ -38,7 +38,7 @@ public class ClassComponentWithPropertiesSetFromEndpointTest extends ContextTest @Override public void configure() throws Exception { from("direct:start") - .to("class:org.apache.camel.component.bean.MyPrefixBean?prefix=Bye") + .to("class:org.apache.camel.component.bean.MyPrefixBean?bean.prefix=Bye") .to("mock:result"); } };