You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2022/03/29 16:59:43 UTC

[camel] branch CAMEL-17792/doc-message-headers created (now 92ee368)

This is an automated email from the ASF dual-hosted git repository.

nfilotto pushed a change to branch CAMEL-17792/doc-message-headers
in repository https://gitbox.apache.org/repos/asf/camel.git.


      at 92ee368  CAMEL-17792: Add doc about the message headers of camel-ironmq

This branch includes the following new commits:

     new 618be7c  CAMEL-17792: Add doc about the message headers of camel-hazelcast
     new 00df841  CAMEL-17792: Add doc about the message headers of camel-hbase
     new e9b7397  CAMEL-17792: Add doc about the message headers of camel-hdfs
     new eac4ec0  CAMEL-17792: Add doc about the message headers of camel-http
     new 8910237  CAMEL-17792: Add doc about the message headers of camel-huaweicloud-obs
     new db74ce3  CAMEL-17792: Add doc about the message headers of camel-iec60870
     new 36e4dfd  CAMEL-17792: Add doc about the message headers of camel-ignite
     new 8cb5eb4  CAMEL-17792: Add doc about the message headers of camel-infinispan
     new fe50734  CAMEL-17792: Add doc about the message headers of camel-influxdb
     new 2918e05  CAMEL-17792: Add doc about the message headers of camel-iota
     new 1d1ddf9  CAMEL-17792: Add doc about the message headers of camel-irc
     new 92ee368  CAMEL-17792: Add doc about the message headers of camel-ironmq

The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[camel] 09/12: CAMEL-17792: Add doc about the message headers of camel-influxdb

Posted by nf...@apache.org.
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 fe5073479e8b6555645001020d27c860228ff567
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 17:57:11 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-influxdb
---
 .../resources/org/apache/camel/component/influxdb/influxdb.json     | 5 +++++
 components/camel-influxdb/src/main/docs/influxdb-component.adoc     | 3 +++
 .../java/org/apache/camel/component/influxdb/InfluxDbConstants.java | 6 ++++++
 .../java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java  | 2 +-
 4 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/components/camel-influxdb/src/generated/resources/org/apache/camel/component/influxdb/influxdb.json b/components/camel-influxdb/src/generated/resources/org/apache/camel/component/influxdb/influxdb.json
