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) {

Reply via email to