This is an automated email from the ASF dual-hosted git repository. nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6371df29dbfb7c0b65797fba3ce934cd885fdabd Author: Nicolas Filotto <[email protected]> AuthorDate: Thu Mar 17 10:34:12 2022 +0100 CAMEL-17792: Add doc about the message headers of camel-bean --- .../generated/resources/org/apache/camel/component/bean/bean.json | 3 +++ .../resources/org/apache/camel/component/beanclass/class.json | 3 +++ components/camel-bean/src/main/docs/bean-component.adoc | 3 +++ components/camel-bean/src/main/docs/class-component.adoc | 3 +++ .../java/org/apache/camel/component/bean/AbstractBeanProcessor.java | 4 ++-- .../main/java/org/apache/camel/component/bean/BeanConstants.java | 6 +++++- .../src/main/java/org/apache/camel/component/bean/BeanEndpoint.java | 2 +- .../src/main/java/org/apache/camel/component/bean/BeanInfo.java | 2 +- .../src/main/java/org/apache/camel/component/bean/MethodInfo.java | 2 +- .../java/org/apache/camel/component/beanclass/ClassEndpoint.java | 3 ++- 10 files changed, 24 insertions(+), 7 deletions(-) diff --git a/components/camel-bean/src/generated/resources/org/apache/camel/component/bean/bean.json b/components/camel-bean/src/generated/resources/org/apache/camel/component/bean/bean.json index 7df3d5d..5883e54 100644 --- a/components/camel-bean/src/generated/resources/org/apache/camel/component/bean/bean.json +++ b/components/camel-bean/src/generated/resources/org/apache/camel/component/bean/bean.json @@ -27,6 +27,9 @@ "scope": { "kind": "property", "displayName": "Scope", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.BeanScope", "enum": [ "Singleton", "Request", "Prototype" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Singleton", "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-sa [...] "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...] }, + "headers": { + "CamelBeanMethodName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the method to invoke." } + }, "properties": { "beanName": { "kind": "path", "displayName": "Bean Name", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the bean to invoke" }, "cache": { "kind": "parameter", "displayName": "Cache", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": true, "autowired": false, "secret": false, "description": "Use scope option instead." }, diff --git a/components/camel-bean/src/generated/resources/org/apache/camel/component/beanclass/class.json b/components/camel-bean/src/generated/resources/org/apache/camel/component/beanclass/class.json index 42bd842..39479dc 100644 --- a/components/camel-bean/src/generated/resources/org/apache/camel/component/beanclass/class.json +++ b/components/camel-bean/src/generated/resources/org/apache/camel/component/beanclass/class.json @@ -27,6 +27,9 @@ "scope": { "kind": "property", "displayName": "Scope", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.BeanScope", "enum": [ "Singleton", "Request", "Prototype" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Singleton", "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-sa [...] "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...] }, + "headers": { + "CamelBeanMethodName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the method to invoke." } + }, "properties": { "beanName": { "kind": "path", "displayName": "Bean Name", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the bean to invoke" }, "cache": { "kind": "parameter", "displayName": "Cache", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": true, "autowired": false, "secret": false, "description": "Use scope option instead." }, diff --git a/components/camel-bean/src/main/docs/bean-component.adoc b/components/camel-bean/src/main/docs/bean-component.adoc index 92118c8..aded420 100644 --- a/components/camel-bean/src/main/docs/bean-component.adoc +++ b/components/camel-bean/src/main/docs/bean-component.adoc @@ -38,6 +38,9 @@ include::partial$component-endpoint-options.adoc[] // endpoint options: END +// component headers: START +include::partial$component-endpoint-headers.adoc[] +// component headers: END == Using diff --git a/components/camel-bean/src/main/docs/class-component.adoc b/components/camel-bean/src/main/docs/class-component.adoc index 9368b6e..7e3cf80 100644 --- a/components/camel-bean/src/main/docs/class-component.adoc +++ b/components/camel-bean/src/main/docs/class-component.adoc @@ -42,6 +42,9 @@ include::partial$component-endpoint-options.adoc[] // endpoint options: END +// component headers: START +include::partial$component-endpoint-headers.adoc[] +// component headers: END == Using diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java index ce5bd9f..d1ab167 100644 --- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java +++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java @@ -59,7 +59,7 @@ public abstract class AbstractBeanProcessor extends AsyncProcessorSupport { @Override public boolean process(Exchange exchange, AsyncCallback callback) { // do we have an explicit method name we always should invoke (either configured on endpoint or as a header) - String explicitMethodName = exchange.getIn().getHeader(Exchange.BEAN_METHOD_NAME, method, String.class); + String explicitMethodName = exchange.getIn().getHeader(BeanConstants.BEAN_METHOD_NAME, method, String.class); Object bean; BeanInfo beanInfo; @@ -118,7 +118,7 @@ public abstract class AbstractBeanProcessor extends AsyncProcessorSupport { // set explicit method name to invoke as a header, which is how BeanInfo can detect it if (explicitMethodName != null) { - in.setHeader(Exchange.BEAN_METHOD_NAME, explicitMethodName); + in.setHeader(BeanConstants.BEAN_METHOD_NAME, explicitMethodName); } MethodInvocation invocation; diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanConstants.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanConstants.java index 7643e0b..dac73c8 100644 --- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanConstants.java +++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanConstants.java @@ -16,11 +16,15 @@ */ package org.apache.camel.component.bean; -@Deprecated +import org.apache.camel.Exchange; +import org.apache.camel.spi.Metadata; + public final class BeanConstants { @Deprecated public static final String BEAN_PARAMETER_MAPPING_STRATEGY = "CamelBeanParameterMappingStrategy"; + @Metadata(description = "The name of the method to invoke.", javaType = "String") + public static final String BEAN_METHOD_NAME = Exchange.BEAN_METHOD_NAME; private BeanConstants() { // Utility class diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java index 4d822cb..5739e67 100644 --- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java +++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java @@ -35,7 +35,7 @@ import org.apache.camel.support.DefaultEndpoint; * Invoke methods of Java beans stored in Camel registry. */ @UriEndpoint(firstVersion = "1.0.0", scheme = "bean", title = "Bean", syntax = "bean:beanName", producerOnly = true, - category = { Category.CORE, Category.JAVA }) + category = { Category.CORE, Category.JAVA }, headersClass = BeanConstants.class) public class BeanEndpoint extends DefaultEndpoint { private transient BeanHolder beanHolder; private transient BeanProcessor processor; diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanInfo.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanInfo.java index 038819e..e6f5d08 100644 --- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanInfo.java +++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/BeanInfo.java @@ -183,7 +183,7 @@ public class BeanInfo { MethodInfo methodInfo = null; - String methodName = exchange.getIn().getHeader(Exchange.BEAN_METHOD_NAME, String.class); + String methodName = exchange.getIn().getHeader(BeanConstants.BEAN_METHOD_NAME, String.class); if (methodName != null) { // do not use qualifier for name diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java index c97bffc..a3fb6c5 100644 --- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java +++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java @@ -569,7 +569,7 @@ public class MethodInfo { // if there was an explicit method name to invoke, then we should support using // any provided parameter values in the method name - String methodName = exchange.getIn().getHeader(Exchange.BEAN_METHOD_NAME, String.class); + String methodName = exchange.getIn().getHeader(BeanConstants.BEAN_METHOD_NAME, String.class); // the parameter values is between the parenthesis String methodParameters = StringHelper.betweenOuterPair(methodName, '(', ')'); // use an iterator to walk the parameter values diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java b/components/camel-bean/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java index b685a26..ce603a3 100644 --- a/components/camel-bean/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java +++ b/components/camel-bean/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java @@ -18,6 +18,7 @@ package org.apache.camel.component.beanclass; import org.apache.camel.Category; import org.apache.camel.Component; +import org.apache.camel.component.bean.BeanConstants; import org.apache.camel.component.bean.BeanEndpoint; import org.apache.camel.spi.UriEndpoint; @@ -25,7 +26,7 @@ import org.apache.camel.spi.UriEndpoint; * Invoke methods of Java beans specified by class name. */ @UriEndpoint(firstVersion = "2.4.0", scheme = "class", title = "Class", syntax = "class:beanName", producerOnly = true, - category = { Category.CORE, Category.JAVA }) + category = { Category.CORE, Category.JAVA }, headersClass = BeanConstants.class) public class ClassEndpoint extends BeanEndpoint { public ClassEndpoint(String endpointUri, Component component) {