index 10035d7..ae77ba6 100644
--- a/components/camel-influxdb/src/generated/resources/org/apache/camel/component/influxdb/influxdb.json
+++ b/components/camel-influxdb/src/generated/resources/org/apache/camel/component/influxdb/influxdb.json
@@ -26,6 +26,11 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "camelInfluxDB.RetentionPolicy": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The string that defines the retention policy to the data created by the endpoint" },
+    "camelInfluxDB.databaseName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the database where the time series will be stored" },
+    "camelInfluxDB.query": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Define the query in case of operation query" }
+  },
   "properties": {
     "connectionBean": { "kind": "path", "displayName": "Connection Bean", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Connection to the influx database, of class InfluxDB.class" },
     "autoCreateDatabase": { "kind": "parameter", "displayName": "Auto Create Database", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Define if we want to auto create the database if it's not present" },
diff --git a/components/camel-influxdb/src/main/docs/influxdb-component.adoc b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
index 2f999e7..d826c27 100644
--- a/components/camel-influxdb/src/main/docs/influxdb-component.adoc
+++ b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
@@ -55,6 +55,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Example
 
diff --git a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbConstants.java b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbConstants.java
index 803ec74..b81b8cf 100644
--- a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbConstants.java
+++ b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbConstants.java
@@ -16,11 +16,17 @@
  */
 package org.apache.camel.component.influxdb;
 
+import org.apache.camel.spi.Metadata;
+
 public final class InfluxDbConstants {
 
     public static final String MEASUREMENT_NAME = "camelInfluxDB.MeasurementName";
+    @Metadata(description = "The string that defines the retention policy to the data created by the endpoint",
+              javaType = "String")
     public static final String RETENTION_POLICY_HEADER = "camelInfluxDB.RetentionPolicy";
+    @Metadata(description = "The name of the database where the time series will be stored", javaType = "String")
     public static final String DBNAME_HEADER = "camelInfluxDB.databaseName";
+    @Metadata(description = "Define the query in case of operation query", javaType = "String")
     public static final String INFLUXDB_QUERY = "camelInfluxDB.query";
 
     private InfluxDbConstants() {
diff --git a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
index f2f19a7..148fe5b 100644
--- a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
+++ b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
  * Interact with <a href="https://influxdata.com/time-series-platform/influxdb/">InfluxDB</a>, a time series database.
  */
 @UriEndpoint(firstVersion = "2.18.0", scheme = "influxdb", title = "InfluxDB", syntax = "influxdb:connectionBean",
-             category = { Category.DATABASE }, producerOnly = true)
+             category = { Category.DATABASE }, producerOnly = true, headersClass = InfluxDbConstants.class)
 public class InfluxDbEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(InfluxDbEndpoint.class);

[camel] 05/12: CAMEL-17792: Add doc about the message headers of camel-huaweicloud-obs

Posted by nf...@apache.org.
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 891023776436ee1edd50857f0e84201ea83c7d0f
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 14:52:40 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-huaweicloud-obs
---
 .../component/huaweicloud/obs/hwcloud-obs.json     | 11 ++++++++
 .../src/main/docs/hwcloud-obs-component.adoc       | 31 +++-------------------
 .../component/huaweicloud/obs/OBSEndpoint.java     |  3 ++-
 .../camel/component/huaweicloud/obs/OBSUtils.java  |  6 ++---
 .../huaweicloud/obs/constants/OBSHeaders.java      | 19 +++++++++++++
 5 files changed, 39 insertions(+), 31 deletions(-)

diff --git a/components/camel-huawei/camel-huaweicloud-obs/src/generated/resources/org/apache/camel/component/huaweicloud/obs/hwcloud-obs.json b/components/camel-huawei/camel-huaweicloud-obs/src/generated/resources/org/apache/camel/component/huaweicloud/obs/hwcloud-obs.json
index 2ee0389..2eb031d 100644
--- a/components/camel-huawei/camel-huaweicloud-obs/src/generated/resources/org/apache/camel/component/huaweicloud/obs/hwcloud-obs.json
+++ b/components/camel-huawei/camel-huaweicloud-obs/src/generated/resources/org/apache/camel/component/huaweicloud/obs/hwcloud-obs.json
@@ -26,6 +26,17 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelHwCloudObsBucketName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the bucket where object is contained" },
+    "CamelHwCloudObsObjectKey": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key that the object is stored under" },
+    "CamelHwCloudObsLastModified": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The date and time that the object was last modified" },
+    "CamelHwCloudObsETag": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The 128-bit MD5 digest of the Base64 code of the object. This data is the unique identifier of the object content" },
+    "CamelHwCloudObsContentMD5": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The 128-bit Base64-encoded digest used to decrypt the object" },
+    "CamelHwCloudObsObjectType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Shows whether the object is a `file` or a `folder`" },
+    "Content-Length": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The size of the object body in bytes" },
+    "Content-Type": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of content stored in the object" },
+    "CamelFileName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the object with which the operation is to be performed" }
+  },
   "properties": {
     "operation": { "kind": "path", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Operation to be performed" },
     "bucketName": { "kind": "parameter", "displayName": "Bucket Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of bucket to perform operation on" },
diff --git a/components/camel-huawei/camel-huaweicloud-obs/src/main/docs/hwcloud-obs-component.adoc b/components/camel-huawei/camel-huaweicloud-obs/src/main/docs/hwcloud-obs-component.adoc
index be48239..e915a57 100644
--- a/components/camel-huawei/camel-huaweicloud-obs/src/main/docs/hwcloud-obs-component.adoc
+++ b/components/camel-huawei/camel-huaweicloud-obs/src/main/docs/hwcloud-obs-component.adoc
@@ -79,32 +79,9 @@ If any of the above properties are set, they will override their corresponding q
 
 |=======================================================================
 
-=== Message headers set by the OBS consumer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelHwCloudObsBucketName` |`String` | Name of the bucket where object is contained
-
-|`CamelHwCloudObsObjectName` |`String` | Name of the object with which the operation is to be performed
-
-|`CamelHwCloudObsObjectKey` |`String` | The key that the object is stored under
-
-|`CamelHwCloudObsLastModified` |`String` | The date and time that the object was last modified
-
-|`Content-Length` |`String` | The size of the object body in bytes
-
-|`Content-Type` |`String` | The type of content stored in the object
-
-|`CamelHwCloudObsETag` |`String` | The 128-bit MD5 digest of the Base64 code of the object. This data is the unique identifier of the object content
-
-|`CamelHwCloudObsContentMD5` |`String` | The 128-bit Base64-encoded digest used to decrypt the object
-
-|`CamelHwCloudObsObjectType` |`String` | Shows whether the object is a `file` or a `folder`
-
-|=======================================================================
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == List of Supported OBS Operations
 
@@ -173,7 +150,7 @@ Check the following code snippets:
 from("direct:triggerRoute")
  .setProperty(OBSPropeties.OPERATION, constant("createBucket"))
  .setProperty(OBSPropeties.BUCKET_NAME ,constant("your_bucket_name"))
- .setProperty(OBSPropeties.BUCKET_LOCATION, constant("your_bucket_location))
+ .setProperty(OBSPropeties.BUCKET_LOCATION, constant("your_bucket_location"))
  .to("hwcloud-obs:createBucket?region=cn-north-4&serviceKeys=#myServiceKeyConfig")
 ----
 
diff --git a/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSEndpoint.java b/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSEndpoint.java
index e56a7f9..02068d7 100644
--- a/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSEndpoint.java
+++ b/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.huaweicloud.common.models.ServiceKeys;
+import org.apache.camel.component.huaweicloud.obs.constants.OBSHeaders;
 import org.apache.camel.component.huaweicloud.obs.models.OBSRegion;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
@@ -37,7 +38,7 @@ import org.apache.camel.util.ObjectHelper;
  */
 @UriEndpoint(firstVersion = "3.12.0", scheme = "hwcloud-obs", title = "Huawei Object Storage Service (OBS)",
              syntax = "hwcloud-obs:operation",
-             category = { Category.CLOUD })
+             category = { Category.CLOUD }, headersClass = OBSHeaders.class)
 public class OBSEndpoint extends ScheduledPollEndpoint {
 
     @UriPath(description = "Operation to be performed", displayName = "Operation", label = "producer")
diff --git a/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSUtils.java b/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSUtils.java
index ba4b22c..c984671 100644
--- a/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSUtils.java
+++ b/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/OBSUtils.java
@@ -65,12 +65,12 @@ public final class OBSUtils {
         message.setHeader(OBSHeaders.BUCKET_NAME, obsObject.getBucketName());
         message.setHeader(OBSHeaders.OBJECT_KEY, obsObject.getObjectKey());
         message.setHeader(OBSHeaders.LAST_MODIFIED, obsObject.getMetadata().getLastModified());
-        message.setHeader(Exchange.CONTENT_LENGTH, obsObject.getMetadata().getContentLength());
-        message.setHeader(Exchange.CONTENT_TYPE, obsObject.getMetadata().getContentType());
+        message.setHeader(OBSHeaders.CONTENT_LENGTH, obsObject.getMetadata().getContentLength());
+        message.setHeader(OBSHeaders.CONTENT_TYPE, obsObject.getMetadata().getContentType());
         message.setHeader(OBSHeaders.ETAG, obsObject.getMetadata().getEtag());
         message.setHeader(OBSHeaders.CONTENT_MD5, obsObject.getMetadata().getContentMd5());
 
-        message.setHeader(Exchange.FILE_NAME, obsObject.getObjectKey());
+        message.setHeader(OBSHeaders.FILE_NAME, obsObject.getObjectKey());
 
         if (obsObject.getObjectKey().endsWith("/")) {
             message.setHeader(OBSHeaders.OBJECT_TYPE, OBSConstants.FOLDER);
diff --git a/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/constants/OBSHeaders.java b/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/constants/OBSHeaders.java
index d14542f..b67ae98 100644
--- a/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/constants/OBSHeaders.java
+++ b/components/camel-huawei/camel-huaweicloud-obs/src/main/java/org/apache/camel/component/huaweicloud/obs/constants/OBSHeaders.java
@@ -16,16 +16,35 @@
  */
 package org.apache.camel.component.huaweicloud.obs.constants;
 
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.Metadata;
+
 /**
  * Constants for the exchange headers when consuming objects
  */
 public final class OBSHeaders {
+    @Metadata(label = "consumer", description = "Name of the bucket where object is contained", javaType = "String")
     public static final String BUCKET_NAME = "CamelHwCloudObsBucketName";
+    @Metadata(label = "consumer", description = "The key that the object is stored under", javaType = "String")
     public static final String OBJECT_KEY = "CamelHwCloudObsObjectKey";
+    @Metadata(label = "consumer", description = "The date and time that the object was last modified", javaType = "Date")
     public static final String LAST_MODIFIED = "CamelHwCloudObsLastModified";
+    @Metadata(label = "consumer", description = "The 128-bit MD5 digest of the Base64 code of the object. " +
+                                                "This data is the unique identifier of the object content",
+              javaType = "String")
     public static final String ETAG = "CamelHwCloudObsETag";
+    @Metadata(label = "consumer", description = "The 128-bit Base64-encoded digest used to decrypt the object",
+              javaType = "String")
     public static final String CONTENT_MD5 = "CamelHwCloudObsContentMD5";
+    @Metadata(label = "consumer", description = "Shows whether the object is a `file` or a `folder`", javaType = "String")
     public static final String OBJECT_TYPE = "CamelHwCloudObsObjectType";
+    @Metadata(label = "consumer", description = "The size of the object body in bytes", javaType = "Long")
+    public static final String CONTENT_LENGTH = Exchange.CONTENT_LENGTH;
+    @Metadata(label = "consumer", description = "The type of content stored in the object", javaType = "String")
+    public static final String CONTENT_TYPE = Exchange.CONTENT_TYPE;
+    @Metadata(label = "consumer", description = "Name of the object with which the operation is to be performed",
+              javaType = "String")
+    public static final String FILE_NAME = Exchange.FILE_NAME;
 
     private OBSHeaders() {
     }

[camel] 10/12: CAMEL-17792: Add doc about the message headers of camel-iota

Posted by nf...@apache.org.
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 2918e056ceb2912d3ba15e015b4a583cfee0c1e4
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 18:36:33 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-iota
---
 .../generated/resources/org/apache/camel/component/iota/iota.json | 8 ++++++++
 components/camel-iota/src/main/docs/iota-component.adoc           | 4 +++-
 .../main/java/org/apache/camel/component/iota/IOTAConstants.java  | 7 +++++++
 .../main/java/org/apache/camel/component/iota/IOTAEndpoint.java   | 2 +-
 4 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/components/camel-iota/src/generated/resources/org/apache/camel/component/iota/iota.json b/components/camel-iota/src/generated/resources/org/apache/camel/component/iota/iota.json
index 0aa44bb..38c7320 100644
--- a/components/camel-iota/src/generated/resources/org/apache/camel/component/iota/iota.json
+++ b/components/camel-iota/src/generated/resources/org/apache/camel/component/iota/iota.json
@@ -25,6 +25,14 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIOTASeed": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The tryte-encoded seed." },
+    "CamelIOTAValue": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value to transfer" },
+    "CamelIOTAToAddress": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The address of the recipient" },
+    "CamelIOTAAddressIndex": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key index to start search from" },
+    "CamelIOTAAddressStartIndex": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The starting key index, must be at least 0." },
+    "CamelIOTAAddressEndIndex": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ending key index, must be bigger then start" }
+  },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Component name" },
     "depth": { "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "9", "description": "The depth determines how deep the tangle is analysed for getting Tips" },
diff --git a/components/camel-iota/src/main/docs/iota-component.adoc b/components/camel-iota/src/main/docs/iota-component.adoc
index b7adc79..fed2c4b 100644
--- a/components/camel-iota/src/main/docs/iota-component.adoc
+++ b/components/camel-iota/src/main/docs/iota-component.adoc
@@ -41,7 +41,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Examples
 
diff --git a/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAConstants.java b/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAConstants.java
index 688dc6d..f9dfea3 100644
--- a/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAConstants.java
+++ b/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAConstants.java
@@ -16,15 +16,22 @@
  */
 package org.apache.camel.component.iota;
 
+import org.apache.camel.spi.Metadata;
 import org.iota.jota.utils.Constants;
 
 public final class IOTAConstants {
 
+    @Metadata(description = "The tryte-encoded seed.", javaType = "String")
     public static final String SEED_HEADER = "CamelIOTASeed";
+    @Metadata(description = "The value to transfer", javaType = "Integer")
     public static final String VALUE_HEADER = "CamelIOTAValue";
+    @Metadata(description = "The address of the recipient", javaType = "String")
     public static final String TO_ADDRESS_HEADER = "CamelIOTAToAddress";
+    @Metadata(description = "The key index to start search from", javaType = "Integer")
     public static final String ADDRESS_INDEX_HEADER = "CamelIOTAAddressIndex";
+    @Metadata(description = "The starting key index, must be at least 0.", javaType = "Integer")
     public static final String ADDRESS_START_INDEX_HEADER = "CamelIOTAAddressStartIndex";
+    @Metadata(description = "The ending key index, must be bigger then start", javaType = "Integer")
     public static final String ADDRESS_END_INDEX_HEADER = "CamelIOTAAddressEndIndex";
 
     protected static final int MIN_WEIGHT_MAGNITUDE = 14;
diff --git a/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAEndpoint.java b/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAEndpoint.java
index 8e8140b..fbb1255 100644
--- a/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAEndpoint.java
+++ b/components/camel-iota/src/main/java/org/apache/camel/component/iota/IOTAEndpoint.java
@@ -33,7 +33,7 @@ import org.iota.jota.IotaAPI;
  * Manage financial transactions using IOTA distributed ledger.
  */
 @UriEndpoint(firstVersion = "2.23.0", scheme = "iota", title = "IOTA", syntax = "iota:name",
-             category = { Category.LEDGER, Category.API }, producerOnly = true)
+             category = { Category.LEDGER, Category.API }, producerOnly = true, headersClass = IOTAConstants.class)
 public class IOTAEndpoint extends DefaultEndpoint {
 
     private volatile IotaAPI apiClient;

[camel] 01/12: CAMEL-17792: Add doc about the message headers of camel-hazelcast

Posted by nf...@apache.org.
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 618be7cb892c067d323faeca1861b4187816b63c
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Mar 23 11:06:50 2022 +0100

    CAMEL-17792: Add doc about the message headers of camel-hazelcast
---
 .../atomicnumber/hazelcast-atomicvalue.json        |  3 ++
 .../hazelcast/instance/hazelcast-instance.json     |  7 +++
 .../component/hazelcast/list/hazelcast-list.json   |  9 ++++
 .../component/hazelcast/map/hazelcast-map.json     | 12 +++++
 .../hazelcast/multimap/hazelcast-multimap.json     |  9 ++++
 .../component/hazelcast/queue/hazelcast-queue.json |  9 ++++
 .../replicatedmap/hazelcast-replicatedmap.json     |  8 ++++
 .../hazelcast/ringbuffer/hazelcast-ringbuffer.json |  3 ++
 .../component/hazelcast/set/hazelcast-set.json     |  8 ++++
 .../component/hazelcast/topic/hazelcast-topic.json |  8 ++++
 .../main/docs/hazelcast-atomicvalue-component.adoc | 18 ++++----
 .../main/docs/hazelcast-instance-component.adoc    | 23 ++--------
 .../src/main/docs/hazelcast-list-component.adoc    | 10 ++++-
 .../src/main/docs/hazelcast-map-component.adoc     | 25 ++---------
 .../main/docs/hazelcast-multimap-component.adoc    | 45 ++++++-------------
 .../src/main/docs/hazelcast-queue-component.adoc   | 19 +++++---
 .../docs/hazelcast-replicatedmap-component.adoc    | 18 +++-----
 .../main/docs/hazelcast-ringbuffer-component.adoc  | 18 +++-----
 .../src/main/docs/hazelcast-seda-component.adoc    |  4 ++
 .../src/main/docs/hazelcast-set-component.adoc     | 14 ++++++
 .../src/main/docs/hazelcast-topic-component.adoc   |  4 ++
 .../component/hazelcast/HazelcastConstants.java    | 52 ++++++++++++++++++++++
 .../HazelcastAtomicnumberEndpoint.java             |  8 +++-
 .../instance/HazelcastInstanceEndpoint.java        |  7 ++-
 .../hazelcast/list/HazelcastListEndpoint.java      |  7 ++-
 .../hazelcast/map/HazelcastMapEndpoint.java        |  7 ++-
 .../multimap/HazelcastMultimapEndpoint.java        |  8 +++-
 .../hazelcast/queue/HazelcastQueueEndpoint.java    |  8 +++-
 .../HazelcastReplicatedmapEndpoint.java            |  8 +++-
 .../ringbuffer/HazelcastRingbufferEndpoint.java    |  8 +++-
 .../hazelcast/seda/HazelcastSedaEndpoint.java      |  7 ++-
 .../hazelcast/set/HazelcastSetEndpoint.java        |  7 ++-
 .../hazelcast/topic/HazelcastTopicEndpoint.java    |  8 +++-
 33 files changed, 272 insertions(+), 137 deletions(-)

diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
index 3c5f75b..255c0df 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
@@ -27,6 +27,9 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "co [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/instance/hazelcast-instance.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/instance/hazelcast-instance.json
index e3af486..0b42756 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/instance/hazelcast-instance.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/instance/hazelcast-instance.json
@@ -27,6 +27,13 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastInstanceHost": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The host name of the instance" },
+    "CamelHazelcastInstancePort": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The port number of the instance" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/list/hazelcast-list.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/list/hazelcast-list.json
index 0142734..90220c4 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/list/hazelcast-list.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/list/hazelcast-list.json
@@ -28,6 +28,15 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastObjectIndex": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The index of the object" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/map/hazelcast-map.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/map/hazelcast-map.json
index 27e3a97..a9db4a3 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/map/hazelcast-map.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/map/hazelcast-map.json
@@ -28,6 +28,18 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastObjectValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The old value" },
+    "CamelHazelcastObjectTtlValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of the TTL" },
+    "CamelHazelcastObjectTtlUnit": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of time unit ( DAYS \/ HOURS \/ MINUTES \/ ...." },
+    "CamelHazelcastQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The query to execute against the map with a sql like syntax (see http:\/\/www.hazelcast.com\/)" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/multimap/hazelcast-multimap.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/multimap/hazelcast-multimap.json
index f6870c1..3d66f59 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/multimap/hazelcast-multimap.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/multimap/hazelcast-multimap.json
@@ -28,6 +28,15 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastCacheType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of the cache - here multimap" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/queue/hazelcast-queue.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/queue/hazelcast-queue.json
index 2c893fc..9395562 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/queue/hazelcast-queue.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/queue/hazelcast-queue.json
@@ -28,6 +28,15 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastDrainToCollection": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Collection", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The collection to transfer elements into" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/replicatedmap/hazelcast-replicatedmap.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/replicatedmap/hazelcast-replicatedmap.json
index 9646716..1195fc7 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/replicatedmap/hazelcast-replicatedmap.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/replicatedmap/hazelcast-replicatedmap.json
@@ -28,6 +28,14 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/ringbuffer/hazelcast-ringbuffer.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/ringbuffer/hazelcast-ringbuffer.json
index a3c8d71..dafb4d6 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/ringbuffer/hazelcast-ringbuffer.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/ringbuffer/hazelcast-ringbuffer.json
@@ -27,6 +27,9 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "co [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/set/hazelcast-set.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/set/hazelcast-set.json
index e8bdde2..227cac6 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/set/hazelcast-set.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/set/hazelcast-set.json
@@ -28,6 +28,14 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/topic/hazelcast-topic.json b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/topic/hazelcast-topic.json
index 40dc05b..253b625 100644
--- a/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/topic/hazelcast-topic.json
+++ b/components/camel-hazelcast/src/generated/resources/org/apache/camel/component/hazelcast/topic/hazelcast-topic.json
@@ -28,6 +28,14 @@
     "hazelcastInstance": { "kind": "property", "displayName": "Hazelcast Instance", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", "deprecated": false, "autowired": false, "secret": false, "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance." },
     "hazelcastMode": { "kind": "property", "displayName": "Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "node", "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default." }
   },
+  "headers": {
+    "CamelHazelcastObjectId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "the object id to store \/ find your object inside the cache" },
+    "CamelHazelcastListenerAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of event - here *added* and *removed*" },
+    "CamelHazelcastListenerType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map consumer" },
+    "CamelHazelcastListenerTime": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The time of the event in millis" },
+    "CamelHazelcastCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache - e.g. \"foo\"" },
+    "CamelHazelcastOperationType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform" }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "kind": "parameter", "displayName": "Default Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", "delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "allAll", "removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", "containsValue", "keySet", "removevalue", "increment", "decrement", "setvalue", "destroy", "comp [...]
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
index f82d349..ad96b0e 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
@@ -35,20 +35,18 @@ include::partial$component-endpoint-options.adoc[]
 == atomic number producer - to("hazelcast-atomicvalue:foo")
 
 The operations for this producer are:
+
 * setvalue (set the number with a given value)
 * get
-* increase (+1)
-* decrease (-1)
+* increment (+1)
+* decrement (-1)
 * destroy
+* compareAndSet
+* getAndAdd
 
-Header Variables for the request message:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHazelcastOperationType` |`String` |valid values are: setvalue, get, increase, decrease, destroy 
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample for *set*:
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc
index fbae7e0..df321e1 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc
@@ -50,25 +50,8 @@ fromF("hazelcast-%sfoo", HazelcastConstants.INSTANCE_PREFIX)
         .to("mock:removed");
 -----------------------------------------------------------------------------------------
 
-Each event provides the following information inside the message header:
-
-Header Variables inside the response message:
-
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHazelcastListenerTime` |`Long` |time of the event in millis
-
-|`CamelHazelcastListenerType` |`String` |the map consumer sets here "instancelistener"
-
-|`CamelHazelcastListenerAction` |`String` |type of event - here *added* or *removed*.
-
-|`CamelHazelcastInstanceHost` |`String` | host name of the instance
-
-|`CamelHazelcastInstancePort` |`Integer` |port number of the instance
-|=======================================================================
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc
index 6bc0e1c..da4c064 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc
@@ -34,14 +34,20 @@ include::partial$component-endpoint-options.adoc[]
 
 == List producer – to(“hazelcast-list:foo”)
 
-The list producer provides 7 operations:
+The list producer provides 8 operations:
+
 * add
 * addAll
-* set
+* setvalue
 * get
 * removevalue
 * removeAll
 * clear
+* retainAll
+
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample for *add*:
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc
index 8bb8505..996aa4a 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc
@@ -54,28 +54,9 @@ The map cache producer provides follow operations specified by *CamelHazelcastOp
 * evict
 * evictAll
 
-All operations are provide the inside the "hazelcast.operation.type" header variable. In Java
-DSL you can use the constants from `org.apache.camel.component.hazelcast.HazelcastOperation`.
-
-Header Variables for the request message:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-|`CamelHazelcastOperationType` |`String` | as already described. 
-
-|`CamelHazelcastObjectId` |`String` |the object id to store / find your object inside the cache (not needed for the query operation)
-|=======================================================================
-
-*put* and *putIfAbsent* operations provide an eviction mechanism: 
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-|`CamelHazelcastObjectTtlValue` |`Integer` | value of TTL. 
-
-|`CamelHazelcastObjectTtlUnit` |`java.util.concurrent.TimeUnit` | value of time unit ( DAYS / HOURS / MINUTES / ....
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 You can call the samples with:
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc
index dc49848..57e6196 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc
@@ -35,19 +35,22 @@ include::partial$component-endpoint-options.adoc[]
 
 == multimap cache producer - to("hazelcast-multimap:foo")
 
-A multimap is a cache where you can store n values to one key. The
-multimap producer provides 4 operations (put, get, removevalue, delete).
+A multimap is a cache where you can store n values to one key.
 
-Header Variables for the request message:
+The  multimap producer provides 8 operations:
 
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
+* put
+* get
+* removevalue
+* delete
+* containsKey
+* containsValue
+* clear
+* valueCount
 
-|`CamelHazelcastOperationType` |`String` |valid values are: put, get, removevalue, delete, clear.
-
-|`CamelHazelcastObjectId` |`String` |the object id to store / find your object inside the cache
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample for *put*:
 
@@ -166,7 +169,7 @@ template.sendBodyAndHeader("direct:[put|get|removevalue|delete]", "my-foo", Haze
 == multimap cache consumer - from("hazelcast-multimap:foo")
 
 For the multimap cache this component provides the same listeners /
-variables as for the map cache consumer (except the update and enviction
+variables as for the map cache consumer (except the update and eviction
 listener). The only difference is the *multimap* prefix inside the URI.
 Here is a sample:
 
@@ -188,24 +191,4 @@ fromF("hazelcast-%sbar", HazelcastConstants.MULTIMAP_PREFIX)
                 .log("fail!");
 --------------------------------------------------------------------------------------------------
 
-Header Variables inside the response message:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHazelcastListenerTime` |`Long` |time of the event in millis
-
-|`CamelHazelcastListenerType` |`String` |the map consumer sets here "cachelistener"
-
-|`CamelHazelcastListenerAction` |`String` |type of event - here *added* and *removed* (and soon *envicted*)
-
-|`CamelHazelcastObjectId` |`String` |the oid of the object
-
-|`CamelHazelcastCacheName` |`String` |the name of the cache - e.g. "foo"
-
-|`CamelHazelcastCacheType` |`String` |the type of the cache - here multimap
-|=======================================================================
-
-
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc
index 78e1eca..a86d660 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc
@@ -34,19 +34,24 @@ include::partial$component-endpoint-options.adoc[]
 
 == Queue producer – to(“hazelcast-queue:foo”)
 
-The queue producer provides 10 operations:
+The queue producer provides 12 operations:
+
 * add
 * put
 * poll
 * peek
 * offer
-* remove value
-* remaining capacity
-* remove all
-* remove if
-* drain to
+* removevalue
+* remainingCapacity
+* removeAll
+* removeIf
+* drainTo
 * take
-* retain all
+* retainAll
+
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample for *add*:
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc
index 721a86b..6f6bc1c 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc
@@ -34,22 +34,18 @@ include::partial$component-endpoint-options.adoc[]
 
 == replicatedmap cache producer
 
-The replicatedmap producer provides 4 operations:
+The replicatedmap producer provides 6 operations:
+
 * put
 * get
 * delete
 * clear
+* containsKey
+* containsValue
 
-Header Variables for the request message:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHazelcastOperationType` |`String` | valid values are: put, get, removevalue, delete
-
-|`CamelHazelcastObjectId` |`String` | the object id to store / find your object inside the cache
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample for *put*:
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc
index 278aace..fe804a8 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc
@@ -35,22 +35,16 @@ include::partial$component-endpoint-options.adoc[]
 == ringbuffer cache producer 
 
 The ringbuffer producer provides 5 operations:
+
 * add
-* readonceHead
-* readonceTail
+* readOnceHead
+* readOnceTail
 * remainingCapacity
 * capacity
 
-Header Variables for the request message:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHazelcastOperationType` |`String` |valid values are: put, get, removevalue, delete
-
-|`CamelHazelcastObjectId` |`String` |the object id to store / find your object inside the cache
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample for *put*:
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc
index 3e8dd6e..7321a45 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc
@@ -37,6 +37,10 @@ include::partial$component-endpoint-options.adoc[]
 The SEDA producer provides no operations. You only send data to the
 specified queue.
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
+
 Java DSL :
 
 [source,java]
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc
index e21cbb3..55c0afd 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc
@@ -30,6 +30,20 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+== set cache producer
 
+The set producer provides 7 operations:
+
+* add
+* removeAll
+* clear
+* addAll
+* removeAll
+* retainAll
+* getAll
+
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc
index 20897be..b325cdb 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc
@@ -37,6 +37,10 @@ include::partial$component-endpoint-options.adoc[]
 
 The topic producer provides only one operation (publish).
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
+
 === Sample for *publish*:
 
 [source,java]
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
index c15cab8..0217c47 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
@@ -16,8 +16,25 @@
  */
 package org.apache.camel.component.hazelcast;
 
+import org.apache.camel.spi.Metadata;
+
 public final class HazelcastConstants {
 
+    /**
+     * All the schemes
+     */
+    public static final String SCHEME_ATOMIC_VALUE = "hazelcast-atomicvalue";
+    public static final String SCHEME_INSTANCE = "hazelcast-instance";
+    public static final String SCHEME_LIST = "hazelcast-list";
+    public static final String SCHEME_MAP = "hazelcast-map";
+    public static final String SCHEME_MULTIMAP = "hazelcast-multimap";
+    public static final String SCHEME_QUEUE = "hazelcast-queue";
+    public static final String SCHEME_REPLICATED_MAP = "hazelcast-replicatedmap";
+    public static final String SCHEME_RING_BUFFER = "hazelcast-ringbuffer";
+    public static final String SCHEME_SEDA = "hazelcast-seda";
+    public static final String SCHEME_SET = "hazelcast-set";
+    public static final String SCHEME_TOPIC = "hazelcast-topic";
+
     /*
     * uri prefixes
     */
@@ -36,27 +53,62 @@ public final class HazelcastConstants {
     /*
      * incoming header properties
      */
+    @Metadata(description = "the object id to store / find your object inside the cache", javaType = "String", applicableFor = {
+            SCHEME_MULTIMAP, SCHEME_REPLICATED_MAP, SCHEME_LIST, SCHEME_QUEUE, SCHEME_SET, SCHEME_MAP, SCHEME_TOPIC })
     public static final String OBJECT_ID = "CamelHazelcastObjectId";
+    @Metadata(label = "producer", description = "The index of the object", javaType = "Integer", applicableFor = SCHEME_LIST)
     public static final String OBJECT_POS = "CamelHazelcastObjectIndex";
+    @Metadata(label = "producer", description = "The old value", javaType = "Object", applicableFor = SCHEME_MAP)
     public static final String OBJECT_VALUE = "CamelHazelcastObjectValue";
+    @Metadata(label = "producer", description = "The value of the TTL", javaType = "Integer", applicableFor = SCHEME_MAP)
     public static final String TTL_VALUE = "CamelHazelcastObjectTtlValue";
+    @Metadata(label = "producer", description = "The value of time unit ( DAYS / HOURS / MINUTES / ....",
+              javaType = "java.util.concurrent.TimeUnit", applicableFor = SCHEME_MAP)
     public static final String TTL_UNIT = "CamelHazelcastObjectTtlUnit";
+    @Metadata(label = "producer",
+              description = "The query to execute against the map with a sql like syntax (see http://www.hazelcast.com/)",
+              javaType = "String", applicableFor = SCHEME_MAP)
     public static final String QUERY = "CamelHazelcastQuery";
     public static final String EXPECTED_VALUE = "CamelHazelcastExpectedValue";
+    @Metadata(label = "producer", description = "The collection to transfer elements into", javaType = "Collection",
+              applicableFor = SCHEME_QUEUE)
     public static final String DRAIN_TO_COLLECTION = "CamelHazelcastDrainToCollection";
 
     /*
      * outgoing header properties
      */
+    @Metadata(label = "consumer", description = "The type of event - here *added* and *removed*", javaType = "String",
+              applicableFor = {
+                      SCHEME_MULTIMAP, SCHEME_REPLICATED_MAP, SCHEME_LIST, SCHEME_QUEUE, SCHEME_SET, SCHEME_MAP, SCHEME_TOPIC,
+                      SCHEME_INSTANCE })
     public static final String LISTENER_ACTION = "CamelHazelcastListenerAction";
+    @Metadata(label = "consumer", description = "The map consumer", javaType = "String",
+              applicableFor = {
+                      SCHEME_MULTIMAP, SCHEME_REPLICATED_MAP, SCHEME_LIST, SCHEME_QUEUE, SCHEME_SET, SCHEME_MAP, SCHEME_TOPIC,
+                      SCHEME_INSTANCE })
     public static final String LISTENER_TYPE = "CamelHazelcastListenerType";
+    @Metadata(label = "consumer", description = "The time of the event in millis", javaType = "Long",
+              applicableFor = {
+                      SCHEME_MULTIMAP, SCHEME_REPLICATED_MAP, SCHEME_LIST, SCHEME_QUEUE, SCHEME_SET, SCHEME_MAP, SCHEME_TOPIC,
+                      SCHEME_INSTANCE })
     public static final String LISTENER_TIME = "CamelHazelcastListenerTime";
+    @Metadata(label = "consumer", description = "The host name of the instance", javaType = "String",
+              applicableFor = SCHEME_INSTANCE)
     public static final String INSTANCE_HOST = "CamelHazelcastInstanceHost";
+    @Metadata(label = "consumer", description = "The port number of the instance", javaType = "Integer",
+              applicableFor = SCHEME_INSTANCE)
     public static final String INSTANCE_PORT = "CamelHazelcastInstancePort";
+    @Metadata(label = "consumer", description = "The name of the cache - e.g. \"foo\"", javaType = "String", applicableFor = {
+            SCHEME_MULTIMAP, SCHEME_REPLICATED_MAP, SCHEME_LIST, SCHEME_QUEUE, SCHEME_SET, SCHEME_MAP, SCHEME_TOPIC })
     public static final String CACHE_NAME = "CamelHazelcastCacheName";
+    @Metadata(description = "The type of the cache - here multimap", javaType = "String", applicableFor = SCHEME_MULTIMAP)
     public static final String CACHE_TYPE = "CamelHazelcastCacheType";
 
     // actions (PUT, DELETE, GET, GET_ALL, UPDATE, CLEAR)
+    @Metadata(label = "producer", description = "The operation to perform", javaType = "String",
+              applicableFor = {
+                      SCHEME_MULTIMAP, SCHEME_REPLICATED_MAP, SCHEME_LIST, SCHEME_QUEUE, SCHEME_SET, SCHEME_MAP, SCHEME_TOPIC,
+                      SCHEME_ATOMIC_VALUE, SCHEME_RING_BUFFER })
     public static final String OPERATION = "CamelHazelcastOperationType";
 
     /**
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
index dbc4d54..faa05e1 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
@@ -23,14 +23,18 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_ATOMIC_VALUE;
+
 /**
  * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide number).
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-atomicvalue", title = "Hazelcast Atomic Number",
-             syntax = "hazelcast-atomicvalue:cacheName", producerOnly = true, category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_ATOMIC_VALUE, title = "Hazelcast Atomic Number",
+             syntax = "hazelcast-atomicvalue:cacheName", producerOnly = true, category = { Category.CACHE, Category.DATAGRID },
+             headersClass = HazelcastConstants.class)
 public class HazelcastAtomicnumberEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastAtomicnumberEndpoint(HazelcastInstance hazelcastInstance, String uri, Component component,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceEndpoint.java
index 0cdab75..e25f57c 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/instance/HazelcastInstanceEndpoint.java
@@ -22,16 +22,19 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_INSTANCE;
+
 /**
  * Consume join/leave events of a cache instance in a Hazelcast cluster.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-instance", title = "Hazelcast Instance",
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_INSTANCE, title = "Hazelcast Instance",
              syntax = "hazelcast-instance:cacheName",
-             consumerOnly = true, category = { Category.CACHE, Category.DATAGRID })
+             consumerOnly = true, category = { Category.CACHE, Category.DATAGRID }, headersClass = HazelcastConstants.class)
 public class HazelcastInstanceEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastInstanceEndpoint(HazelcastInstance hazelcastInstance, String uri, HazelcastDefaultComponent component) {
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListEndpoint.java
index 4a6ed8f..aab407b 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/list/HazelcastListEndpoint.java
@@ -23,14 +23,17 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_LIST;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> distributed list.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-list", title = "Hazelcast List", syntax = "hazelcast-list:cacheName",
-             category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_LIST, title = "Hazelcast List", syntax = "hazelcast-list:cacheName",
+             category = { Category.CACHE, Category.DATAGRID }, headersClass = HazelcastConstants.class)
 public class HazelcastListEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastListEndpoint(HazelcastInstance hazelcastInstance, String endpointUri, Component component,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapEndpoint.java
index e1c10e1..0e5027e 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapEndpoint.java
@@ -22,15 +22,18 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_MAP;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> distributed map.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-map", title = "Hazelcast Map", syntax = "hazelcast-map:cacheName",
-             category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_MAP, title = "Hazelcast Map", syntax = "hazelcast-map:cacheName",
+             category = { Category.CACHE, Category.DATAGRID }, headersClass = HazelcastConstants.class)
 public class HazelcastMapEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastMapEndpoint(HazelcastInstance hazelcastInstance, String uri, String cacheName,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapEndpoint.java
index e969f57..89b0386 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/multimap/HazelcastMultimapEndpoint.java
@@ -22,15 +22,19 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_MULTIMAP;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> distributed multimap.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-multimap", title = "Hazelcast Multimap",
-             syntax = "hazelcast-multimap:cacheName", category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_MULTIMAP, title = "Hazelcast Multimap",
+             syntax = "hazelcast-multimap:cacheName", category = { Category.CACHE, Category.DATAGRID },
+             headersClass = HazelcastConstants.class)
 public class HazelcastMultimapEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastMultimapEndpoint(HazelcastInstance hazelcastInstance, String uri, String cacheName,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/queue/HazelcastQueueEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/queue/HazelcastQueueEndpoint.java
index 660e61f..cfc2230 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/queue/HazelcastQueueEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/queue/HazelcastQueueEndpoint.java
@@ -25,16 +25,20 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.component.hazelcast.HazelcastOperation;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_QUEUE;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> distributed queue.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-queue", title = "Hazelcast Queue",
-             syntax = "hazelcast-queue:cacheName", category = { Category.CACHE, Category.DATAGRID, Category.MESSAGING })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_QUEUE, title = "Hazelcast Queue",
+             syntax = "hazelcast-queue:cacheName", category = { Category.CACHE, Category.DATAGRID, Category.MESSAGING },
+             headersClass = HazelcastConstants.class)
 public class HazelcastQueueEndpoint extends HazelcastDefaultEndpoint {
 
     @UriParam
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/replicatedmap/HazelcastReplicatedmapEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/replicatedmap/HazelcastReplicatedmapEndpoint.java
index 764b615..4fb21a0 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/replicatedmap/HazelcastReplicatedmapEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/replicatedmap/HazelcastReplicatedmapEndpoint.java
@@ -22,15 +22,19 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_REPLICATED_MAP;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> replicated map.
  */
-@UriEndpoint(firstVersion = "2.16.0", scheme = "hazelcast-replicatedmap", title = "Hazelcast Replicated Map",
-             syntax = "hazelcast-replicatedmap:cacheName", category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.16.0", scheme = SCHEME_REPLICATED_MAP, title = "Hazelcast Replicated Map",
+             syntax = "hazelcast-replicatedmap:cacheName", category = { Category.CACHE, Category.DATAGRID },
+             headersClass = HazelcastConstants.class)
 public class HazelcastReplicatedmapEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastReplicatedmapEndpoint(HazelcastInstance hazelcastInstance, String uri, String cacheName,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/ringbuffer/HazelcastRingbufferEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/ringbuffer/HazelcastRingbufferEndpoint.java
index 8bdeb5d..41e626e 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/ringbuffer/HazelcastRingbufferEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/ringbuffer/HazelcastRingbufferEndpoint.java
@@ -23,14 +23,18 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_RING_BUFFER;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> distributed ringbuffer.
  */
-@UriEndpoint(firstVersion = "2.16.0", scheme = "hazelcast-ringbuffer", title = "Hazelcast Ringbuffer",
-             syntax = "hazelcast-ringbuffer:cacheName", producerOnly = true, category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.16.0", scheme = SCHEME_RING_BUFFER, title = "Hazelcast Ringbuffer",
+             syntax = "hazelcast-ringbuffer:cacheName", producerOnly = true, category = { Category.CACHE, Category.DATAGRID },
+             headersClass = HazelcastConstants.class)
 public class HazelcastRingbufferEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastRingbufferEndpoint(HazelcastInstance hazelcastInstance, String uri, Component component,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/seda/HazelcastSedaEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/seda/HazelcastSedaEndpoint.java
index 70290c8..d6b4fbc 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/seda/HazelcastSedaEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/seda/HazelcastSedaEndpoint.java
@@ -24,18 +24,21 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_SEDA;
+
 /**
  * Asynchronously send/receive Exchanges between Camel routes running on potentially distinct JVMs/hosts backed by
  * Hazelcast {@link BlockingQueue}.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-seda", title = "Hazelcast SEDA", syntax = "hazelcast-seda:cacheName",
-             category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_SEDA, title = "Hazelcast SEDA", syntax = "hazelcast-seda:cacheName",
+             category = { Category.CACHE, Category.DATAGRID }, headersClass = HazelcastConstants.class)
 public class HazelcastSedaEndpoint extends HazelcastDefaultEndpoint {
 
     private final BlockingQueue<Object> queue;
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/set/HazelcastSetEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/set/HazelcastSetEndpoint.java
index adc0bd1..ce4e279 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/set/HazelcastSetEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/set/HazelcastSetEndpoint.java
@@ -23,14 +23,17 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_SET;
+
 /**
  * Perform operations on <a href="http://www.hazelcast.com/">Hazelcast</a> distributed set.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "hazelcast-set", title = "Hazelcast Set", syntax = "hazelcast-set:cacheName",
-             category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_SET, title = "Hazelcast Set", syntax = "hazelcast-set:cacheName",
+             category = { Category.CACHE, Category.DATAGRID }, headersClass = HazelcastConstants.class)
 public class HazelcastSetEndpoint extends HazelcastDefaultEndpoint {
 
     public HazelcastSetEndpoint(HazelcastInstance hazelcastInstance, String endpointUri, Component component,
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/topic/HazelcastTopicEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/topic/HazelcastTopicEndpoint.java
index 8b5ecfc..3c83e85 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/topic/HazelcastTopicEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/topic/HazelcastTopicEndpoint.java
@@ -24,16 +24,20 @@ import org.apache.camel.MultipleConsumersSupport;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.hazelcast.HazelcastCommand;
+import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.component.hazelcast.HazelcastOperation;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
+import static org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_TOPIC;
+
 /**
  * Send and receive messages to/from <a href="http://www.hazelcast.com/">Hazelcast</a> distributed topic.
  */
-@UriEndpoint(firstVersion = "2.15.0", scheme = "hazelcast-topic", title = "Hazelcast Topic",
-             syntax = "hazelcast-topic:cacheName", category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.15.0", scheme = SCHEME_TOPIC, title = "Hazelcast Topic",
+             syntax = "hazelcast-topic:cacheName", category = { Category.CACHE, Category.DATAGRID },
+             headersClass = HazelcastConstants.class)
 public class HazelcastTopicEndpoint extends HazelcastDefaultEndpoint implements MultipleConsumersSupport {
 
     @UriParam

[camel] 07/12: CAMEL-17792: Add doc about the message headers of camel-ignite

Posted by nf...@apache.org.
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 36e4dfd0eb301e12538892a490bde6b807dc79aa
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 16:45:36 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-ignite
---
 .../camel/component/ignite/cache/ignite-cache.json |  9 ++++
 .../component/ignite/compute/ignite-compute.json   |  7 +++
 .../camel/component/ignite/idgen/ignite-idgen.json |  3 ++
 .../ignite/messaging/ignite-messaging.json         |  4 ++
 .../camel/component/ignite/queue/ignite-queue.json |  6 +++
 .../camel/component/ignite/set/ignite-set.json     |  3 ++
 .../src/main/docs/ignite-cache-component.adoc      | 34 ++-----------
 .../src/main/docs/ignite-compute-component.adoc    | 26 ++--------
 .../src/main/docs/ignite-idgen-component.adoc      |  4 +-
 .../src/main/docs/ignite-messaging-component.adoc  | 18 ++-----
 .../src/main/docs/ignite-queue-component.adoc      | 22 ++------
 .../src/main/docs/ignite-set-component.adoc        | 13 ++---
 .../camel/component/ignite/IgniteConstants.java    | 59 ++++++++++++++++++++++
 .../ignite/cache/IgniteCacheEndpoint.java          |  7 ++-
 .../ignite/compute/IgniteComputeEndpoint.java      |  7 ++-
 .../ignite/events/IgniteEventsEndpoint.java        |  4 +-
 .../ignite/idgen/IgniteIdGenEndpoint.java          |  7 ++-
 .../ignite/messaging/IgniteMessagingEndpoint.java  |  7 ++-
 .../ignite/queue/IgniteQueueEndpoint.java          |  7 ++-
 .../component/ignite/set/IgniteSetEndpoint.java    |  7 ++-
 20 files changed, 142 insertions(+), 112 deletions(-)

diff --git a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/cache/ignite-cache.json b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/cache/ignite-cache.json
index ec62407..fac9d5d 100644
--- a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/cache/ignite-cache.json
+++ b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/cache/ignite-cache.json
@@ -29,6 +29,15 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIgniteCacheKey": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cache key for the entry value in the message body." },
+    "CamelIgniteCacheQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.ignite.cache.query.Query", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The query to run when invoking the QUERY operation." },
+    "CamelIgniteCacheOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.ignite.cache.IgniteCacheOperation", "enum": [ "GET", "PUT", "REMOVE", "SIZE", "REBALANCE", "QUERY", "CLEAR" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows you to dynamically change the cache operation to execute." },
+    "CamelIgniteCachePeekMode": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.ignite.cache.CachePeekMode", "enum": [ "ALL", "NEAR", "PRIMARY", "BACKUP", "ONHEAP", "OFFHEAP" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows you to dynamically change the cache peek mode when running the SIZE operation." },
+    "CamelIgniteCacheEventType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "javax.cache.event.EventType", "enum": [ "CREATED", "UPDATED", "REMOVED", "EXPIRED" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This header carries the received event type when using the continuous query consumer." },
+    "CamelIgniteCacheName": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This header carries the cache name for which a continuous query event was received (consumer).\nIt does not allow you to dynamically change the cache against which a producer operation is performed. Use EIPs for that (e.g. recipient list, dynami [...]
+    "CamelIgniteCacheOldValue": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This header carries the old cache value when passed in the incoming cache event." }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cache name." },
     "propagateIncomingBodyIfNoReturnValue": { "kind": "parameter", "displayName": "Propagate Incoming Body If No Return Value", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to propagate the incoming body if the return type of the underlying Ignite operation is void." },
diff --git a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/compute/ignite-compute.json b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/compute/ignite-compute.json
index 3937754..4e5d04f 100644
--- a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/compute/ignite-compute.json
+++ b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/compute/ignite-compute.json
@@ -28,6 +28,13 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIgniteComputeExecutionType": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.ignite.compute.IgniteComputeExecutionType", "enum": [ "CALL", "BROADCAST", "APPLY", "EXECUTE", "RUN", "AFFINITY_CALL", "AFFINITY_RUN" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows you to dynamically change the compute operation to perform." },
+    "CamelIgniteComputeParameters": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Any object or Collection of objects", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Parameters for APPLY, BROADCAST and EXECUTE operations." },
+    "CamelIgniteComputeReducer": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.ignite.lang.IgniteReducer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reducer for the APPLY and CALL operations." },
+    "CamelIgniteComputeAffinityCacheName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Affinity cache name for the AFFINITY_CALL and AFFINITY_RUN operations." },
+    "CamelIgniteComputeAffinityKey": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Affinity key for the AFFINITY_CALL and AFFINITY_RUN operations." }
+  },
   "properties": {
     "endpointId": { "kind": "path", "displayName": "Endpoint Id", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The endpoint ID (not used)." },
     "clusterGroupExpression": { "kind": "parameter", "displayName": "Cluster Group Expression", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.ignite.ClusterGroupExpression", "deprecated": false, "autowired": false, "secret": false, "description": "An expression that returns the Cluster Group for the IgniteCompute instance." },
diff --git a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/idgen/ignite-idgen.json b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/idgen/ignite-idgen.json
index c05b68e..dba6a5b 100644
--- a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/idgen/ignite-idgen.json
+++ b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/idgen/ignite-idgen.json
@@ -28,6 +28,9 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIgniteIdGenOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.ignite.idgen.IgniteIdGenOperation", "enum": [ "ADD_AND_GET", "GET", "GET_AND_ADD", "GET_AND_INCREMENT", "INCREMENT_AND_GET" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows you to dynamically change the ID Generator operation." }
+  },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sequence name." },
     "batchSize": { "kind": "parameter", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "The batch size." },
diff --git a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/messaging/ignite-messaging.json b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/messaging/ignite-messaging.json
index 437d5d6..b79f4fb 100644
--- a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/messaging/ignite-messaging.json
+++ b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/messaging/ignite-messaging.json
@@ -29,6 +29,10 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIgniteMessagingTopic": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) Allows you to dynamically change the topic to send messages to. \n(consumer) It also carries the topic on which a message was received." },
+    "CamelIgniteMessagingUUID": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "java.util.UUID", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This header is filled in with the UUID of the subscription when a message arrives." }
+  },
   "properties": {
     "topic": { "kind": "path", "displayName": "Topic", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The topic name." },
     "propagateIncomingBodyIfNoReturnValue": { "kind": "parameter", "displayName": "Propagate Incoming Body If No Return Value", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to propagate the incoming body if the return type of the underlying Ignite operation is void." },
diff --git a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/queue/ignite-queue.json b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/queue/ignite-queue.json
index ffdc0e7..d691935 100644
--- a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/queue/ignite-queue.json
+++ b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/queue/ignite-queue.json
@@ -28,6 +28,12 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIgniteQueueOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.ignite.queue.IgniteQueueOperation", "enum": [ "CONTAINS", "ADD", "SIZE", "REMOVE", "ITERATOR", "CLEAR", "RETAIN_ALL", "ARRAY", "DRAIN", "ELEMENT", "PEEK", "OFFER", "POLL", "TAKE", "PUT" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows you to dynamically change  [...]
+    "CamelIgniteQueueMaxElements": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When invoking the DRAIN operation, the amount of items to drain." },
+    "CamelIgniteQueueTransferredCount": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The amount of items transferred as the result of the DRAIN operation." },
+    "CamelIgniteQueueTimeoutMillis": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Dynamically sets the timeout in milliseconds to use when invoking the OFFER or POLL operations." }
+  },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The queue name." },
     "capacity": { "kind": "parameter", "displayName": "Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The queue capacity. Default: non-bounded." },
diff --git a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/set/ignite-set.json b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/set/ignite-set.json
index de28aa1..c93251a 100644
--- a/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/set/ignite-set.json
+++ b/components/camel-ignite/src/generated/resources/org/apache/camel/component/ignite/set/ignite-set.json
@@ -28,6 +28,9 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIgniteSetsOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.ignite.set.IgniteSetOperation", "enum": [ "CONTAINS", "ADD", "SIZE", "REMOVE", "ITERATOR", "CLEAR", "RETAIN_ALL", "ARRAY" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows you to dynamically change the set operation." }
+  },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The set name." },
     "configuration": { "kind": "parameter", "displayName": "Configuration", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.ignite.configuration.CollectionConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The collection configuration. Default: empty configuration. You can also conveniently set inner properties by using configuration.xyz=123 options." },
diff --git a/components/camel-ignite/src/main/docs/ignite-cache-component.adoc b/components/camel-ignite/src/main/docs/ignite-cache-component.adoc
index 027b6c6..364dc76 100644
--- a/components/camel-ignite/src/main/docs/ignite-cache-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-cache-component.adoc
@@ -34,36 +34,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-
-== Headers used
-
-This endpoint uses the following headers:
-[width="100%",cols="1,1,1,4",options="header"]
-|=======================================================================
-| Header name | Constant | Expected type | Description
-| CamelIgniteCacheKey | IgniteConstants.IGNITE_CACHE_KEY | String |
-The cache key for the entry value in the message body.
-
-| CamelIgniteCacheQuery | IgniteConstants.IGNITE_CACHE_QUERY | Query |
-The query to run (producer) when invoking the QUERY operation.
-
-| CamelIgniteCacheOperation | IgniteConstants.IGNITE_CACHE_OPERATION | IgniteCacheOperation enum |
-Allows you to dynamically change the cache operation to execute (producer).
-
-| CamelIgniteCachePeekMode | IgniteConstants.IGNITE_CACHE_PEEK_MODE | CachePeekMode enum |
-Allows you to dynamically change the cache peek mode when running the SIZE operation.
-
-| CamelIgniteCacheEventType | IgniteConstants.IGNITE_CACHE_EVENT_TYPE | int (EventType constants) |
-This header carries the received event type when using the continuous query consumer.
-
-| CamelIgniteCacheName | IgniteConstants.IGNITE_CACHE_NAME | String |
-This header carries the cache name for which a continuous query event was received (consumer).
-It does not allow you to dynamically change the cache against which a producer operation is performed. Use EIPs for that (e.g. recipient list, dynamic router).
-
-| CamelIgniteCacheOldValue | IgniteConstants.IGNITE_CACHE_OLD_VALUE | Object |
-This header carries the old cache value when passed in the incoming cache event (consumer).
-|=======================================================================
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ignite/src/main/docs/ignite-compute-component.adoc b/components/camel-ignite/src/main/docs/ignite-compute-component.adoc
index d5278e9..4a514b6 100644
--- a/components/camel-ignite/src/main/docs/ignite-compute-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-compute-component.adoc
@@ -33,6 +33,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Expected payload types
 
@@ -49,27 +52,4 @@ Each operation expects the indicated types:
 | AFFINITY_RUN | IgniteRunnable.
 |=======================================================================
 
-=== Headers used
-
-This endpoint uses the following headers:
-[width="100%",cols="1,1,1,4",options="header"]
-|=======================================================================
-| Header name | Constant | Expected type | Description
-| CamelIgniteComputeExecutionType | IgniteConstants.IGNITE_COMPUTE_EXECUTION_TYPE | IgniteComputeExecutionType enum |
- Allows you to dynamically change the compute operation to perform.
-
-| CamelIgniteComputeParameters | IgniteConstants.IGNITE_COMPUTE_PARAMS | Any object or Collection of objects. |
-Parameters for APPLY, BROADCAST and EXECUTE operations.
-
-| CamelIgniteComputeReducer | IgniteConstants.IGNITE_COMPUTE_REDUCER | IgniteReducer |
-Reducer for the APPLY and CALL operations.
-
-| CamelIgniteComputeAffinityCacheName | IgniteConstants.IGNITE_COMPUTE_AFFINITY_CACHE_NAME | String |
-Affinity cache name for the AFFINITY_CALL and AFFINITY_RUN operations.
-
-| CamelIgniteComputeAffinityKey | IgniteConstants.IGNITE_COMPUTE_AFFINITY_KEY | Object |
-Affinity key for the AFFINITY_CALL and AFFINITY_RUN operations.
-|=======================================================================
-
-
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc b/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc
index fd28be4..0658176 100644
--- a/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc
@@ -29,6 +29,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc b/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc
index 47036a3..93b89b0 100644
--- a/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc
@@ -29,20 +29,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-== Headers used
-
-This endpoint uses the following headers:
-[width="100%",cols="1,1,1,4",options="header"]
-|=======================================================================
-| Header name | Constant | Expected type | Description
-| CamelIgniteMessagingTopic | IgniteConstants.IGNITE_MESSAGING_TOPIC | String |
-Allows you to dynamically change the topic to send messages to (producer). 
-It also carries the topic on which a message was received (consumer).
-
-| CamelIgniteMessagingUUID | IgniteConstants.IGNITE_MESSAGING_UUID | UUID |
-This header is filled in with the UUID of the subscription when a message arrives (consumer).
-|=======================================================================
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ignite/src/main/docs/ignite-queue-component.adoc b/components/camel-ignite/src/main/docs/ignite-queue-component.adoc
index a0daff4..800d0b0 100644
--- a/components/camel-ignite/src/main/docs/ignite-queue-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-queue-component.adoc
@@ -29,24 +29,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-== Headers used
-
-This endpoint uses the following headers:
-[width="100%",cols="1,1,1,4",options="header"]
-|=======================================================================
-| Header name | Constant | Expected type | Description
-| CamelIgniteQueueOperation | IgniteConstants.IGNITE_QUEUE_OPERATION | IgniteQueueOperation enum |
-Allows you to dynamically change the queue operation.
-
-| CamelIgniteQueueMaxElements | IgniteConstants.IGNITE_QUEUE_MAX_ELEMENTS | Integer or int |
-When invoking the DRAIN operation, the amount of items to drain.
-
-| CamelIgniteQueueTransferredCount | IgniteConstants.IGNITE_QUEUE_TRANSFERRED_COUNT | Integer or int |
-The amount of items transferred as the result of the DRAIN operation.
-
-| CamelIgniteQueueTimeoutMillis | IgniteConstants.IGNITE_QUEUE_TIMEOUT_MILLIS | Long or long |
-Dynamically sets the timeout in milliseconds to use when invoking the OFFER or POLL operations. 
-|=======================================================================
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ignite/src/main/docs/ignite-set-component.adoc b/components/camel-ignite/src/main/docs/ignite-set-component.adoc
index 5dc1e4f1..885bb87 100644
--- a/components/camel-ignite/src/main/docs/ignite-set-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-set-component.adoc
@@ -29,15 +29,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-== Headers used
-
-This endpoint uses the following headers:
-[width="100%",cols="1,1,1,4",options="header"]
-|=======================================================================
-| Header name | Constant | Expected type | Description
-| CamelIgniteSetsOperation | IgniteConstants.IGNITE_SETS_OPERATION | IgniteSetOperation enum |
-Allows you to dynamically change the set operation.
-|=======================================================================
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/IgniteConstants.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/IgniteConstants.java
index c34a320..5c7dc92 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/IgniteConstants.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/IgniteConstants.java
@@ -16,41 +16,100 @@
  */
 package org.apache.camel.component.ignite;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Ignite Component constants.
  */
 public final class IgniteConstants {
 
+    // Schemes
+    public static final String SCHEME_CACHE = "ignite-cache";
+    public static final String SCHEME_COMPUTE = "ignite-compute";
+    public static final String SCHEME_MESSAGING = "ignite-messaging";
+    public static final String SCHEME_QUEUE = "ignite-queue";
+    public static final String SCHEME_SET = "ignite-set";
+    public static final String SCHEME_EVENTS = "ignite-events";
+    public static final String SCHEME_IDGEN = "ignite-idgen";
+
     // Ignite Cache.
+    @Metadata(description = "The cache key for the entry value in the message body.", javaType = "Object",
+              applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_KEY = "CamelIgniteCacheKey";
+    @Metadata(label = "producer", description = "The query to run when invoking the QUERY operation.",
+              javaType = "org.apache.ignite.cache.query.Query", applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_QUERY = "CamelIgniteCacheQuery";
+    @Metadata(label = "producer", description = "Allows you to dynamically change the cache operation to execute.",
+              javaType = "org.apache.camel.component.ignite.cache.IgniteCacheOperation", applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_OPERATION = "CamelIgniteCacheOperation";
+    @Metadata(label = "producer",
+              description = "Allows you to dynamically change the cache peek mode when running the SIZE operation.",
+              javaType = "org.apache.ignite.cache.CachePeekMode", applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_PEEK_MODE = "CamelIgniteCachePeekMode";
+    @Metadata(label = "consumer",
+              description = "This header carries the received event type when using the continuous query consumer.",
+              javaType = "javax.cache.event.EventType", applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_EVENT_TYPE = "CamelIgniteCacheEventType";
+    @Metadata(label = "consumer",
+              description = "This header carries the cache name for which a continuous query event was received (consumer).\n" +
+                            "It does not allow you to dynamically change the cache against which a producer operation is performed. Use EIPs for that (e.g. recipient list, dynamic router).",
+              javaType = "String", applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_NAME = "CamelIgniteCacheName";
+    @Metadata(label = "consumer",
+              description = "This header carries the old cache value when passed in the incoming cache event.",
+              javaType = "Object", applicableFor = SCHEME_CACHE)
     public static final String IGNITE_CACHE_OLD_VALUE = "CamelIgniteCacheOldValue";
 
     // Ignite Messaging.
+    @Metadata(description = "(producer) Allows you to dynamically change the topic to send messages to. \n" +
+                            "(consumer) It also carries the topic on which a message was received.",
+              javaType = "String", applicableFor = SCHEME_MESSAGING)
     public static final String IGNITE_MESSAGING_TOPIC = "CamelIgniteMessagingTopic";
+    @Metadata(label = "consumer",
+              description = "This header is filled in with the UUID of the subscription when a message arrives.",
+              javaType = "java.util.UUID", applicableFor = SCHEME_MESSAGING)
     public static final String IGNITE_MESSAGING_UUID = "CamelIgniteMessagingUUID";
 
     // Ignite Compute.
+    @Metadata(label = "producer", description = "Allows you to dynamically change the compute operation to perform.",
+              javaType = "org.apache.camel.component.ignite.compute.IgniteComputeExecutionType", applicableFor = SCHEME_COMPUTE)
     public static final String IGNITE_COMPUTE_EXECUTION_TYPE = "CamelIgniteComputeExecutionType";
+    @Metadata(label = "producer", description = "Parameters for APPLY, BROADCAST and EXECUTE operations.",
+              javaType = "Any object or Collection of objects", applicableFor = SCHEME_COMPUTE)
     public static final String IGNITE_COMPUTE_PARAMS = "CamelIgniteComputeParameters";
+    @Metadata(label = "producer", description = "Reducer for the APPLY and CALL operations.",
+              javaType = "org.apache.ignite.lang.IgniteReducer", applicableFor = SCHEME_COMPUTE)
     public static final String IGNITE_COMPUTE_REDUCER = "CamelIgniteComputeReducer";
+    @Metadata(label = "producer", description = "Affinity cache name for the AFFINITY_CALL and AFFINITY_RUN operations.",
+              javaType = "String", applicableFor = SCHEME_COMPUTE)
     public static final String IGNITE_COMPUTE_AFFINITY_CACHE_NAME = "CamelIgniteComputeAffinityCacheName";
+    @Metadata(label = "producer", description = "Affinity key for the AFFINITY_CALL and AFFINITY_RUN operations.",
+              javaType = "Object", applicableFor = SCHEME_COMPUTE)
     public static final String IGNITE_COMPUTE_AFFINITY_KEY = "CamelIgniteComputeAffinityKey";
 
     // Ignite Sets.
+    @Metadata(label = "producer", description = "Allows you to dynamically change the set operation.",
+              javaType = "org.apache.camel.component.ignite.set.IgniteSetOperation", applicableFor = SCHEME_SET)
     public static final String IGNITE_SETS_OPERATION = "CamelIgniteSetsOperation";
 
     // Ignite ID Gen.
+    @Metadata(label = "producer", description = "Allows you to dynamically change the ID Generator operation.",
+              javaType = "org.apache.camel.component.ignite.idgen.IgniteIdGenOperation", applicableFor = SCHEME_IDGEN)
     public static final String IGNITE_IDGEN_OPERATION = "CamelIgniteIdGenOperation";
 
     // Ignite Queues.
+    @Metadata(label = "producer", description = "Allows you to dynamically change the queue operation.",
+              javaType = "org.apache.camel.component.ignite.queue.IgniteQueueOperation", applicableFor = SCHEME_QUEUE)
     public static final String IGNITE_QUEUE_OPERATION = "CamelIgniteQueueOperation";
+    @Metadata(label = "producer", description = "When invoking the DRAIN operation, the amount of items to drain.",
+              javaType = "Integer", applicableFor = SCHEME_QUEUE)
     public static final String IGNITE_QUEUE_MAX_ELEMENTS = "CamelIgniteQueueMaxElements";
+    @Metadata(label = "producer", description = "The amount of items transferred as the result of the DRAIN operation.",
+              javaType = "Integer", applicableFor = SCHEME_QUEUE)
     public static final String IGNITE_QUEUE_TRANSFERRED_COUNT = "CamelIgniteQueueTransferredCount";
+    @Metadata(label = "producer",
+              description = "Dynamically sets the timeout in milliseconds to use when invoking the OFFER or POLL operations.",
+              javaType = "Long", applicableFor = SCHEME_QUEUE)
     public static final String IGNITE_QUEUE_TIMEOUT_MILLIS = "CamelIgniteQueueTimeoutMillis";
 
     private IgniteConstants() {
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
index b3e7dc8..73d1940 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/cache/IgniteCacheEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
+import org.apache.camel.component.ignite.IgniteConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -36,11 +37,13 @@ import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.cache.query.ContinuousQuery;
 import org.apache.ignite.cache.query.Query;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_CACHE;
+
 /**
  * Perform cache operations on an Ignite cache or consume changes from a continuous query.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-cache", title = "Ignite Cache", syntax = "ignite-cache:cacheName",
-             category = { Category.CACHE, Category.DATAGRID })
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_CACHE, title = "Ignite Cache", syntax = "ignite-cache:cacheName",
+             category = { Category.CACHE, Category.DATAGRID }, headersClass = IgniteConstants.class)
 public class IgniteCacheEndpoint extends AbstractIgniteEndpoint {
 
     @UriPath
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
index 552758b..3f9d0a1 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/compute/IgniteComputeEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
 import org.apache.camel.component.ignite.ClusterGroupExpression;
+import org.apache.camel.component.ignite.IgniteConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -31,14 +32,16 @@ import org.apache.camel.spi.UriPath;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCompute;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_COMPUTE;
+
 /**
  * Run <a href="https://apacheignite.readme.io/docs/compute-grid">compute operations</a> on an Ignite cluster.
  * 
  * You can pass an IgniteCallable, an IgniteRunnable, an IgniteClosure, or collections of them, along with their
  * parameters if necessary. This endpoint only supports producers.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-compute", title = "Ignite Compute", syntax = "ignite-compute:endpointId",
-             category = { Category.COMPUTE }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_COMPUTE, title = "Ignite Compute", syntax = "ignite-compute:endpointId",
+             category = { Category.COMPUTE }, producerOnly = true, headersClass = IgniteConstants.class)
 public class IgniteComputeEndpoint extends AbstractIgniteEndpoint {
 
     @UriPath
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
index 174405a..2272c14 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/events/IgniteEventsEndpoint.java
@@ -40,6 +40,8 @@ import org.apache.ignite.events.EventType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_EVENTS;
+
 /**
  * <a href="https://apacheignite.readme.io/docs/events">Receive events</a> from an Ignite cluster by creating a local
  * event listener.
@@ -47,7 +49,7 @@ import org.slf4j.LoggerFactory;
  * This endpoint only supports consumers. The Exchanges created by this consumer put the received Event object into the
  * body of the IN message.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-events", title = "Ignite Events", syntax = "ignite-events:endpointId",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_EVENTS, title = "Ignite Events", syntax = "ignite-events:endpointId",
              category = { Category.MESSAGING, Category.EVENTBUS },
              consumerOnly = true)
 public class IgniteEventsEndpoint extends AbstractIgniteEndpoint {
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
index 174569e..f73e4b4 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/idgen/IgniteIdGenEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
+import org.apache.camel.component.ignite.IgniteConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -32,14 +33,16 @@ import org.apache.ignite.IgniteAtomicSequence;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_IDGEN;
+
 /**
  * Interact with <a href="https://apacheignite.readme.io/docs/id-generator">Ignite Atomic Sequences and ID Generators
  * </a>.
  *
  * This endpoint only supports producers.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-idgen", title = "Ignite ID Generator", syntax = "ignite-idgen:name",
-             category = { Category.COMPUTE }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_IDGEN, title = "Ignite ID Generator", syntax = "ignite-idgen:name",
+             category = { Category.COMPUTE }, producerOnly = true, headersClass = IgniteConstants.class)
 public class IgniteIdGenEndpoint extends AbstractIgniteEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(IgniteIdGenEndpoint.class);
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
index a4ca051..b89c226 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/messaging/IgniteMessagingEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
 import org.apache.camel.component.ignite.ClusterGroupExpression;
+import org.apache.camel.component.ignite.IgniteConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -31,13 +32,15 @@ import org.apache.camel.spi.UriPath;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteMessaging;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_MESSAGING;
+
 /**
  * Send and receive messages from an <a href="https://apacheignite.readme.io/docs/messaging">Ignite topic</a>.
  *
  * This endpoint supports producers (to send messages) and consumers (to receive messages).
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-messaging", title = "Ignite Messaging",
-             syntax = "ignite-messaging:topic", category = { Category.MESSAGING })
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_MESSAGING, title = "Ignite Messaging",
+             syntax = "ignite-messaging:topic", category = { Category.MESSAGING }, headersClass = IgniteConstants.class)
 public class IgniteMessagingEndpoint extends AbstractIgniteEndpoint {
 
     @UriPath
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
index 1b7e787..543d806 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/queue/IgniteQueueEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
+import org.apache.camel.component.ignite.IgniteConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -33,13 +34,15 @@ import org.apache.camel.util.PropertiesHelper;
 import org.apache.ignite.IgniteQueue;
 import org.apache.ignite.configuration.CollectionConfiguration;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_QUEUE;
+
 /**
  * Interact with <a href="https://apacheignite.readme.io/docs/queue-and-set">Ignite Queue data structures</a>.
  *
  * This endpoint only supports producers.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-queue", title = "Ignite Queues", syntax = "ignite-queue:name",
-             category = { Category.MESSAGING, Category.QUEUE }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_QUEUE, title = "Ignite Queues", syntax = "ignite-queue:name",
+             category = { Category.MESSAGING, Category.QUEUE }, producerOnly = true, headersClass = IgniteConstants.class)
 public class IgniteQueueEndpoint extends AbstractIgniteEndpoint {
 
     @UriPath
diff --git a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
index d2208fa..51c1636 100644
--- a/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
+++ b/components/camel-ignite/src/main/java/org/apache/camel/component/ignite/set/IgniteSetEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ignite.AbstractIgniteEndpoint;
+import org.apache.camel.component.ignite.IgniteConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -31,13 +32,15 @@ import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.PropertiesHelper;
 import org.apache.ignite.configuration.CollectionConfiguration;
 
+import static org.apache.camel.component.ignite.IgniteConstants.SCHEME_SET;
+
 /**
  * Interact with <a href="https://apacheignite.readme.io/docs/queue-and-set">Ignite Set data structures</a>.
  *
  * This endpoint only supports producers.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "ignite-set", title = "Ignite Sets", syntax = "ignite-set:name",
-             category = { Category.CACHE, Category.COMPUTE }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SET, title = "Ignite Sets", syntax = "ignite-set:name",
+             category = { Category.CACHE, Category.COMPUTE }, producerOnly = true, headersClass = IgniteConstants.class)
 public class IgniteSetEndpoint extends AbstractIgniteEndpoint {
 
     @UriPath

[camel] 02/12: CAMEL-17792: Add doc about the message headers of camel-hbase

Posted by nf...@apache.org.
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 00df841a42748c3f0682bd0209695de589568901
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Mar 23 11:50:44 2022 +0100

    CAMEL-17792: Add doc about the message headers of camel-hbase
---
 .../resources/org/apache/camel/component/hbase/hbase.json |  9 +++++++++
 components/camel-hbase/src/main/docs/hbase-component.adoc | 12 +++++++-----
 .../org/apache/camel/component/hbase/HBaseConstants.java  | 15 +++++++++++++--
 .../org/apache/camel/component/hbase/HBaseConsumer.java   |  8 ++++----
 .../org/apache/camel/component/hbase/HBaseEndpoint.java   |  2 +-
 .../org/apache/camel/component/hbase/HBaseProducer.java   |  9 ++++-----
 .../hbase/mapping/CellMappingStrategyFactory.java         | 12 +++++-------
 7 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/components/camel-hbase/src/generated/resources/org/apache/camel/component/hbase/hbase.json b/components/camel-hbase/src/generated/resources/org/apache/camel/component/hbase/hbase.json
index 5b44581..700b561 100644
--- a/components/camel-hbase/src/generated/resources/org/apache/camel/component/hbase/hbase.json
+++ b/components/camel-hbase/src/generated/resources/org/apache/camel/component/hbase/hbase.json
@@ -28,6 +28,15 @@
     "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 [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.hadoop.conf.Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared configuration" }
   },
+  "headers": {
+    "CamelHBaseOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HBase operation to perform" },
+    "CamelHBaseMaxScanResults": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of rows to scan." },
+    "CamelHBaseStartRow": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The row to start scanner at or after" },
+    "CamelHBaseStopRow": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The row to end at (exclusive)" },
+    "CamelMappingStrategy": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The strategy to use for mapping Camel messages to HBase columns.\n\nSupported values:\n\n* header\n* body" },
+    "CamelMappingStrategyClassName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The class name of a custom mapping strategy implementation." },
+    "CamelHBaseMarkedRowId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "byte[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The marked row id" }
+  },
   "properties": {
     "tableName": { "kind": "path", "displayName": "Table Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the table" },
     "cellMappingStrategyFactory": { "kind": "parameter", "displayName": "Cell Mapping Strategy Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.hbase.mapping.CellMappingStrategyFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom CellMappingStrategyFactory that is responsible for mapping cells." },
diff --git a/components/camel-hbase/src/main/docs/hbase-component.adoc b/components/camel-hbase/src/main/docs/hbase-component.adoc
index 6b7b123..1abd115 100644
--- a/components/camel-hbase/src/main/docs/hbase-component.adoc
+++ b/components/camel-hbase/src/main/docs/hbase-component.adoc
@@ -13,7 +13,7 @@
 
 *{component-header}*
 
-This component provides an idemptotent repository, producers and
+This component provides an idempotent repository, producers and
 consumers for http://hbase.apache.org/[Apache HBase].
 
 Maven users will need to add the following dependency to their `pom.xml`
@@ -39,8 +39,8 @@ http://hbase.apache.org[Apache HBase].
 
 == Camel and HBase
 
-When using a datasotre inside a camel route, there is always the
-chalenge of specifying how the camel message will stored to the
+When using a datastore inside a camel route, there is always the
+challenge of specifying how the camel message will store to the
 datastore. In document based stores things are more easy as the message
 body can be directly mapped to a document. In relational databases an
 ORM solution can be used to map properties to columns etc. In column
@@ -88,7 +88,7 @@ client configuration and dependencies]
 
 == HBase Producer
 
-As mentioned above camel provides produers endpoints for HBase. This
+As mentioned above camel provides producers endpoints for HBase. This
 allows you to store, delete, retrieve or query data from HBase using
 your camel routes.
 
@@ -118,7 +118,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Put Operations.
 
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConstants.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConstants.java
index a1ce696..5a902d8 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConstants.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConstants.java
@@ -16,8 +16,11 @@
  */
 package org.apache.camel.component.hbase;
 
+import org.apache.camel.spi.Metadata;
+
 public interface HBaseConstants {
 
+    @Metadata(label = "producer", description = "The HBase operation to perform", javaType = "String")
     String OPERATION = "CamelHBaseOperation";
 
     String PUT = "CamelHBasePut";
@@ -25,9 +28,17 @@ public interface HBaseConstants {
     String SCAN = "CamelHBaseScan";
     String DELETE = "CamelHBaseDelete";
 
+    @Metadata(label = "producer", description = "The maximum number of rows to scan.", javaType = "Integer")
     String HBASE_MAX_SCAN_RESULTS = "CamelHBaseMaxScanResults";
-
+    @Metadata(label = "producer", description = "The row to start scanner at or after", javaType = "String")
     String FROM_ROW = "CamelHBaseStartRow";
-
+    @Metadata(label = "producer", description = "The row to end at (exclusive)", javaType = "String")
     String STOP_ROW = "CamelHBaseStopRow";
+    @Metadata(description = "The strategy to use for mapping Camel messages to HBase columns.\n\nSupported values:\n\n* header\n* body",
+              javaType = "String")
+    String STRATEGY = "CamelMappingStrategy";
+    @Metadata(description = "The class name of a custom mapping strategy implementation.", javaType = "String")
+    String STRATEGY_CLASS_NAME = "CamelMappingStrategyClassName";
+    @Metadata(label = "consumer", description = "The marked row id", javaType = "byte[]")
+    String HBASE_MARKED_ROW_ID = HBaseAttribute.HBASE_MARKED_ROW_ID.asHeader();
 }
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java
index 88b3b64..8ad4978 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java
@@ -97,7 +97,7 @@ public class HBaseConsumer extends ScheduledBatchPollingConsumer {
             int exchangeCount = 0;
             // The next three statements are used just to get a reference to the BodyCellMappingStrategy instance.
             Exchange exchange = new DefaultExchange(endpoint);
-            exchange.getIn().setHeader(CellMappingStrategyFactory.STRATEGY, CellMappingStrategyFactory.BODY);
+            exchange.getIn().setHeader(HBaseConstants.STRATEGY, CellMappingStrategyFactory.BODY);
             CellMappingStrategy mappingStrategy = endpoint.getCellMappingStrategyFactory().getStrategy(exchange.getIn());
             for (Result result = scanner.next();
                  (exchangeCount < maxMessagesPerPoll || maxMessagesPerPoll <= 0) && result != null;
@@ -141,10 +141,10 @@ public class HBaseConsumer extends ScheduledBatchPollingConsumer {
                     data.getRows().add(resultRow);
                     exchange = createExchange(true);
                     // Probably overkill but kept it here for consistency.
-                    exchange.getIn().setHeader(CellMappingStrategyFactory.STRATEGY, CellMappingStrategyFactory.BODY);
+                    exchange.getIn().setHeader(HBaseConstants.STRATEGY, CellMappingStrategyFactory.BODY);
                     mappingStrategy.applyScanResults(exchange.getIn(), data);
                     //Make sure that there is a header containing the marked row ids, so that they can be deleted.
-                    exchange.getIn().setHeader(HBaseAttribute.HBASE_MARKED_ROW_ID.asHeader(), result.getRow());
+                    exchange.getIn().setHeader(HBaseConstants.HBASE_MARKED_ROW_ID, result.getRow());
                     queue.add(exchange);
                     exchangeCount++;
                 }
@@ -184,7 +184,7 @@ public class HBaseConsumer extends ScheduledBatchPollingConsumer {
             }
 
             if (endpoint.isRemove()) {
-                remove((byte[]) exchange.getIn().getHeader(HBaseAttribute.HBASE_MARKED_ROW_ID.asHeader()));
+                remove((byte[]) exchange.getIn().getHeader(HBaseConstants.HBASE_MARKED_ROW_ID));
             }
         }
 
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
index 0db0d73..2576176 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
@@ -43,7 +43,7 @@ import org.apache.hadoop.security.UserGroupInformation;
  * Reading and write from/to an HBase store (Hadoop database).
  */
 @UriEndpoint(firstVersion = "2.10.0", scheme = "hbase", title = "HBase", syntax = "hbase:tableName",
-             category = { Category.BIGDATA, Category.DATABASE, Category.HADOOP })
+             category = { Category.BIGDATA, Category.DATABASE, Category.HADOOP }, headersClass = HBaseConstants.class)
 public class HBaseEndpoint extends DefaultEndpoint {
 
     @UriPath(description = "The name of the table")
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
index 076ee6c..5a7a6bd 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java
@@ -23,7 +23,6 @@ import java.util.Set;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.hbase.filters.ModelAwareFilter;
 import org.apache.camel.component.hbase.mapping.CellMappingStrategy;
-import org.apache.camel.component.hbase.mapping.CellMappingStrategyFactory;
 import org.apache.camel.component.hbase.model.HBaseCell;
 import org.apache.camel.component.hbase.model.HBaseData;
 import org.apache.camel.component.hbase.model.HBaseRow;
@@ -278,13 +277,13 @@ public class HBaseProducer extends DefaultProducer {
                 exchange.getIn().setHeader(HBaseConstants.HBASE_MAX_SCAN_RESULTS, endpoint.getMaxResults());
             }
             if (endpoint.getMappingStrategyName() != null
-                    && exchange.getIn().getHeader(CellMappingStrategyFactory.STRATEGY) == null) {
-                exchange.getIn().setHeader(CellMappingStrategyFactory.STRATEGY, endpoint.getMappingStrategyName());
+                    && exchange.getIn().getHeader(HBaseConstants.STRATEGY) == null) {
+                exchange.getIn().setHeader(HBaseConstants.STRATEGY, endpoint.getMappingStrategyName());
             }
 
             if (endpoint.getMappingStrategyName() != null
-                    && exchange.getIn().getHeader(CellMappingStrategyFactory.STRATEGY_CLASS_NAME) == null) {
-                exchange.getIn().setHeader(CellMappingStrategyFactory.STRATEGY_CLASS_NAME,
+                    && exchange.getIn().getHeader(HBaseConstants.STRATEGY_CLASS_NAME) == null) {
+                exchange.getIn().setHeader(HBaseConstants.STRATEGY_CLASS_NAME,
                         endpoint.getMappingStrategyClassName());
             }
 
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/CellMappingStrategyFactory.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/CellMappingStrategyFactory.java
index 0daa1928..212ce25 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/CellMappingStrategyFactory.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/CellMappingStrategyFactory.java
@@ -20,14 +20,12 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.Message;
+import org.apache.camel.component.hbase.HBaseConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class CellMappingStrategyFactory {
 
-    public static final String STRATEGY = "CamelMappingStrategy";
-    public static final String STRATEGY_CLASS_NAME = "CamelMappingStrategyClassName";
-
     public static final String HEADER = "header";
     public static final String BODY = "body";
 
@@ -43,12 +41,12 @@ public class CellMappingStrategyFactory {
         CellMappingStrategy strategy = null;
 
         //Check if strategy has been explicitly set.
-        if (message.getHeader(STRATEGY) != null) {
-            strategy = DEFAULT_STRATEGIES.get(message.getHeader(STRATEGY, String.class));
+        if (message.getHeader(HBaseConstants.STRATEGY) != null) {
+            strategy = DEFAULT_STRATEGIES.get(message.getHeader(HBaseConstants.STRATEGY, String.class));
         }
 
-        if (strategy == null && message.getHeader(STRATEGY_CLASS_NAME) != null) {
-            strategy = loadStrategyFromClassName(message.getHeader(STRATEGY_CLASS_NAME, String.class));
+        if (strategy == null && message.getHeader(HBaseConstants.STRATEGY_CLASS_NAME) != null) {
+            strategy = loadStrategyFromClassName(message.getHeader(HBaseConstants.STRATEGY_CLASS_NAME, String.class));
         }
 
         if (strategy != null) {

[camel] 06/12: CAMEL-17792: Add doc about the message headers of camel-iec60870

Posted by nf...@apache.org.
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 db74ce33eb994581543d5bc3ac0150825c517d41
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 15:27:45 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-iec60870
---
 .../component/iec60870/client/iec60870-client.json |  6 +++++
 .../component/iec60870/server/iec60870-server.json |  8 +++++++
 .../src/main/docs/iec60870-client-component.adoc   |  3 +++
 .../src/main/docs/iec60870-server-component.adoc   |  4 +++-
 .../apache/camel/component/iec60870/Constants.java | 27 ++++++++++++++++++++++
 .../component/iec60870/client/ClientEndpoint.java  |  6 +++--
 .../component/iec60870/server/ServerConsumer.java  | 13 ++++++-----
 .../component/iec60870/server/ServerEndpoint.java  |  6 +++--
 8 files changed, 62 insertions(+), 11 deletions(-)

diff --git a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
index 07768f0..a4732ba 100644
--- a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
+++ b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/client/iec60870-client.json
@@ -27,6 +27,12 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIec60870Value": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value" },
+    "CamelIec60870Timestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of the value" },
+    "CamelIec60870Quality": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.eclipse.neoscada.protocol.iec60870.asdu.types.QualityInformation", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The quality information of the value" },
+    "CamelIec60870Overflow": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is overflow" }
+  },
   "properties": {
     "uriPath": { "kind": "path", "displayName": "Uri Path", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.iec60870.ObjectAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The object information address" },
     "dataModuleOptions": { "kind": "parameter", "displayName": "Data Module Options", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.eclipse.neoscada.protocol.iec60870.client.data.DataModuleOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.iec60870.client.ClientOptions", "configurationField": "connectionOptions", "description": "Data module options" },
diff --git a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
index a35ebbb..5f2726c 100644
--- a/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
+++ b/components/camel-iec60870/src/generated/resources/org/apache/camel/component/iec60870/server/iec60870-server.json
@@ -27,6 +27,14 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "address": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.apache.camel.component.iec60870.ObjectAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The address as ObjectAddress" },
+    "value": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value" },
+    "informationObjectAddress": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.eclipse.neoscada.protocol.iec60870.asdu.types.InformationObjectAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The address as InformationObjectAddress" },
+    "asduHeader": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.eclipse.neoscada.protocol.iec60870.asdu.ASDUHeader", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ASDU header" },
+    "type": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "byte", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type" },
+    "execute": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is execute" }
+  },
   "properties": {
     "uriPath": { "kind": "path", "displayName": "Uri Path", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.iec60870.ObjectAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The object information address" },
     "dataModuleOptions": { "kind": "parameter", "displayName": "Data Module Options", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.eclipse.neoscada.protocol.iec60870.client.data.DataModuleOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.iec60870.client.ClientOptions", "configurationField": "connectionOptions", "description": "Data module options" },
diff --git a/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc b/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
index 118c018..863ff89 100644
--- a/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
+++ b/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
@@ -71,5 +71,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc b/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
index 8de026c..cb95ee5 100644
--- a/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
+++ b/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
@@ -55,6 +55,8 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
index 65d2b31..63ce3fa 100644
--- a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
+++ b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/Constants.java
@@ -16,15 +16,42 @@
  */
 package org.apache.camel.component.iec60870;
 
+import org.apache.camel.spi.Metadata;
+
 public interface Constants {
+
+    String SCHEME_SERVER = "iec60870-server";
+    String SCHEME_CLIENT = "iec60870-client";
+
     String PARAM_DATA_MODULE_OPTIONS = "dataModuleOptions";
 
     String PARAM_PROTOCOL_OPTIONS = "protocolOptions";
 
     String PARAM_CONNECTION_OPTIONS = "connectionOptions";
 
+    @Metadata(label = "consumer", description = "The value", javaType = "Object", applicableFor = SCHEME_CLIENT)
     String IEC60870_VALUE = "CamelIec60870Value";
+    @Metadata(label = "consumer", description = "The timestamp of the value", javaType = "long", applicableFor = SCHEME_CLIENT)
     String IEC60870_TIMESTAMP = "CamelIec60870Timestamp";
+    @Metadata(label = "consumer", description = "The quality information of the value",
+              javaType = "org.eclipse.neoscada.protocol.iec60870.asdu.types.QualityInformation", applicableFor = SCHEME_CLIENT)
     String IEC60870_QUALITY = "CamelIec60870Quality";
+    @Metadata(label = "consumer", description = "Is overflow", javaType = "boolean", applicableFor = SCHEME_CLIENT)
     String IEC60870_OVERFLOW = "CamelIec60870Overflow";
+    @Metadata(label = "consumer", description = "The address as ObjectAddress",
+              javaType = "org.apache.camel.component.iec60870.ObjectAddress", applicableFor = SCHEME_SERVER)
+    String ADDRESS = "address";
+    @Metadata(label = "consumer", description = "The value", javaType = "Object", applicableFor = SCHEME_SERVER)
+    String VALUE = "value";
+    @Metadata(label = "consumer", description = "The address as InformationObjectAddress",
+              javaType = "org.eclipse.neoscada.protocol.iec60870.asdu.types.InformationObjectAddress",
+              applicableFor = SCHEME_SERVER)
+    String INFORMATION_OBJECT_ADDRESS = "informationObjectAddress";
+    @Metadata(label = "consumer", description = "The ASDU header",
+              javaType = "org.eclipse.neoscada.protocol.iec60870.asdu.ASDUHeader", applicableFor = SCHEME_SERVER)
+    String ASDU_HEADER = "asduHeader";
+    @Metadata(label = "consumer", description = "The type", javaType = "byte", applicableFor = SCHEME_SERVER)
+    String TYPE = "type";
+    @Metadata(label = "consumer", description = "Is execute", javaType = "boolean", applicableFor = SCHEME_SERVER)
+    String EXECUTE = "execute";
 }
diff --git a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
index c5f23d3..d4092a4 100644
--- a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
+++ b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/client/ClientEndpoint.java
@@ -21,17 +21,19 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.iec60870.AbstractIecEndpoint;
+import org.apache.camel.component.iec60870.Constants;
 import org.apache.camel.component.iec60870.ObjectAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.support.DefaultComponent;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.camel.component.iec60870.Constants.SCHEME_CLIENT;
 
 /**
  * IEC 60870 supervisory control and data acquisition (SCADA) client using NeoSCADA implementation.
  */
-@UriEndpoint(firstVersion = "2.20.0", scheme = "iec60870-client", syntax = "iec60870-client:uriPath",
-             title = "IEC 60870 Client", category = { Category.IOT })
+@UriEndpoint(firstVersion = "2.20.0", scheme = SCHEME_CLIENT, syntax = "iec60870-client:uriPath",
+             title = "IEC 60870 Client", category = { Category.IOT }, headersClass = Constants.class)
 public class ClientEndpoint extends AbstractIecEndpoint<ClientConnectionMultiplexor> {
 
     public ClientEndpoint(final String uri, final DefaultComponent component, final ClientConnectionMultiplexor connection,
diff --git a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
index 2444361..78cbf28 100644
--- a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
+++ b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerConsumer.java
@@ -22,6 +22,7 @@ import java.util.concurrent.CompletionStage;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.component.iec60870.Constants;
 import org.apache.camel.component.iec60870.ObjectAddress;
 import org.apache.camel.support.DefaultConsumer;
 import org.apache.camel.support.DefaultMessage;
@@ -98,12 +99,12 @@ public class ServerConsumer extends DefaultConsumer {
 
         message.setBody(request);
 
-        message.setHeader("address", ObjectAddress.valueOf(request.getHeader().getAsduAddress(), request.getAddress()));
-        message.setHeader("value", request.getValue());
-        message.setHeader("informationObjectAddress", request.getAddress());
-        message.setHeader("asduHeader", request.getHeader());
-        message.setHeader("type", request.getType());
-        message.setHeader("execute", request.isExecute());
+        message.setHeader(Constants.ADDRESS, ObjectAddress.valueOf(request.getHeader().getAsduAddress(), request.getAddress()));
+        message.setHeader(Constants.VALUE, request.getValue());
+        message.setHeader(Constants.INFORMATION_OBJECT_ADDRESS, request.getAddress());
+        message.setHeader(Constants.ASDU_HEADER, request.getHeader());
+        message.setHeader(Constants.TYPE, request.getType());
+        message.setHeader(Constants.EXECUTE, request.isExecute());
 
         return message;
     }
diff --git a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
index 063ca8f..f453c87 100644
--- a/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
+++ b/components/camel-iec60870/src/main/java/org/apache/camel/component/iec60870/server/ServerEndpoint.java
@@ -21,18 +21,20 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.iec60870.AbstractIecEndpoint;
+import org.apache.camel.component.iec60870.Constants;
 import org.apache.camel.component.iec60870.ObjectAddress;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.DefaultComponent;
 
 import static java.util.Objects.requireNonNull;
+import static org.apache.camel.component.iec60870.Constants.SCHEME_SERVER;
 
 /**
  * IEC 60870 supervisory control and data acquisition (SCADA) server using NeoSCADA implementation.
  */
-@UriEndpoint(firstVersion = "2.20.0", scheme = "iec60870-server", syntax = "iec60870-server:uriPath",
-             title = "IEC 60870 Server", category = { Category.IOT })
+@UriEndpoint(firstVersion = "2.20.0", scheme = SCHEME_SERVER, syntax = "iec60870-server:uriPath",
+             title = "IEC 60870 Server", category = { Category.IOT }, headersClass = Constants.class)
 public class ServerEndpoint extends AbstractIecEndpoint<ServerConnectionMultiplexor> {
 
     /**

[camel] 03/12: CAMEL-17792: Add doc about the message headers of camel-hdfs

Posted by nf...@apache.org.
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 e9b7397df92b6ee84f29feb00aeaa8984bde204e
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Mar 23 12:07:48 2022 +0100

    CAMEL-17792: Add doc about the message headers of camel-hdfs
---
 .../org/apache/camel/component/hdfs/hdfs.json        |  8 ++++++++
 .../camel-hdfs/src/main/docs/hdfs-component.adoc     | 20 +++-----------------
 .../apache/camel/component/hdfs/HdfsConstants.java   | 18 +++++++++++++++++-
 .../apache/camel/component/hdfs/HdfsConsumer.java    | 10 +++++-----
 .../apache/camel/component/hdfs/HdfsEndpoint.java    |  2 +-
 .../apache/camel/component/hdfs/HdfsProducer.java    |  6 +++---
 6 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/components/camel-hdfs/src/generated/resources/org/apache/camel/component/hdfs/hdfs.json b/components/camel-hdfs/src/generated/resources/org/apache/camel/component/hdfs/hdfs.json
index ec213ee..398f723 100644
--- a/components/camel-hdfs/src/generated/resources/org/apache/camel/component/hdfs/hdfs.json
+++ b/components/camel-hdfs/src/generated/resources/org/apache/camel/component/hdfs/hdfs.json
@@ -28,6 +28,14 @@
     "jAASConfiguration": { "kind": "property", "displayName": "JAASConfiguration", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.security.auth.login.Configuration", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use the given configuration for security with JAAS." },
     "kerberosConfigFile": { "kind": "property", "displayName": "Kerberos Config File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use kerberos authentication, set the value of the 'java.security.krb5.conf' environment variable to an existing file. If the environment variable is already set, warn if different than the speci [...]
   },
+  "headers": {
+    "CamelHdfsClose": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates to close the stream" },
+    "CamelFileName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) Specifies the name of the file to write (relative to the\nendpoint path). The name can be a `String` or an\nExpression object. Only relevant when not using a\nsplit strategy. (consumer) Specifies the name of the file to read" },
+    "CamelFileNameConsumed": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the file consumed" },
+    "CamelFileAbsolutePath": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The absolute path of the file" },
+    "KEY": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HDFS key" },
+    "CamelFileLength": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The size of the file" }
+  },
   "properties": {
     "hostName": { "kind": "path", "displayName": "Host Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.hdfs.HdfsConfiguration", "configurationField": "config", "description": "HDFS host to use" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8020, "configurationClass": "org.apache.camel.component.hdfs.HdfsConfiguration", "configurationField": "config", "description": "HDFS port to use" },
diff --git a/components/camel-hdfs/src/main/docs/hdfs-component.adoc b/components/camel-hdfs/src/main/docs/hdfs-component.adoc
index b98164a..0b13918 100644
--- a/components/camel-hdfs/src/main/docs/hdfs-component.adoc
+++ b/components/camel-hdfs/src/main/docs/hdfs-component.adoc
@@ -65,7 +65,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == KeyType and ValueType
 
@@ -122,22 +124,6 @@ than 1 second or if more than 5 bytes have been written. So, running
 `hadoop fs -ls /tmp/simple-file` you'll see that multiple files have
 been created.
 
-== Message Headers
-
-The following headers are supported by this component:
-
-=== Producer only
-
-[width="100%",cols="10%,90%",options="header",]
-|=======================================================================
-|Header |Description
-
-|`CamelFileName` |Specifies the name of the file to write (relative to the
-endpoint path). The name can be a `String` or an
-Expression object. Only relevant when not using a
-split strategy.
-|=======================================================================
-
 == Controlling to close file stream
 
 When using the xref:hdfs-component.adoc[HDFS] producer *without* a split
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConstants.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConstants.java
index 3572ffc..a2a4e30 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConstants.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConstants.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.hdfs;
 
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.Metadata;
 import org.apache.hadoop.io.SequenceFile;
 
 public final class HdfsConstants {
@@ -43,10 +45,24 @@ public final class HdfsConstants {
     public static final String DEFAULT_PATTERN = "*";
 
     public static final int DEFAULT_CHECK_IDLE_INTERVAL = 500;
-
+    @Metadata(label = "producer", description = "Indicates to close the stream", javaType = "Boolean")
     public static final String HDFS_CLOSE = "CamelHdfsClose";
 
     public static final int DEFAULT_MAX_MESSAGES_PER_POLL = 100;
+    @Metadata(description = "(producer) Specifies the name of the file to write (relative to the\n" +
+                            "endpoint path). The name can be a `String` or an\n" +
+                            "Expression object. Only relevant when not using a\n" +
+                            "split strategy. (consumer) Specifies the name of the file to read",
+              javaType = "String")
+    public static final String FILE_NAME = Exchange.FILE_NAME;
+    @Metadata(label = "consumer", description = "The name of the file consumed", javaType = "String")
+    public static final String FILE_NAME_CONSUMED = Exchange.FILE_NAME_CONSUMED;
+    @Metadata(label = "consumer", description = "The absolute path of the file", javaType = "String")
+    public static final String FILE_ABSOLUTE_PATH = "CamelFileAbsolutePath";
+    @Metadata(description = "The HDFS key", javaType = "Object")
+    public static final String KEY = HdfsHeader.KEY.name();
+    @Metadata(label = "consumer", description = "The size of the file", javaType = "Long")
+    public static final String FILE_LENGTH = Exchange.FILE_LENGTH;
 
     private HdfsConstants() {
     }
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConsumer.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConsumer.java
index 1e38fc6..5c909c5 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConsumer.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConsumer.java
@@ -184,15 +184,15 @@ public final class HdfsConsumer extends ScheduledPollConsumer {
         try {
             Message message = exchange.getIn();
             String fileName = StringUtils.substringAfterLast(hdfsFile.getActualPath(), "/");
-            message.setHeader(Exchange.FILE_NAME, fileName);
-            message.setHeader(Exchange.FILE_NAME_CONSUMED, fileName);
-            message.setHeader("CamelFileAbsolutePath", hdfsFile.getActualPath());
+            message.setHeader(HdfsConstants.FILE_NAME, fileName);
+            message.setHeader(HdfsConstants.FILE_NAME_CONSUMED, fileName);
+            message.setHeader(HdfsConstants.FILE_ABSOLUTE_PATH, hdfsFile.getActualPath());
             if (key.getValue() != null) {
-                message.setHeader(HdfsHeader.KEY.name(), key.getValue());
+                message.setHeader(HdfsConstants.KEY, key.getValue());
             }
 
             if (hdfsFile.getNumOfReadBytes() >= 0) {
-                message.setHeader(Exchange.FILE_LENGTH, hdfsFile.getNumOfReadBytes());
+                message.setHeader(HdfsConstants.FILE_LENGTH, hdfsFile.getNumOfReadBytes());
             }
 
             message.setBody(value.getValue());
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
index 0a84783..f99614d4 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
@@ -31,7 +31,7 @@ import org.apache.camel.support.ScheduledPollEndpoint;
  * Read and write from/to an HDFS filesystem using Hadoop 2.x.
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "hdfs", title = "HDFS", syntax = "hdfs:hostName:port/path",
-             category = { Category.BIGDATA, Category.HADOOP, Category.FILE })
+             category = { Category.BIGDATA, Category.HADOOP, Category.FILE }, headersClass = HdfsConstants.class)
 public class HdfsEndpoint extends ScheduledPollEndpoint {
 
     @UriParam
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsProducer.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsProducer.java
index f829034..8439075 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsProducer.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsProducer.java
@@ -193,11 +193,11 @@ public class HdfsProducer extends DefaultProducer {
 
     void doProcess(Exchange exchange) throws IOException {
         Object body = exchange.getIn().getBody();
-        Object key = exchange.getIn().getHeader(HdfsHeader.KEY.name());
+        Object key = exchange.getIn().getHeader(HdfsConstants.KEY);
 
         HdfsInfoFactory hdfsInfoFactory = new HdfsInfoFactory(config);
         // if an explicit filename is specified, close any existing stream and append the filename to the hdfsPath
-        if (exchange.getIn().getHeader(Exchange.FILE_NAME) != null) {
+        if (exchange.getIn().getHeader(HdfsConstants.FILE_NAME) != null) {
             if (oStream != null) {
                 IOHelper.close(oStream, "output stream", LOG);
             }
@@ -250,7 +250,7 @@ public class HdfsProducer extends DefaultProducer {
     private StringBuilder getHdfsPathUsingFileNameHeader(Exchange exchange) {
         StringBuilder actualPath = new StringBuilder(hdfsPath);
         String fileName = "";
-        Object value = exchange.getIn().getHeader(Exchange.FILE_NAME);
+        Object value = exchange.getIn().getHeader(HdfsConstants.FILE_NAME);
         if (value instanceof String) {
             fileName = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, value);
         } else if (value instanceof Expression) {

[camel] 12/12: CAMEL-17792: Add doc about the message headers of camel-ironmq

Posted by nf...@apache.org.
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 92ee368f6bab1d07f4c166358c2b04a24f8c0e0e
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 18:56:18 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-ironmq
---
 .../org/apache/camel/component/ironmq/ironmq.json  |  6 +++++
 .../src/main/docs/ironmq-component.adoc            | 26 ++++------------------
 .../camel/component/ironmq/IronMQConstants.java    | 11 +++++++++
 .../camel/component/ironmq/IronMQEndpoint.java     |  2 +-
 4 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/components/camel-ironmq/src/generated/resources/org/apache/camel/component/ironmq/ironmq.json b/components/camel-ironmq/src/generated/resources/org/apache/camel/component/ironmq/ironmq.json
index bf2e60b..9d4385b 100644
--- a/components/camel-ironmq/src/generated/resources/org/apache/camel/component/ironmq/ironmq.json
+++ b/components/camel-ironmq/src/generated/resources/org/apache/camel/component/ironmq/ironmq.json
@@ -26,6 +26,12 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "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": {
+    "CamelIronMQMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String or io.iron.ironmq.Ids", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "(producer) The id of the IronMQ message as a String when sending a single message, or a Ids object when sending a array of strings. (consumer) The id of the message." },
+    "CamelIronMQReservationId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The reservation id of the message." },
+    "CamelIronMQReservedCount": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of times this message has been reserved." },
+    "CamelIronMQOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If value set to 'CamelIronMQClearQueue' the queue is cleared of unconsumed  messages." }
+  },
   "properties": {
     "queueName": { "kind": "path", "displayName": "Queue Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "The name of the IronMQ queue" },
     "client": { "kind": "parameter", "displayName": "Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.iron.ironmq.Client", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "Reference to a io.iron.ironmq.Client in the Registry." },
diff --git a/components/camel-ironmq/src/main/docs/ironmq-component.adoc b/components/camel-ironmq/src/main/docs/ironmq-component.adoc
index 5447d6b..bbf3b80 100644
--- a/components/camel-ironmq/src/main/docs/ironmq-component.adoc
+++ b/components/camel-ironmq/src/main/docs/ironmq-component.adoc
@@ -54,31 +54,13 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Message Body
 
-Should be either a String or a array of Strings. In the latter case the batch of strings will be send to IronMQ as one request, creating one message pr. element in the array.
-
-== Producer message headers
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type | Description
-|CamelIronMQOperation |String|If value set to 'CamelIronMQClearQueue' the queue is cleared of unconsumed  messages.
-|CamelIronMQMessageId |String or io.iron.ironmq.Ids|The id of the IronMQ message as a String when sending a single message, or a Ids object when sending a array of strings.
-|=======================================================================
-
-== Consumer message headers
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type | Description
-|CamelIronMQMessageId    |String|The id of the message.
-|CamelIronMQReservationId|String|The reservation id of the message.
-|CamelIronMQReservedCount|String|The number of times this message has been reserved.
-|=======================================================================
-
+Should be either a String or a array of Strings. In the latter case the batch of strings will be sent to IronMQ as one request, creating one message pr. element in the array.
 
 == Consumer example
 
diff --git a/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQConstants.java b/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQConstants.java
index 5c60e6c..8baa1a2 100644
--- a/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQConstants.java
+++ b/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQConstants.java
@@ -16,11 +16,22 @@
  */
 package org.apache.camel.component.ironmq;
 
+import org.apache.camel.spi.Metadata;
+
 public interface IronMQConstants {
 
+    @Metadata(description = "(producer) The id of the IronMQ message as a String when sending a single message, or a Ids object when sending a array of strings."
+                            +
+                            " (consumer) The id of the message.",
+              javaType = "String or io.iron.ironmq.Ids")
     String MESSAGE_ID = "CamelIronMQMessageId";
+    @Metadata(label = "consumer", description = "The reservation id of the message.", javaType = "String")
     String MESSAGE_RESERVATION_ID = "CamelIronMQReservationId";
+    @Metadata(label = "consumer", description = "The number of times this message has been reserved.", javaType = "long")
     String MESSAGE_RESERVED_COUNT = "CamelIronMQReservedCount";
+    @Metadata(label = "producer",
+              description = "If value set to 'CamelIronMQClearQueue' the queue is cleared of unconsumed  messages.",
+              javaType = "String")
     String OPERATION = "CamelIronMQOperation";
     String CLEARQUEUE = "CamelIronMQClearQueue";
 
diff --git a/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQEndpoint.java b/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQEndpoint.java
index 96a140c2..af4367b 100644
--- a/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQEndpoint.java
+++ b/components/camel-ironmq/src/main/java/org/apache/camel/component/ironmq/IronMQEndpoint.java
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
  * queue as a service.
  */
 @UriEndpoint(firstVersion = "2.17.0", scheme = "ironmq", syntax = "ironmq:queueName", title = "IronMQ",
-             category = { Category.CLOUD, Category.MESSAGING })
+             category = { Category.CLOUD, Category.MESSAGING }, headersClass = IronMQConstants.class)
 public class IronMQEndpoint extends ScheduledPollEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(IronMQEndpoint.class);

[camel] 08/12: CAMEL-17792: Add doc about the message headers of camel-infinispan

Posted by nf...@apache.org.
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 8cb5eb48bd7084ebb3198f7958893cad230b4053
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 17:46:18 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-infinispan
---
 .../component/infinispan/InfinispanConstants.java  | 52 ++++++++++++++++++++++
 .../infinispan/embedded/infinispan-embedded.json   | 24 ++++++++++
 .../main/docs/infinispan-embedded-component.adoc   | 23 ++--------
 .../embedded/InfinispanEmbeddedEndpoint.java       |  7 ++-
 .../component/infinispan/remote/infinispan.json    | 20 +++++++++
 .../src/main/docs/infinispan-component.adoc        | 24 ++--------
 .../remote/InfinispanRemoteEndpoint.java           |  7 ++-
 7 files changed, 113 insertions(+), 44 deletions(-)

diff --git a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
index b92d0f2..0b514c5 100644
--- a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
+++ b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanConstants.java
@@ -16,32 +16,84 @@
  */
 package org.apache.camel.component.infinispan;
 
+import org.apache.camel.spi.Metadata;
+
 public interface InfinispanConstants {
 
+    String SCHEME_INFINISPAN = "infinispan";
+    String SCHEME_EMBEDDED = "infinispan-embedded";
+
     String CACHE_MANAGER_CURRENT = "current";
 
+    @Metadata(label = "consumer", description = "The type of the received event.", javaType = "String")
     String EVENT_TYPE = "CamelInfinispanEventType";
+    @Metadata(label = "consumer",
+              description = "true if the notification is before the event has occurred, false if after the event has occurred.",
+              javaType = "boolean", applicableFor = SCHEME_EMBEDDED)
     String IS_PRE = "CamelInfinispanIsPre";
+    @Metadata(description = "The cache participating in the operation or event.", javaType = "String")
     String CACHE_NAME = "CamelInfinispanCacheName";
+    @Metadata(description = "The key to perform the operation to or the key generating the event.", javaType = "Object")
     String KEY = "CamelInfinispanKey";
+    @Metadata(label = "producer", description = "The value to use for the operation.", javaType = "Object")
     String VALUE = "CamelInfinispanValue";
+    @Metadata(label = "producer", description = "The default value to use for a getOrDefault.", javaType = "Object")
     String DEFAULT_VALUE = "CamelInfinispanDefaultValue";
+    @Metadata(label = "producer", description = "The old value to use for a replace.", javaType = "Object")
     String OLD_VALUE = "CamelInfinispanOldValue";
+    @Metadata(label = "producer", description = "A Map to use in case of `CamelInfinispanOperationPutAll` operation",
+              javaType = "Map")
     String MAP = "CamelInfinispanMap";
+    @Metadata(label = "producer", description = "The operation to perform.",
+              javaType = "org.apache.camel.component.infinispan.InfinispanOperation")
     String OPERATION = "CamelInfinispanOperation";
+    @Metadata(label = "producer", description = "The name of the header whose value is the result", javaType = "String")
     String RESULT = "CamelInfinispanOperationResult";
+    @Metadata(label = "producer", description = "Store the operation result in a header instead of the message body",
+              javaType = "String")
     String RESULT_HEADER = "CamelInfinispanOperationResultHeader";
+    @Metadata(label = "producer",
+              description = "The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.",
+              javaType = "long")
     String LIFESPAN_TIME = "CamelInfinispanLifespanTime";
+    @Metadata(label = "producer", description = "The Time Unit of an entry Lifespan Time.",
+              javaType = "java.util.concurrent.TimeUnit")
     String LIFESPAN_TIME_UNIT = "CamelInfinispanTimeUnit";
+    @Metadata(label = "producer",
+              description = "The maximum amount of time an entry is allowed to be idle for before it is considered as expired.",
+              javaType = "long")
     String MAX_IDLE_TIME = "CamelInfinispanMaxIdleTime";
+    @Metadata(label = "producer", description = "The Time Unit of an entry Max Idle Time.",
+              javaType = "java.util.concurrent.TimeUnit")
     String MAX_IDLE_TIME_UNIT = "CamelInfinispanMaxIdleTimeUnit";
+    @Metadata(label = "consumer",
+              description = "Signals that a write operation's return value will be ignored, so reading the existing value from a store or from a remote node is not necessary.",
+              javaType = "boolean", defaultValue = "false", applicableFor = SCHEME_EMBEDDED)
     String IGNORE_RETURN_VALUES = "CamelInfinispanIgnoreReturnValues";
+    @Metadata(label = "consumer", description = "The event data.", javaType = "Object")
     String EVENT_DATA = "CamelInfinispanEventData";
+    @Metadata(label = "producer",
+              description = "The QueryBuilder to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one",
+              javaType = "org.apache.camel.component.infinispan.InfinispanQueryBuilder")
     String QUERY_BUILDER = "CamelInfinispanQueryBuilder";
+    @Metadata(label = "consumer", description = "Provides access to the version of the created cache entry.", javaType = "long",
+              applicableFor = SCHEME_INFINISPAN)
     String ENTRY_VERSION = "CamelInfinispanEntryVersion";
+    @Metadata(label = "consumer",
+              description = "This will be true if the write command that caused this had to be retried again due to a topology change.",
+              javaType = "boolean")
     String COMMAND_RETRIED = "CamelInfinispanCommandRetried";
+    @Metadata(label = "consumer",
+              description = "Indicates whether the cache entry modification event is the result of the cache entry being created.",
+              javaType = "boolean", applicableFor = SCHEME_EMBEDDED)
     String ENTRY_CREATED = "CamelInfinispanEntryCreated";
+    @Metadata(label = "consumer",
+              description = "true if the call originated on the local cache instance; false if originated from a remote one.",
+              javaType = "boolean", applicableFor = SCHEME_EMBEDDED)
     String ORIGIN_LOCAL = "CamelInfinispanOriginLocal";
+    @Metadata(label = "consumer",
+              description = "True if this event is generated from an existing entry as the listener has Listener.",
+              javaType = "boolean", applicableFor = SCHEME_EMBEDDED)
     String CURRENT_STATE = "CamelInfinispanCurrentState";
 
     String CACHE_ENTRY_JOINING = "CacheEntryJoining";
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json
index 939dcf6..41938f0 100644
--- a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/org/apache/camel/component/infinispan/embedded/infinispan-embedded.json
@@ -43,6 +43,30 @@
     "remappingFunction": { "kind": "property", "displayName": "Remapping Function", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.function.BiFunction", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Set a specific remappingFunction to use in a compute operation." },
     "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Store the operation result in a header instead of the message body. By default, resultHead [...]
   },
+  "headers": {
+    "CamelInfinispanEventType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of the received event." },
+    "CamelInfinispanIsPre": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "true if the notification is before the event has occurred, false if after the event has occurred." },
+    "CamelInfinispanCacheName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cache participating in the operation or event." },
+    "CamelInfinispanKey": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key to perform the operation to or the key generating the event." },
+    "CamelInfinispanValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value to use for the operation." },
+    "CamelInfinispanDefaultValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The default value to use for a getOrDefault." },
+    "CamelInfinispanOldValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The old value to use for a replace." },
+    "CamelInfinispanMap": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A Map to use in case of `CamelInfinispanOperationPutAll` operation" },
+    "CamelInfinispanOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.infinispan.InfinispanOperation", "enum": [ "PUT", "PUTASYNC", "PUTALL", "PUTALLASYNC", "PUTIFABSENT", "PUTIFABSENTASYNC", "GET", "GETORDEFAULT", "CONTAINSKEY", "CONTAINSVALUE", "REMOVE", "REMOVEASYNC", "REPLACE", "REPLACEASYNC", "SIZE", "CLEAR", "CLEARASYNC", "QUERY", "STATS", "COMPUTE", "COMPUTEASYNC" ], "deprecated": [...]
+    "CamelInfinispanOperationResult": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the header whose value is the result" },
+    "CamelInfinispanOperationResultHeader": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Store the operation result in a header instead of the message body" },
+    "CamelInfinispanLifespanTime": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Lifespan time of a value inside the cache. Negative values are interpreted as infinity." },
+    "CamelInfinispanTimeUnit": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Time Unit of an entry Lifespan Time." },
+    "CamelInfinispanMaxIdleTime": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum amount of time an entry is allowed to be idle for before it is considered as expired." },
+    "CamelInfinispanMaxIdleTimeUnit": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Time Unit of an entry Max Idle Time." },
+    "CamelInfinispanIgnoreReturnValues": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "Signals that a write operation's return value will be ignored, so reading the existing value from a store or from a remote node is not necessary." },
+    "CamelInfinispanEventData": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event data." },
+    "CamelInfinispanQueryBuilder": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.infinispan.InfinispanQueryBuilder", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The QueryBuilder to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one" },
+    "CamelInfinispanCommandRetried": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This will be true if the write command that caused this had to be retried again due to a topology change." },
+    "CamelInfinispanEntryCreated": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates whether the cache entry modification event is the result of the cache entry being created." },
+    "CamelInfinispanOriginLocal": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "true if the call originated on the local cache instance; false if originated from a remote one." },
+    "CamelInfinispanCurrentState": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "True if this event is generated from an existing entry as the listener has Listener." }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache to use. Use current to use the existing cache name from the currently configured cached manager. Or use default for the default cache manager name." },
     "queryBuilder": { "kind": "parameter", "displayName": "Query Builder", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.infinispan.InfinispanQueryBuilder", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration", "configurationField": "configuration", "description": "Specifies the query builder." },
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc b/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc
index 13aa946..55e3aad 100644
--- a/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/main/docs/infinispan-embedded-component.adoc
@@ -64,6 +64,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 
 == Camel Operations
@@ -220,26 +223,6 @@ This section lists all available operations, along with their header information
 Write methods like put(key, value) and remove(key) do not return the previous value by default.
 ====
 
-== Message Headers
-
-[width="100%",cols="10%,10%,10%,10%,60%",options="header",]
-|=======================================================================
-|Name |Default Value |Type |Context |Description
-|CamelInfinispanCacheName |`null` |String |Shared |The cache participating in the operation or event.
-|CamelInfinispanOperation |`PUT` |InfinispanOperation |Producer |The operation to perform.
-|CamelInfinispanMap |`null` |Map |Producer |A Map to use in case of CamelInfinispanOperationPutAll operation
-|CamelInfinispanKey |`null` |Object |Shared |The key to perform the operation to or the key generating the event.
-|CamelInfinispanValue |`null` |Object |Producer |The value to use for the operation.
-|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event.
-|CamelInfinispanLifespanTime |`null` |long |Producer |The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.
-|CamelInfinispanTimeUnit |`null` |String |Producer |The Time Unit of an entry Lifespan Time.
-|CamelInfinispanMaxIdleTime |`null` |long |Producer |The maximum amount of time an entry is allowed to be idle for before it is considered as expired.
-|CamelInfinispanMaxIdleTimeUnit |`null` |String |Producer |The Time Unit of an entry Max Idle Time.
-|CamelInfinispanQueryBuilder |null |InfinispanQueryBuilder |Producer |The QueryBuilde to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one
-|CamelInfinispanOperationResultHeader |null |String |Producer |Store the operation result in a header instead of the message body
-|=======================================================================
-
-
 == Examples
 
 * Put a key/value into a named cache:
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedEndpoint.java b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedEndpoint.java
index 107ee31..b16aee4 100644
--- a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedEndpoint.java
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedEndpoint.java
@@ -21,6 +21,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.infinispan.InfinispanComponent;
+import org.apache.camel.component.infinispan.InfinispanConstants;
 import org.apache.camel.component.infinispan.InfinispanEndpoint;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
@@ -28,12 +29,14 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.service.ServiceHelper;
 
+import static org.apache.camel.component.infinispan.InfinispanConstants.SCHEME_EMBEDDED;
+
 /**
  * Read and write from/to Infinispan distributed key/value store and data grid.
  */
-@UriEndpoint(firstVersion = "2.13.0", scheme = "infinispan-embedded", title = "Infinispan Embedded",
+@UriEndpoint(firstVersion = "2.13.0", scheme = SCHEME_EMBEDDED, title = "Infinispan Embedded",
              syntax = "infinispan-embedded:cacheName",
-             category = { Category.CACHE, Category.DATAGRID, Category.CLUSTERING })
+             category = { Category.CACHE, Category.DATAGRID, Category.CLUSTERING }, headersClass = InfinispanConstants.class)
 public class InfinispanEmbeddedEndpoint extends InfinispanEndpoint {
 
     @UriPath(description = "The name of the cache to use. Use current to use the existing cache name from the currently configured cached manager. Or use default for the default cache manager name.")
diff --git a/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json b/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json
index a9dca89..13f7683 100644
--- a/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json
+++ b/components/camel-infinispan/camel-infinispan/src/generated/resources/org/apache/camel/component/infinispan/remote/infinispan.json
@@ -49,6 +49,26 @@
     "remappingFunction": { "kind": "property", "displayName": "Remapping Function", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.function.BiFunction", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Set a specific remappingFunction to use in a compute operation." },
     "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Store the operation result in a header instead of the message body. By default, resultHeader = [...]
   },
+  "headers": {
+    "CamelInfinispanEventType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of the received event." },
+    "CamelInfinispanCacheName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cache participating in the operation or event." },
+    "CamelInfinispanKey": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The key to perform the operation to or the key generating the event." },
+    "CamelInfinispanValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value to use for the operation." },
+    "CamelInfinispanDefaultValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The default value to use for a getOrDefault." },
+    "CamelInfinispanOldValue": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The old value to use for a replace." },
+    "CamelInfinispanMap": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A Map to use in case of `CamelInfinispanOperationPutAll` operation" },
+    "CamelInfinispanOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.infinispan.InfinispanOperation", "enum": [ "PUT", "PUTASYNC", "PUTALL", "PUTALLASYNC", "PUTIFABSENT", "PUTIFABSENTASYNC", "GET", "GETORDEFAULT", "CONTAINSKEY", "CONTAINSVALUE", "REMOVE", "REMOVEASYNC", "REPLACE", "REPLACEASYNC", "SIZE", "CLEAR", "CLEARASYNC", "QUERY", "STATS", "COMPUTE", "COMPUTEASYNC" ], "deprecated": [...]
+    "CamelInfinispanOperationResult": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the header whose value is the result" },
+    "CamelInfinispanOperationResultHeader": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Store the operation result in a header instead of the message body" },
+    "CamelInfinispanLifespanTime": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Lifespan time of a value inside the cache. Negative values are interpreted as infinity." },
+    "CamelInfinispanTimeUnit": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Time Unit of an entry Lifespan Time." },
+    "CamelInfinispanMaxIdleTime": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum amount of time an entry is allowed to be idle for before it is considered as expired." },
+    "CamelInfinispanMaxIdleTimeUnit": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Time Unit of an entry Max Idle Time." },
+    "CamelInfinispanEventData": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event data." },
+    "CamelInfinispanQueryBuilder": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.infinispan.InfinispanQueryBuilder", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The QueryBuilder to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one" },
+    "CamelInfinispanEntryVersion": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Provides access to the version of the created cache entry." },
+    "CamelInfinispanCommandRetried": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This will be true if the write command that caused this had to be retried again due to a topology change." }
+  },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache to use. Use current to use the existing cache name from the currently configured cached manager. Or use default for the default cache manager name." },
     "hosts": { "kind": "parameter", "displayName": "Hosts", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration", "configurationField": "configuration", "description": "Specifies the host of the cache on Infinispan instance" },
diff --git a/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc b/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
index e7f3980..1fb127c 100644
--- a/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
+++ b/components/camel-infinispan/camel-infinispan/src/main/docs/infinispan-component.adoc
@@ -50,6 +50,10 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
+
 == Camel Operations
 This section lists all available operations, along with their header information.
 
@@ -204,26 +208,6 @@ This section lists all available operations, along with their header information
 Write methods like put(key, value) and remove(key) do not return the previous value by default.
 ====
 
-== Message Headers
-
-[width="100%",cols="10%,10%,10%,10%,60%",options="header",]
-|=======================================================================
-|Name |Default Value |Type |Context |Description
-|CamelInfinispanCacheName |`null` |String |Shared |The cache participating in the operation or event.
-|CamelInfinispanOperation |`PUT` |InfinispanOperation |Producer |The operation to perform.
-|CamelInfinispanMap |`null` |Map |Producer |A Map to use in case of CamelInfinispanOperationPutAll operation
-|CamelInfinispanKey |`null` |Object |Shared |The key to perform the operation to or the key generating the event.
-|CamelInfinispanValue |`null` |Object |Producer |The value to use for the operation.
-|CamelInfinispanEventType |`null` |String |Consumer |The type of the received event. 
-|CamelInfinispanLifespanTime |`null` |long |Producer |The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.
-|CamelInfinispanTimeUnit |`null` |String |Producer |The Time Unit of an entry Lifespan Time.
-|CamelInfinispanMaxIdleTime |`null` |long |Producer |The maximum amount of time an entry is allowed to be idle for before it is considered as expired.
-|CamelInfinispanMaxIdleTimeUnit |`null` |String |Producer |The Time Unit of an entry Max Idle Time.
-|CamelInfinispanQueryBuilder |null |InfinispanQueryBuilder |Producer |The QueryBuilde to use for QUERY command, if not present the command defaults to InifinispanConfiguration's one
-|CamelInfinispanOperationResultHeader |null |String |Producer |Store the operation result in a header instead of the message body
-|=======================================================================
-
-
 == Examples
 
 * Put a key/value into a named cache:
diff --git a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEndpoint.java b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEndpoint.java
index 9f360cc..c4f079a 100644
--- a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEndpoint.java
+++ b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEndpoint.java
@@ -21,6 +21,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.infinispan.InfinispanComponent;
+import org.apache.camel.component.infinispan.InfinispanConstants;
 import org.apache.camel.component.infinispan.InfinispanEndpoint;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
@@ -28,11 +29,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.service.ServiceHelper;
 
+import static org.apache.camel.component.infinispan.InfinispanConstants.SCHEME_INFINISPAN;
+
 /**
  * Read and write from/to Infinispan distributed key/value store and data grid.
  */
-@UriEndpoint(firstVersion = "2.13.0", scheme = "infinispan", title = "Infinispan", syntax = "infinispan:cacheName",
-             category = { Category.CACHE, Category.DATAGRID, Category.CLUSTERING })
+@UriEndpoint(firstVersion = "2.13.0", scheme = SCHEME_INFINISPAN, title = "Infinispan", syntax = "infinispan:cacheName",
+             category = { Category.CACHE, Category.DATAGRID, Category.CLUSTERING }, headersClass = InfinispanConstants.class)
 public class InfinispanRemoteEndpoint extends InfinispanEndpoint {
 
     @UriPath(description = "The name of the cache to use. Use current to use the existing cache name from the currently configured cached manager. Or use default for the default cache manager name.")

[camel] 04/12: CAMEL-17792: Add doc about the message headers of camel-http

Posted by nf...@apache.org.
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 eac4ec0377162309b3ad6938006927c97b469b1a
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 13:05:44 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-http
---
 .../org/apache/camel/component/http/http.json      | 16 ++++++++
 .../org/apache/camel/component/http/https.json     | 16 ++++++++
 .../camel-http/src/main/docs/http-component.adoc   | 36 ++---------------
 .../apache/camel/component/http/HttpConstants.java | 47 ++++++++++++++++++++++
 .../apache/camel/component/http/HttpEndpoint.java  |  2 +-
 .../camel/component/http/HttpEntityConverter.java  |  6 +--
 .../camel/component/http/HttpPollingConsumer.java  |  4 +-
 .../apache/camel/component/http/HttpProducer.java  | 32 +++++++--------
 .../component/http/helper/HttpMethodHelper.java    |  7 ++--
 9 files changed, 108 insertions(+), 58 deletions(-)

diff --git a/components/camel-http/src/generated/resources/org/apache/camel/component/http/http.json b/components/camel-http/src/generated/resources/org/apache/camel/component/http/http.json
index 925c1cd..c03ae78 100644
--- a/components/camel-http/src/generated/resources/org/apache/camel/component/http/http.json
+++ b/components/camel-http/src/generated/resources/org/apache/camel/component/http/http.json
@@ -63,6 +63,22 @@
     "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is int [...]
     "socketTimeout": { "kind": "property", "displayName": "Socket Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Defines the socket timeout in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infini [...]
   },
+  "headers": {
+    "Content-Encoding": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP content encoding. Is set on both the IN and OUT message to\nprovide a content encoding, such as `gzip`." },
+    "CamelHttpResponseCode": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP response code from the external server. Is 200 for OK." },
+    "CamelHttpResponseText": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP response text from the external server." },
+    "CamelHttpQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URI parameters. Will override existing URI parameters set directly on\nthe endpoint." },
+    "CamelHttpProtocolVersion": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The version of the http protocol used." },
+    "Host": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The target host." },
+    "CamelRestHttpUri": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The rest http URI." },
+    "CamelHttpUri": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URI to call. Will override existing URI set directly on the endpoint.\nThis uri is the uri of the http server to call. Its not the same as the\nCamel endpoint uri, where you can configure endpoint options such as\nsecurity etc. This header does not supp [...]
+    "CamelHttpPath": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Request URI's path, the header will be used to build the request URI\nwith the HTTP_URI." },
+    "CamelRestHttpQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The rest http query." },
+    "CamelHttpRawQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http raw query." },
+    "CamelHttpMethod": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.http.HttpMethods", "enum": [ "GET", "PATCH", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http method to use." },
+    "CamelHttpCharacterEncoding": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The character encoding." },
+    "Content-Type": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP content type. Is set on both the IN and OUT message to provide\na content type, such as `text\/html`." }
+  },
   "properties": {
     "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The url of the HTTP endpoint to call." },
     "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
diff --git a/components/camel-http/src/generated/resources/org/apache/camel/component/http/https.json b/components/camel-http/src/generated/resources/org/apache/camel/component/http/https.json
index 24f3de2..8efdb5e 100644
--- a/components/camel-http/src/generated/resources/org/apache/camel/component/http/https.json
+++ b/components/camel-http/src/generated/resources/org/apache/camel/component/http/https.json
@@ -63,6 +63,22 @@
     "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is int [...]
     "socketTimeout": { "kind": "property", "displayName": "Socket Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Defines the socket timeout in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infini [...]
   },
+  "headers": {
+    "Content-Encoding": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP content encoding. Is set on both the IN and OUT message to\nprovide a content encoding, such as `gzip`." },
+    "CamelHttpResponseCode": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP response code from the external server. Is 200 for OK." },
+    "CamelHttpResponseText": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP response text from the external server." },
+    "CamelHttpQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URI parameters. Will override existing URI parameters set directly on\nthe endpoint." },
+    "CamelHttpProtocolVersion": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The version of the http protocol used." },
+    "Host": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The target host." },
+    "CamelRestHttpUri": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The rest http URI." },
+    "CamelHttpUri": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URI to call. Will override existing URI set directly on the endpoint.\nThis uri is the uri of the http server to call. Its not the same as the\nCamel endpoint uri, where you can configure endpoint options such as\nsecurity etc. This header does not supp [...]
+    "CamelHttpPath": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Request URI's path, the header will be used to build the request URI\nwith the HTTP_URI." },
+    "CamelRestHttpQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The rest http query." },
+    "CamelHttpRawQuery": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http raw query." },
+    "CamelHttpMethod": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.http.HttpMethods", "enum": [ "GET", "PATCH", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http method to use." },
+    "CamelHttpCharacterEncoding": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The character encoding." },
+    "Content-Type": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HTTP content type. Is set on both the IN and OUT message to provide\na content type, such as `text\/html`." }
+  },
   "properties": {
     "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The url of the HTTP endpoint to call." },
     "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
diff --git a/components/camel-http/src/main/docs/http-component.adoc b/components/camel-http/src/main/docs/http-component.adoc
index 8aa2d69..2371a63 100644
--- a/components/camel-http/src/main/docs/http-component.adoc
+++ b/components/camel-http/src/main/docs/http-component.adoc
@@ -52,43 +52,15 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-== Message Headers
-
-[width="100%",cols="10%,20%,70%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`Exchange.HTTP_URI` |`String` |URI to call. Will override existing URI set directly on the endpoint.
-This uri is the uri of the http server to call. Its not the same as the
-Camel endpoint uri, where you can configure endpoint options such as
-security etc. This header does not support that, its only the uri of the
-http server.
-
-|`Exchange.HTTP_PATH` |`String` |Request URI's path, the header will be used to build the request URI
-with the HTTP_URI.
-
-|`Exchange.HTTP_QUERY` |`String` |URI parameters. Will override existing URI parameters set directly on
-the endpoint.
-
-|`Exchange.HTTP_RESPONSE_CODE` |`int` |The HTTP response code from the external server. Is 200 for OK.
-
-|`Exchange.HTTP_RESPONSE_TEXT` | `String` |The HTTP response text from the external server.
-
-|`Exchange.HTTP_CHARACTER_ENCODING` |`String` |Character encoding.
-
-|`Exchange.CONTENT_TYPE` |`String` |The HTTP content type. Is set on both the IN and OUT message to provide
-a content type, such as `text/html`.
-
-|`Exchange.CONTENT_ENCODING` |`String` |The HTTP content encoding. Is set on both the IN and OUT message to
-provide a content encoding, such as `gzip`.
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Message Body
 
 Camel will store the HTTP response from the external server on the OUT
 body. All headers from the IN message will be copied to the OUT message,
-so headers are preserved during routing. Additionally Camel will add the
+so headers are preserved during routing. Additionally, Camel will add the
 HTTP response headers as well to the OUT message headers.
 
 == Using System Properties
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConstants.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConstants.java
index dd96ab1..fe0a9fd 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConstants.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConstants.java
@@ -16,11 +16,58 @@
  */
 package org.apache.camel.component.http;
 
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.Metadata;
+import org.apache.http.HttpHeaders;
+
 public final class HttpConstants {
 
     public static final String CONTENT_TYPE_JAVA_SERIALIZED_OBJECT = "application/x-java-serialized-object";
     public static final String CONTENT_TYPE_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded";
 
+    @Metadata(description = "The HTTP content encoding. Is set on both the IN and OUT message to\n" +
+                            "provide a content encoding, such as `gzip`.",
+              javaType = "String")
+    public static final String CONTENT_ENCODING = Exchange.CONTENT_ENCODING;
+    @Metadata(description = "The HTTP response code from the external server. Is 200 for OK.", javaType = "int")
+    public static final String HTTP_RESPONSE_CODE = Exchange.HTTP_RESPONSE_CODE;
+    @Metadata(description = "The HTTP response text from the external server.", javaType = "String")
+    public static final String HTTP_RESPONSE_TEXT = Exchange.HTTP_RESPONSE_TEXT;
+    @Metadata(label = "producer", description = "URI parameters. Will override existing URI parameters set directly on\n" +
+                                                "the endpoint.",
+              javaType = "String")
+    public static final String HTTP_QUERY = Exchange.HTTP_QUERY;
+    @Metadata(label = "producer", description = "The version of the http protocol used.", javaType = "String")
+    public static final String HTTP_PROTOCOL_VERSION = Exchange.HTTP_PROTOCOL_VERSION;
+    @Metadata(label = "producer", description = "The target host.", javaType = "String")
+    public static final String HTTP_HEADER_HOST = HttpHeaders.HOST;
+    @Metadata(label = "producer", description = "The rest http URI.", javaType = "String")
+    public static final String REST_HTTP_URI = Exchange.REST_HTTP_URI;
+    @Metadata(label = "producer", description = "URI to call. Will override existing URI set directly on the endpoint.\n" +
+                                                "This uri is the uri of the http server to call. Its not the same as the\n" +
+                                                "Camel endpoint uri, where you can configure endpoint options such as\n" +
+                                                "security etc. This header does not support that, its only the uri of the\n" +
+                                                "http server.",
+              javaType = "String")
+    public static final String HTTP_URI = Exchange.HTTP_URI;
+    @Metadata(label = "producer", description = "Request URI's path, the header will be used to build the request URI\n" +
+                                                "with the HTTP_URI.",
+              javaType = "String")
+    public static final String HTTP_PATH = Exchange.HTTP_PATH;
+    @Metadata(label = "producer", description = "The rest http query.", javaType = "String")
+    public static final String REST_HTTP_QUERY = Exchange.REST_HTTP_QUERY;
+    @Metadata(label = "producer", description = "The http raw query.", javaType = "String")
+    public static final String HTTP_RAW_QUERY = "CamelHttpRawQuery";
+    @Metadata(label = "producer", description = "The http method to use.",
+              javaType = "org.apache.camel.component.http.HttpMethods")
+    public static final String HTTP_METHOD = Exchange.HTTP_METHOD;
+    @Metadata(description = "The character encoding.", javaType = "String")
+    public static final String HTTP_CHARACTER_ENCODING = Exchange.HTTP_CHARACTER_ENCODING;
+    @Metadata(description = "The HTTP content type. Is set on both the IN and OUT message to provide\n" +
+                            "a content type, such as `text/html`.",
+              javaType = "String")
+    public static final String CONTENT_TYPE = Exchange.CONTENT_TYPE;
+
     private HttpConstants() {
     }
 }
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
index 587bfd3..1680e85 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * Send requests to external HTTP servers using Apache HTTP Client 4.x.
  */
 @UriEndpoint(firstVersion = "2.3.0", scheme = "http,https", title = "HTTP,HTTPS", syntax = "http://httpUri",
-             producerOnly = true, category = { Category.HTTP }, lenientProperties = true)
+             producerOnly = true, category = { Category.HTTP }, lenientProperties = true, headersClass = HttpConstants.class)
 @Metadata(excludeProperties = "httpBinding,matchOnUriPrefix,chunked,disableStreamCache,transferException")
 @ManagedResource(description = "Managed HttpEndpoint")
 public class HttpEndpoint extends HttpCommonEndpoint {
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java
index 923d8a6..651c680 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEntityConverter.java
@@ -62,7 +62,7 @@ public final class HttpEntityConverter {
     private static HttpEntity asHttpEntity(InputStream in, Exchange exchange) throws IOException {
         InputStreamEntity entity;
         if (exchange != null && !exchange.getProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.FALSE, Boolean.class)) {
-            String contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
+            String contentEncoding = exchange.getIn().getHeader(HttpConstants.CONTENT_ENCODING, String.class);
             InputStream stream = GZIPHelper.compressGzip(contentEncoding, in);
             entity = new InputStreamEntity(
                     stream, stream instanceof ByteArrayInputStream
@@ -71,7 +71,7 @@ public final class HttpEntityConverter {
             entity = new InputStreamEntity(in, -1);
         }
         if (exchange != null) {
-            String contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
+            String contentEncoding = exchange.getIn().getHeader(HttpConstants.CONTENT_ENCODING, String.class);
             if (contentEncoding != null) {
                 entity.setContentEncoding(contentEncoding);
             }
@@ -88,7 +88,7 @@ public final class HttpEntityConverter {
 
         String contentEncoding = null;
         if (exchange != null) {
-            contentEncoding = exchange.getIn().getHeader(Exchange.CONTENT_ENCODING, String.class);
+            contentEncoding = exchange.getIn().getHeader(HttpConstants.CONTENT_ENCODING, String.class);
         }
 
         if (exchange != null && !exchange.getProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.FALSE, Boolean.class)) {
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java
index d86f6d3..805bca0 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java
@@ -108,9 +108,9 @@ public class HttpPollingConsumer extends PollingConsumerSupport {
                     message.setHeader(name, value);
                 }
             }
-            message.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode);
+            message.setHeader(HttpConstants.HTTP_RESPONSE_CODE, responseCode);
             if (response.getStatusLine() != null) {
-                message.setHeader(Exchange.HTTP_RESPONSE_TEXT, response.getStatusLine().getReasonPhrase());
+                message.setHeader(HttpConstants.HTTP_RESPONSE_TEXT, response.getStatusLine().getReasonPhrase());
             }
 
             return exchange;
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
index b5fb2b2..b889736 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
@@ -81,8 +81,6 @@ import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.http.HttpHeaders.HOST;
-
 public class HttpProducer extends DefaultProducer {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpProducer.class);
@@ -155,7 +153,7 @@ public class HttpProducer extends DefaultProducer {
 
         if (getEndpoint().isBridgeEndpoint()) {
             exchange.setProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.TRUE);
-            String queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+            String queryString = exchange.getIn().getHeader(HttpConstants.HTTP_QUERY, String.class);
             if (queryString != null) {
                 skipRequestHeaders = URISupport.parseQuery(queryString, false, true);
             }
@@ -165,7 +163,7 @@ public class HttpProducer extends DefaultProducer {
         HttpHost httpHost = createHost(httpRequest, exchange);
 
         Message in = exchange.getIn();
-        String httpProtocolVersion = in.getHeader(Exchange.HTTP_PROTOCOL_VERSION, String.class);
+        String httpProtocolVersion = in.getHeader(HttpConstants.HTTP_PROTOCOL_VERSION, String.class);
         if (httpProtocolVersion != null) {
             // set the HTTP protocol version
             int[] version = HttpHelper.parserHttpVersion(httpProtocolVersion);
@@ -250,15 +248,15 @@ public class HttpProducer extends DefaultProducer {
         }
 
         if (getEndpoint().getCustomHostHeader() != null) {
-            httpRequest.setHeader(HOST, getEndpoint().getCustomHostHeader());
+            httpRequest.setHeader(HttpConstants.HTTP_HEADER_HOST, getEndpoint().getCustomHostHeader());
         }
         //In reverse proxy applications it can be desirable for the downstream service to see the original Host header
         //if this option is set, and the exchange Host header is not null, we will set it's current value on the httpRequest
         if (getEndpoint().isPreserveHostHeader()) {
-            String hostHeader = exchange.getIn().getHeader("Host", String.class);
+            String hostHeader = exchange.getIn().getHeader(HttpConstants.HTTP_HEADER_HOST, String.class);
             if (hostHeader != null) {
                 //HttpClient 4 will check to see if the Host header is present, and use it if it is, see org.apache.http.protocol.RequestTargetHost in httpcore
-                httpRequest.setHeader(HOST, hostHeader);
+                httpRequest.setHeader(HttpConstants.HTTP_HEADER_HOST, hostHeader);
             }
         }
 
@@ -336,12 +334,12 @@ public class HttpProducer extends DefaultProducer {
 
         // optimize for 200 response code as the boxing is outside the cached integers
         if (responseCode == 200) {
-            answer.setHeader(Exchange.HTTP_RESPONSE_CODE, OK_RESPONSE_CODE);
+            answer.setHeader(HttpConstants.HTTP_RESPONSE_CODE, OK_RESPONSE_CODE);
         } else {
-            answer.setHeader(Exchange.HTTP_RESPONSE_CODE, responseCode);
+            answer.setHeader(HttpConstants.HTTP_RESPONSE_CODE, responseCode);
         }
         if (httpResponse.getStatusLine() != null) {
-            answer.setHeader(Exchange.HTTP_RESPONSE_TEXT, httpResponse.getStatusLine().getReasonPhrase());
+            answer.setHeader(HttpConstants.HTTP_RESPONSE_TEXT, httpResponse.getStatusLine().getReasonPhrase());
         }
         answer.setBody(response);
 
@@ -482,7 +480,7 @@ public class HttpProducer extends DefaultProducer {
             return null;
         }
 
-        Header header = httpResponse.getFirstHeader(Exchange.CONTENT_ENCODING);
+        Header header = httpResponse.getFirstHeader(HttpConstants.CONTENT_ENCODING);
         String contentEncoding = header != null ? header.getValue() : null;
 
         if (!exchange.getProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.FALSE, Boolean.class)) {
@@ -592,17 +590,17 @@ public class HttpProducer extends DefaultProducer {
         // these checks are checks that is done in HttpHelper.createURL and HttpHelper.createURI methods
         boolean create = false;
         Message in = exchange.getIn();
-        if (in.getHeader(Exchange.REST_HTTP_URI) != null) {
+        if (in.getHeader(HttpConstants.REST_HTTP_URI) != null) {
             create = true;
-        } else if (in.getHeader(Exchange.HTTP_URI) != null && !getEndpoint().isBridgeEndpoint()) {
+        } else if (in.getHeader(HttpConstants.HTTP_URI) != null && !getEndpoint().isBridgeEndpoint()) {
             create = true;
-        } else if (in.getHeader(Exchange.HTTP_PATH) != null) {
+        } else if (in.getHeader(HttpConstants.HTTP_PATH) != null) {
             create = true;
-        } else if (in.getHeader(Exchange.REST_HTTP_QUERY) != null) {
+        } else if (in.getHeader(HttpConstants.REST_HTTP_QUERY) != null) {
             create = true;
-        } else if (in.getHeader("CamelHttpRawQuery") != null) {
+        } else if (in.getHeader(HttpConstants.HTTP_RAW_QUERY) != null) {
             create = true;
-        } else if (in.getHeader(Exchange.HTTP_QUERY) != null) {
+        } else if (in.getHeader(HttpConstants.HTTP_QUERY) != null) {
             create = true;
         }
 
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/helper/HttpMethodHelper.java b/components/camel-http/src/main/java/org/apache/camel/component/http/helper/HttpMethodHelper.java
index 474048d..87503b0 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/helper/HttpMethodHelper.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/helper/HttpMethodHelper.java
@@ -21,6 +21,7 @@ import java.net.URISyntaxException;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeExchangeException;
+import org.apache.camel.component.http.HttpConstants;
 import org.apache.camel.component.http.HttpEndpoint;
 import org.apache.camel.component.http.HttpMethods;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
@@ -37,9 +38,9 @@ public final class HttpMethodHelper {
     public static HttpMethods createMethod(Exchange exchange, HttpEndpoint endpoint) throws URISyntaxException {
         // is a query string provided in the endpoint URI or in a header (header
         // overrules endpoint)
-        String queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+        String queryString = exchange.getIn().getHeader(HttpConstants.HTTP_QUERY, String.class);
         // We need also check the HTTP_URI header query part
-        String uriString = exchange.getIn().getHeader(Exchange.HTTP_URI, String.class);
+        String uriString = exchange.getIn().getHeader(HttpConstants.HTTP_URI, String.class);
         if (uriString != null) {
             // resolve placeholders in uriString
             try {
@@ -63,7 +64,7 @@ public final class HttpMethodHelper {
             answer = HttpMethods.valueOf(endpoint.getHttpMethod().name());
         } else {
             // compute what method to use either GET or POST (header take precedence)
-            HttpMethods m = exchange.getIn().getHeader(Exchange.HTTP_METHOD, HttpMethods.class);
+            HttpMethods m = exchange.getIn().getHeader(HttpConstants.HTTP_METHOD, HttpMethods.class);
             if (m != null) {
                 // always use what end-user provides in a header
                 answer = m;

[camel] 11/12: CAMEL-17792: Add doc about the message headers of camel-irc

Posted by nf...@apache.org.
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 1d1ddf946e221b9e716fc15275a4c466be1f9a49
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Tue Mar 29 18:49:21 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-irc
---
 .../resources/org/apache/camel/component/irc/irc.json      | 12 ++++++++++++
 components/camel-irc/src/main/docs/irc-component.adoc      |  3 +++
 .../java/org/apache/camel/component/irc/IrcConstants.java  | 14 ++++++++++++++
 .../java/org/apache/camel/component/irc/IrcEndpoint.java   |  2 +-
 4 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/components/camel-irc/src/generated/resources/org/apache/camel/component/irc/irc.json b/components/camel-irc/src/generated/resources/org/apache/camel/component/irc/irc.json
index 37fd45c..1349890 100644
--- a/components/camel-irc/src/generated/resources/org/apache/camel/component/irc/irc.json
+++ b/components/camel-irc/src/generated/resources/org/apache/camel/component/irc/irc.json
@@ -28,6 +28,18 @@
     "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 [...]
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
   },
+  "headers": {
+    "irc.messageType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of message" },
+    "irc.target": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The target" },
+    "irc.sendTo": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The nickname or channel the message should be sent to." },
+    "irc.user.kicked": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The nickname of the user who is kicked from a channel (passive)." },
+    "irc.user.host": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The host of the person who sent the line." },
+    "irc.user.nick": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The nickname of the person who sent the line or the server name of the server which sent the line." },
+    "irc.user.servername": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The server name of the server which sent the line or the nickname of the person who sent the line." },
+    "irc.user.username": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The username of the person who sent the line." },
+    "irc.num": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The numeric reply." },
+    "irc.value": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The first part of the message" }
+  },
   "properties": {
     "hostname": { "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Hostname for the IRC chat server" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Port number for the IRC chat server. If no port is configured then a default port of either 6667, 6668 or 6669 is used." },
diff --git a/components/camel-irc/src/main/docs/irc-component.adoc b/components/camel-irc/src/main/docs/irc-component.adoc
index 565c079..a3fe477 100644
--- a/components/camel-irc/src/main/docs/irc-component.adoc
+++ b/components/camel-irc/src/main/docs/irc-component.adoc
@@ -42,6 +42,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == SSL Support
 
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConstants.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConstants.java
index e973ce7..a408f58 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConstants.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConstants.java
@@ -16,19 +16,33 @@
  */
 package org.apache.camel.component.irc;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * IRC Constants
  */
 public final class IrcConstants {
+    @Metadata(description = "The type of message", javaType = "String")
     public static final String IRC_MESSAGE_TYPE = "irc.messageType";
+    @Metadata(description = "The target", javaType = "String")
     public static final String IRC_TARGET = "irc.target";
+    @Metadata(description = "The nickname or channel the message should be sent to.", javaType = "String")
     public static final String IRC_SEND_TO = "irc.sendTo";
+    @Metadata(description = "The nickname of the user who is kicked from a channel (passive).", javaType = "String")
     public static final String IRC_USER_KICKED = "irc.user.kicked";
+    @Metadata(description = "The host of the person who sent the line.", javaType = "String")
     public static final String IRC_USER_HOST = "irc.user.host";
+    @Metadata(description = "The nickname of the person who sent the line or the server name of the server which sent the line.",
+              javaType = "String")
     public static final String IRC_USER_NICK = "irc.user.nick";
+    @Metadata(description = "The server name of the server which sent the line or the nickname of the person who sent the line.",
+              javaType = "String")
     public static final String IRC_USER_SERVERNAME = "irc.user.servername";
+    @Metadata(description = "The username of the person who sent the line.", javaType = "String")
     public static final String IRC_USER_USERNAME = "irc.user.username";
+    @Metadata(description = "The numeric reply.", javaType = "int")
     public static final String IRC_NUM = "irc.num";
+    @Metadata(description = "The first part of the message", javaType = "String")
     public static final String IRC_VALUE = "irc.value";
 
     private IrcConstants() {
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
index 4a81b56..1047e41 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
@@ -36,7 +36,7 @@ import org.slf4j.LoggerFactory;
              title = "IRC",
              syntax = "irc:hostname:port",
              alternativeSyntax = "irc:username:password@hostname:port",
-             category = { Category.CHAT })
+             category = { Category.CHAT }, headersClass = IrcConstants.class)
 public class IrcEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(IrcEndpoint.class);