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/04/01 09:14:00 UTC

[camel] branch CAMEL-17792/doc-message-headers created (now 9b7457e)

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 9b7457e  CAMEL-17792: Add doc about the message headers of camel-mybatis

This branch includes the following new commits:

     new d8ab4e7  CAMEL-17792: Add doc about the message headers of camel-kafka
     new 0f3e8b6  CAMEL-17792: Add doc about the message headers of camel-kubernetes
     new 039c614  CAMEL-17792: Add doc about the message headers of camel-kudu
     new 526ce2a  CAMEL-17792: Add doc about the message headers of camel-language
     new e61fe3e  CAMEL-17792: Add doc about the message headers of camel-lucene
     new 1434604  CAMEL-17792: Add doc about the message headers of camel-mail
     new effbfde  CAMEL-17792: Add doc about the message headers of camel-metrics
     new 66e7f99  CAMEL-17792: Add doc about the message headers of camel-micrometer
     new c35f70a  CAMEL-17792: Add doc about the message headers of camel-microprofile-metrics
     new 25de40e  CAMEL-17792: Add doc about the message headers of camel-milo
     new fe3b96d  CAMEL-17792: Add doc about the message headers of camel-mina
     new c572238  CAMEL-17792: Add doc about the message headers of camel-minio
     new 5cc3870  CAMEL-17792: Add doc about the message headers of camel-mllp
     new 59ae141  CAMEL-17792: Add doc about the message headers of camel-mongodb
     new 63ee0fe  CAMEL-17792: Add doc about the message headers of camel-mongodb-gridfs
     new 09335cc  CAMEL-17792: Add doc about the message headers of camel-mustache
     new 206c3da  CAMEL-17792: Add doc about the message headers of camel-mvel
     new 9b7457e  CAMEL-17792: Add doc about the message headers of camel-mybatis

The 18 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] 17/18: CAMEL-17792: Add doc about the message headers of camel-mvel

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 206c3da0568d9d4667235557fc6db9e113293ff8
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 19:17:56 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mvel
---
 .../org/apache/camel/component/mvel/mvel.json      |  4 ++++
 .../camel-mvel/src/main/docs/mvel-component.adoc   | 25 +++-------------------
 .../apache/camel/component/mvel/MvelConstants.java |  7 +++++-
 .../apache/camel/component/mvel/MvelEndpoint.java  |  2 +-
 4 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/components/camel-mvel/src/generated/resources/org/apache/camel/component/mvel/mvel.json b/components/camel-mvel/src/generated/resources/org/apache/camel/component/mvel/mvel.json
index 0b81e27..baa4976 100644
--- a/components/camel-mvel/src/generated/resources/org/apache/camel/component/mvel/mvel.json
+++ b/components/camel-mvel/src/generated/resources/org/apache/camel/component/mvel/mvel.json
@@ -27,6 +27,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": {
+    "CamelMvelResourceUri": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A URI for the template resource to use instead of the endpoint\nconfigured." },
+    "CamelMvelTemplate": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The template to use instead of the endpoint configured." }
+  },
   "properties": {
     "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
     "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
diff --git a/components/camel-mvel/src/main/docs/mvel-component.adoc b/components/camel-mvel/src/main/docs/mvel-component.adoc
index 4f392c0..ddf7c94 100644
--- a/components/camel-mvel/src/main/docs/mvel-component.adoc
+++ b/components/camel-mvel/src/main/docs/mvel-component.adoc
@@ -54,19 +54,6 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-
-== Message Headers
-
-The MVEL component sets a couple headers on the message.
-
-[width="100%",cols="10%,90%",options="header",]
-|=======================================================================
-|Header |Description
-
-|`CamelMvelResourceUri` |The *templateName* as a `String` object.
-|=======================================================================
-
 == MVEL Context
 
 Camel will provide exchange information in the MVEL context (just a
@@ -101,15 +88,9 @@ location for a template, or the template content itself. If any of these
 headers is set then Camel uses this over the endpoint configured
 resource. This allows you to provide a dynamic template at runtime.
 
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|CamelMvelResourceUri |String |A URI for the template resource to use instead of the endpoint
-configured.
-
-|CamelMvelTemplate |String |The template to use instead of the endpoint configured.
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Example
 
diff --git a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelConstants.java b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelConstants.java
index 6252abb..a5647a6 100644
--- a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelConstants.java
+++ b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelConstants.java
@@ -16,13 +16,18 @@
  */
 package org.apache.camel.component.mvel;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Mvel constants
  */
 public final class MvelConstants {
 
+    @Metadata(description = "A URI for the template resource to use instead of the endpoint\n" +
+                            "configured.",
+              javaType = "String")
     public static final String MVEL_RESOURCE_URI = "CamelMvelResourceUri";
-
+    @Metadata(description = "The template to use instead of the endpoint configured.", javaType = "String")
     public static final String MVEL_TEMPLATE = "CamelMvelTemplate";
 
     private MvelConstants() {
diff --git a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
index 50dab51..3316c00 100644
--- a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
+++ b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
@@ -39,7 +39,7 @@ import org.mvel2.templates.TemplateRuntime;
  * Transform messages using an MVEL template.
  */
 @UriEndpoint(firstVersion = "2.12.0", scheme = "mvel", title = "MVEL", syntax = "mvel:resourceUri", producerOnly = true,
-             category = { Category.TRANSFORMATION, Category.SCRIPT })
+             category = { Category.TRANSFORMATION, Category.SCRIPT }, headersClass = MvelConstants.class)
 public class MvelEndpoint extends ResourceEndpoint {
 
     @UriParam(defaultValue = "false")

[camel] 15/18: CAMEL-17792: Add doc about the message headers of camel-mongodb-gridfs

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 63ee0fec22ed8f8e703f486029d23069daf1376a
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 19:02:41 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mongodb-gridfs
---
 .../component/mongodb/gridfs/mongodb-gridfs.json   | 13 +++++++++
 .../src/main/docs/mongodb-gridfs-component.adoc    |  4 ++-
 .../component/mongodb/gridfs/GridFsConstants.java  | 26 +++++++++++++++++
 .../component/mongodb/gridfs/GridFsConsumer.java   |  8 ++---
 .../component/mongodb/gridfs/GridFsEndpoint.java   |  9 ++----
 .../component/mongodb/gridfs/GridFsProducer.java   | 34 +++++++++++-----------
 .../gridfs/integration/GridFsConsumerIT.java       |  8 ++---
 .../integration/GridFsProducerOperationsIT.java    | 11 ++++---
 8 files changed, 74 insertions(+), 39 deletions(-)

diff --git a/components/camel-mongodb-gridfs/src/generated/resources/org/apache/camel/component/mongodb/gridfs/mongodb-gridfs.json b/components/camel-mongodb-gridfs/src/generated/resources/org/apache/camel/component/mongodb/gridfs/mongodb-gridfs.json
index eb2d0bd..700ce6a 100644
--- a/components/camel-mongodb-gridfs/src/generated/resources/org/apache/camel/component/mongodb/gridfs/mongodb-gridfs.json
+++ b/components/camel-mongodb-gridfs/src/generated/resources/org/apache/camel/component/mongodb/gridfs/mongodb-gridfs.json
@@ -26,6 +26,19 @@
     "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": {
+    "CamelFileContentType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type of the file." },
+    "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." },
+    "CamelFileLastModified": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The size of the file." },
+    "CamelFileName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the file." },
+    "Content-Type": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type of the file." },
+    "CamelFileNameProduced": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The file name produced." },
+    "gridfs.metadata": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Any additional metadata stored along with the file in JSON format." },
+    "gridfs.operation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "gridfs.chunksize": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of bytes per chunk for the uploaded file." },
+    "gridfs.fileid": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.bson.types.ObjectId", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ObjectId of the file produced" },
+    "gridfs.objectid": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.bson.types.ObjectId", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ObjectId of the file." }
+  },
   "properties": {
     "connectionBean": { "kind": "path", "displayName": "Connection Bean", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of com.mongodb.client.MongoClient to use." },
     "bucket": { "kind": "parameter", "displayName": "Bucket", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fs", "description": "Sets the name of the GridFS bucket within the database. Default is fs." },
diff --git a/components/camel-mongodb-gridfs/src/main/docs/mongodb-gridfs-component.adoc b/components/camel-mongodb-gridfs/src/main/docs/mongodb-gridfs-component.adoc
index 9f8bc08..a8d79e1 100644
--- a/components/camel-mongodb-gridfs/src/main/docs/mongodb-gridfs-component.adoc
+++ b/components/camel-mongodb-gridfs/src/main/docs/mongodb-gridfs-component.adoc
@@ -44,7 +44,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
 
 == Configuration of database in Spring XML
 
diff --git a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConstants.java b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConstants.java
index fea34be..f05dde5 100644
--- a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConstants.java
+++ b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConstants.java
@@ -16,14 +16,40 @@
  */
 package org.apache.camel.component.mongodb.gridfs;
 
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.Metadata;
+
 public final class GridFsConstants {
 
+    @Metadata(label = "consumer", description = "The content type of the file.", javaType = "String")
+    public static final String FILE_CONTENT_TYPE = Exchange.FILE_CONTENT_TYPE;
+    @Metadata(label = "consumer", description = "The size of the file.", javaType = "long")
+    public static final String FILE_LENGTH = Exchange.FILE_LENGTH;
+    @Metadata(label = "consumer", description = "The size of the file.", javaType = "Date")
+    public static final String FILE_LAST_MODIFIED = Exchange.FILE_LAST_MODIFIED;
+    @Metadata(label = "producer", description = "The name of the file.", javaType = "String")
+    public static final String FILE_NAME = Exchange.FILE_NAME;
+    @Metadata(label = "producer", description = "The content type of the file.", javaType = "String")
+    public static final String CONTENT_TYPE = Exchange.CONTENT_TYPE;
+    @Metadata(label = "producer", description = "The file name produced.", javaType = "String")
+    public static final String FILE_NAME_PRODUCED = Exchange.FILE_NAME_PRODUCED;
+
     public static final String GRIDFS_FILE_ATTRIBUTE_DONE = "done";
     public static final String GRIDFS_FILE_ATTRIBUTE_PROCESSING = "processing";
     public static final String GRIDFS_FILE_KEY_CONTENT_TYPE = "contentType";
     public static final String GRIDFS_FILE_KEY_FILENAME = "filename";
     public static final String GRIDFS_FILE_KEY_UPLOAD_DATE = "uploadDate";
     public static final String PERSISTENT_TIMESTAMP_KEY = "timestamp";
+    @Metadata(description = "Any additional metadata stored along with the file in JSON format.", javaType = "String")
+    public static final String GRIDFS_METADATA = "gridfs.metadata";
+    @Metadata(label = "producer", description = "The operation to perform.", javaType = "String")
+    public static final String GRIDFS_OPERATION = "gridfs.operation";
+    @Metadata(label = "producer", description = "The number of bytes per chunk for the uploaded file.", javaType = "Integer")
+    public static final String GRIDFS_CHUNKSIZE = "gridfs.chunksize";
+    @Metadata(label = "producer", description = "The ObjectId of the file produced", javaType = "org.bson.types.ObjectId")
+    public static final String GRIDFS_FILE_ID_PRODUCED = "gridfs.fileid";
+    @Metadata(label = "producer", description = "The ObjectId of the file.", javaType = "org.bson.types.ObjectId")
+    public static final String GRIDFS_OBJECT_ID = "gridfs.objectid";
 
     private GridFsConstants() {
     }
diff --git a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConsumer.java b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConsumer.java
index fe7639e..69941a7 100644
--- a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConsumer.java
+++ b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsConsumer.java
@@ -152,13 +152,13 @@ public class GridFsConsumer extends DefaultConsumer implements Runnable {
                     if (metadata != null) {
                         String contentType = metadata.get(GRIDFS_FILE_KEY_CONTENT_TYPE, String.class);
                         if (contentType != null) {
-                            exchange.getIn().setHeader(Exchange.FILE_CONTENT_TYPE, contentType);
+                            exchange.getIn().setHeader(GridFsConstants.FILE_CONTENT_TYPE, contentType);
                         }
-                        exchange.getIn().setHeader(GridFsEndpoint.GRIDFS_METADATA, metadata.toJson());
+                        exchange.getIn().setHeader(GridFsConstants.GRIDFS_METADATA, metadata.toJson());
                     }
 
-                    exchange.getIn().setHeader(Exchange.FILE_LENGTH, file.getLength());
-                    exchange.getIn().setHeader(Exchange.FILE_LAST_MODIFIED, file.getUploadDate());
+                    exchange.getIn().setHeader(GridFsConstants.FILE_LENGTH, file.getLength());
+                    exchange.getIn().setHeader(GridFsConstants.FILE_LAST_MODIFIED, file.getUploadDate());
                     exchange.getIn().setBody(downloadStream, InputStream.class);
                     try {
                         getProcessor().process(exchange);
diff --git a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsEndpoint.java b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsEndpoint.java
index 3b47f8f..517ec63 100644
--- a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsEndpoint.java
+++ b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsEndpoint.java
@@ -41,15 +41,10 @@ import org.slf4j.LoggerFactory;
  * Interact with MongoDB GridFS.
  */
 @UriEndpoint(firstVersion = "2.18.0", scheme = "mongodb-gridfs", title = "MongoDB GridFS",
-             syntax = "mongodb-gridfs:connectionBean", category = { Category.DATABASE, Category.NOSQL })
+             syntax = "mongodb-gridfs:connectionBean", category = { Category.DATABASE, Category.NOSQL },
+             headersClass = GridFsConstants.class)
 public class GridFsEndpoint extends DefaultEndpoint {
 
-    public static final String GRIDFS_OPERATION = "gridfs.operation";
-    public static final String GRIDFS_METADATA = "gridfs.metadata";
-    public static final String GRIDFS_CHUNKSIZE = "gridfs.chunksize";
-    public static final String GRIDFS_FILE_ID_PRODUCED = "gridfs.fileid";
-    public static final String GRIDFS_OBJECT_ID = "gridfs.objectid";
-
     private static final Logger LOG = LoggerFactory.getLogger(GridFsEndpoint.class);
 
     @UriPath
diff --git a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsProducer.java b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsProducer.java
index 3481a46..1d68bcf 100644
--- a/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsProducer.java
+++ b/components/camel-mongodb-gridfs/src/main/java/org/apache/camel/component/mongodb/gridfs/GridFsProducer.java
@@ -45,18 +45,18 @@ public class GridFsProducer extends DefaultProducer {
     public void process(Exchange exchange) throws Exception {
         String operation = endpoint.getOperation();
         if (operation == null) {
-            operation = exchange.getIn().getHeader(GridFsEndpoint.GRIDFS_OPERATION, String.class);
+            operation = exchange.getIn().getHeader(GridFsConstants.GRIDFS_OPERATION, String.class);
         }
         if (operation == null || "create".equals(operation)) {
-            final String filename = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
-            Integer chunkSize = exchange.getIn().getHeader(GridFsEndpoint.GRIDFS_CHUNKSIZE, Integer.class);
+            final String filename = exchange.getIn().getHeader(GridFsConstants.FILE_NAME, String.class);
+            Integer chunkSize = exchange.getIn().getHeader(GridFsConstants.GRIDFS_CHUNKSIZE, Integer.class);
 
             GridFSUploadOptions options = new GridFSUploadOptions();
             if (chunkSize != null && chunkSize > 0) {
                 options.chunkSizeBytes(chunkSize);
             }
 
-            String metaData = exchange.getIn().getHeader(GridFsEndpoint.GRIDFS_METADATA, String.class);
+            String metaData = exchange.getIn().getHeader(GridFsConstants.GRIDFS_METADATA, String.class);
             if (metaData != null) {
                 Document document = Document.parse(metaData);
                 if (document != null) {
@@ -64,7 +64,7 @@ public class GridFsProducer extends DefaultProducer {
                 }
             }
 
-            final String ct = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class);
+            final String ct = exchange.getIn().getHeader(GridFsConstants.CONTENT_TYPE, String.class);
             if (ct != null) {
                 Document metadata = options.getMetadata();
                 if (metadata == null) {
@@ -78,38 +78,38 @@ public class GridFsProducer extends DefaultProducer {
             ObjectId objectId = endpoint.getGridFsBucket().uploadFromStream(filename, ins, options);
 
             //add headers with the id and file name produced by the driver.
-            exchange.getIn().setHeader(Exchange.FILE_NAME_PRODUCED, filename);
-            exchange.getIn().setHeader(GridFsEndpoint.GRIDFS_FILE_ID_PRODUCED, objectId);
-            exchange.getIn().setHeader(GridFsEndpoint.GRIDFS_OBJECT_ID, objectId);
+            exchange.getIn().setHeader(GridFsConstants.FILE_NAME_PRODUCED, filename);
+            exchange.getIn().setHeader(GridFsConstants.GRIDFS_FILE_ID_PRODUCED, objectId);
+            exchange.getIn().setHeader(GridFsConstants.GRIDFS_OBJECT_ID, objectId);
         } else if ("remove".equals(operation)) {
-            final ObjectId objectId = exchange.getIn().getHeader(GridFsEndpoint.GRIDFS_OBJECT_ID, ObjectId.class);
+            final ObjectId objectId = exchange.getIn().getHeader(GridFsConstants.GRIDFS_OBJECT_ID, ObjectId.class);
             if (objectId != null) {
                 endpoint.getGridFsBucket().delete(objectId);
             } else {
-                final String filename = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
+                final String filename = exchange.getIn().getHeader(GridFsConstants.FILE_NAME, String.class);
                 GridFSFile file = endpoint.getGridFsBucket().find(eq(GRIDFS_FILE_KEY_FILENAME, filename)).first();
                 if (file != null) {
                     endpoint.getGridFsBucket().delete(file.getId());
                 }
             }
         } else if ("findOne".equals(operation)) {
-            final String filename = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
+            final String filename = exchange.getIn().getHeader(GridFsConstants.FILE_NAME, String.class);
             GridFSDownloadStream downloadStream = endpoint.getGridFsBucket().openDownloadStream(filename);
             GridFSFile file = downloadStream.getGridFSFile();
             Document metadata = file.getMetadata();
             if (metadata != null) {
-                exchange.getIn().setHeader(GridFsEndpoint.GRIDFS_METADATA, metadata.toJson());
+                exchange.getIn().setHeader(GridFsConstants.GRIDFS_METADATA, metadata.toJson());
 
                 Object contentType = metadata.get(GRIDFS_FILE_KEY_CONTENT_TYPE);
                 if (contentType != null) {
-                    exchange.getIn().setHeader(Exchange.FILE_CONTENT_TYPE, contentType);
+                    exchange.getIn().setHeader(GridFsConstants.FILE_CONTENT_TYPE, contentType);
                 }
             }
-            exchange.getIn().setHeader(Exchange.FILE_LENGTH, file.getLength());
-            exchange.getIn().setHeader(Exchange.FILE_LAST_MODIFIED, file.getUploadDate());
+            exchange.getIn().setHeader(GridFsConstants.FILE_LENGTH, file.getLength());
+            exchange.getIn().setHeader(GridFsConstants.FILE_LAST_MODIFIED, file.getUploadDate());
             exchange.getIn().setBody(downloadStream, InputStream.class);
         } else if ("listAll".equals(operation)) {
-            final String filename = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
+            final String filename = exchange.getIn().getHeader(GridFsConstants.FILE_NAME, String.class);
             MongoCursor<GridFSFile> cursor;
             if (filename == null) {
                 cursor = endpoint.getGridFsBucket().find().cursor();
@@ -119,7 +119,7 @@ public class GridFsProducer extends DefaultProducer {
             exchange.getIn().setBody(new DBCursorFilenameReader(cursor), Reader.class);
         } else if ("count".equals(operation)) {
             long count;
-            final String filename = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
+            final String filename = exchange.getIn().getHeader(GridFsConstants.FILE_NAME, String.class);
             if (filename == null) {
                 count = endpoint.getFilesCollection().countDocuments();
             } else {
diff --git a/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsConsumerIT.java b/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsConsumerIT.java
index a8e6af1..5a0ce71 100644
--- a/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsConsumerIT.java
+++ b/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsConsumerIT.java
@@ -25,7 +25,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.component.mongodb.gridfs.GridFsEndpoint;
+import org.apache.camel.component.mongodb.gridfs.GridFsConstants;
 import org.bson.types.ObjectId;
 import org.junit.jupiter.api.Test;
 
@@ -91,7 +91,7 @@ public class GridFsConsumerIT extends AbstractMongoDbITSupport {
                         exchange.getMessage().setHeaders(headers);
                     }
                 });
-        ObjectId objectId = result.getMessage().getHeader(GridFsEndpoint.GRIDFS_OBJECT_ID, ObjectId.class);
+        ObjectId objectId = result.getMessage().getHeader(GridFsConstants.GRIDFS_OBJECT_ID, ObjectId.class);
         assertNotNull(objectId);
 
         MockEndpoint mock = getMockEndpoint("mock:test");
@@ -100,7 +100,7 @@ public class GridFsConsumerIT extends AbstractMongoDbITSupport {
 
         template.requestBodyAndHeader(
                 "mongodb-gridfs:myDb?database={{mongodb.testDb}}&operation=remove&bucket=customFileFilterTest", null,
-                GridFsEndpoint.GRIDFS_OBJECT_ID, objectId);
+                GridFsConstants.GRIDFS_OBJECT_ID, objectId);
 
         Integer count = template.requestBodyAndHeaders(
                 "mongodb-gridfs:myDb?database={{mongodb.testDb}}&operation=count&bucket=customFileFilterTest", null, headers,
@@ -111,7 +111,7 @@ public class GridFsConsumerIT extends AbstractMongoDbITSupport {
     public void runTest(String target, GridFSBucket gridfs) throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:test");
         mock.expectedBodiesReceived(FILE_DATA);
-        mock.expectedHeaderReceived(GridFsEndpoint.GRIDFS_METADATA, "{\"contentType\": \"text/plain\"}");
+        mock.expectedHeaderReceived(GridFsConstants.GRIDFS_METADATA, "{\"contentType\": \"text/plain\"}");
 
         Map<String, Object> headers = new HashMap<>();
         assertFalse(gridfs.find(eq(GRIDFS_FILE_KEY_FILENAME, FILE_NAME)).cursor().hasNext());
diff --git a/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsProducerOperationsIT.java b/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsProducerOperationsIT.java
index 54e42b2..08218e8 100644
--- a/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsProducerOperationsIT.java
+++ b/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/integration/GridFsProducerOperationsIT.java
@@ -25,7 +25,6 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mongodb.gridfs.GridFsConstants;
-import org.apache.camel.component.mongodb.gridfs.GridFsEndpoint;
 import org.bson.types.ObjectId;
 import org.junit.jupiter.api.Test;
 
@@ -50,7 +49,7 @@ public class GridFsProducerOperationsIT extends AbstractMongoDbITSupport {
                 from("direct:listAll")
                         .to("mongodb-gridfs:myDb?database={{mongodb.testDb}}&operation=listAll&bucket=" + getBucket());
                 from("direct:count")
-                        .setHeader(GridFsEndpoint.GRIDFS_OPERATION, constant("count"))
+                        .setHeader(GridFsConstants.GRIDFS_OPERATION, constant("count"))
                         .to("mongodb-gridfs:myDb?database={{mongodb.testDb}}&bucket=" + getBucket());
             }
         };
@@ -77,8 +76,8 @@ public class GridFsProducerOperationsIT extends AbstractMongoDbITSupport {
         assertEquals(FILE_DATA, new String(b, 0, i, StandardCharsets.UTF_8));
 
         headers.put(Exchange.FILE_NAME, "2-" + FILE_NAME);
-        headers.put(GridFsEndpoint.GRIDFS_CHUNKSIZE, 10);
-        headers.put(GridFsEndpoint.GRIDFS_METADATA, "{'foo': 'bar'}");
+        headers.put(GridFsConstants.GRIDFS_CHUNKSIZE, 10);
+        headers.put(GridFsConstants.GRIDFS_METADATA, "{'foo': 'bar'}");
 
         template.requestBodyAndHeaders("direct:create", FILE_DATA + "data2", headers);
         assertEquals(1, template.requestBodyAndHeaders("direct:count", null, headers, Long.class).longValue());
@@ -105,11 +104,11 @@ public class GridFsProducerOperationsIT extends AbstractMongoDbITSupport {
                         exchange.getMessage().setHeaders(headers);
                     }
                 });
-        ObjectId objectId = result.getMessage().getHeader(GridFsEndpoint.GRIDFS_OBJECT_ID, ObjectId.class);
+        ObjectId objectId = result.getMessage().getHeader(GridFsConstants.GRIDFS_OBJECT_ID, ObjectId.class);
         assertNotNull(objectId);
 
         template.requestBodyAndHeader("mongodb-gridfs:myDb?database={{mongodb.testDb}}&operation=remove&bucket=" + getBucket(),
-                null, GridFsEndpoint.GRIDFS_OBJECT_ID, objectId);
+                null, GridFsConstants.GRIDFS_OBJECT_ID, objectId);
 
         Integer count = template.requestBodyAndHeaders(
                 "mongodb-gridfs:myDb?database={{mongodb.testDb}}&operation=count&bucket=" + getBucket(), null, headers,

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

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 1434604ccb606de97843e8f87dacf69fac1d58b1
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 11:36:10 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mail
---
 .../org/apache/camel/component/mail/imap.json      | 13 +++++++++++
 .../org/apache/camel/component/mail/imaps.json     | 13 +++++++++++
 .../org/apache/camel/component/mail/pop3.json      | 13 +++++++++++
 .../org/apache/camel/component/mail/pop3s.json     | 13 +++++++++++
 .../org/apache/camel/component/mail/smtp.json      | 13 +++++++++++
 .../org/apache/camel/component/mail/smtps.json     | 13 +++++++++++
 .../camel-mail/src/main/docs/mail-component.adoc   |  6 +++--
 .../apache/camel/component/mail/MailBinding.java   | 10 ++++----
 .../apache/camel/component/mail/MailConstants.java | 27 ++++++++++++++++++++++
 .../apache/camel/component/mail/MailConsumer.java  |  6 ++---
 .../apache/camel/component/mail/MailEndpoint.java  |  2 +-
 .../camel/component/mail/MailComponentTest.java    | 10 ++++----
 .../component/mail/MailCustomContentTypeTest.java  |  7 +++---
 .../camel/component/mail/MailReplyToTest.java      |  6 ++---
 .../apache/camel/component/mail/MailRouteTest.java |  4 ++--
 .../SslContextParametersMailRouteTest.java         |  5 ++--
 16 files changed, 135 insertions(+), 26 deletions(-)

diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
index 38c7795..26c09db 100644
--- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
+++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
@@ -68,6 +68,19 @@
     "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." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" },
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" },
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" },
     "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.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
index 2d87595..753159a 100644
--- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
+++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
@@ -68,6 +68,19 @@
     "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." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" },
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" },
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" },
     "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.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
index 62e9439..5b1478a 100644
--- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
+++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
@@ -68,6 +68,19 @@
     "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." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" },
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" },
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" },
     "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.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
index c5616ae..3e17ef2 100644
--- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
+++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
@@ -68,6 +68,19 @@
     "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." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" },
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" },
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" },
     "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.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
index 81cf60f..b32937f 100644
--- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
+++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
@@ -68,6 +68,19 @@
     "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." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" },
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" },
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" },
     "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.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
index a2ee5d0..7e8d508 100644
--- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
+++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
@@ -68,6 +68,19 @@
     "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." },
     "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" },
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" },
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" },
     "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.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/main/docs/mail-component.adoc b/components/camel-mail/src/main/docs/mail-component.adoc
index 2c6162b..a51c75a 100644
--- a/components/camel-mail/src/main/docs/mail-component.adoc
+++ b/components/camel-mail/src/main/docs/mail-component.adoc
@@ -84,7 +84,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
 
 === Sample endpoints
 
@@ -210,7 +212,7 @@ below demonstrates this:
 The same applies for other MimeMessage headers such as recipients, so
 you can use a header property as `To`:
 
-When using the MailProducer the send the mail to
+When using the MailProducer to send the mail to
 server, you should be able to get the message id of the
 http://java.sun.com/javaee/5/docs/api/javax/mail/internet/MimeMessage.html[MimeMessage]
 with the key `CamelMailMessageId` from the Camel message header.
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
index 936dd05..94290d7 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
@@ -104,7 +104,7 @@ public class MailBinding {
 
         // set the replyTo if it was passed in as an option in the uri. Note: if it is in both the URI
         // and headers the headers win.
-        String replyTo = exchange.getIn().getHeader("Reply-To", String.class);
+        String replyTo = exchange.getIn().getHeader(MailConstants.MAIL_REPLY_TO, String.class);
         if (replyTo == null) {
             replyTo = endpoint.getConfiguration().getReplyTo();
         }
@@ -153,8 +153,8 @@ public class MailBinding {
     protected String determineContentType(MailConfiguration configuration, Exchange exchange) {
         // see if we got any content type set
         String contentType = configuration.getContentType();
-        if (exchange.getIn().getHeader("contentType") != null) {
-            contentType = exchange.getIn().getHeader("contentType", String.class);
+        if (exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE) != null) {
+            contentType = exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE, String.class);
         } else if (exchange.getIn().getHeader(Exchange.CONTENT_TYPE) != null) {
             contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class);
         }
@@ -180,8 +180,8 @@ public class MailBinding {
 
         // see if we got any content type set
         String contentType = configuration.getContentType();
-        if (exchange.getIn().getHeader("contentType") != null) {
-            contentType = exchange.getIn().getHeader("contentType", String.class);
+        if (exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE) != null) {
+            contentType = exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE, String.class);
         } else if (exchange.getIn().getHeader(Exchange.CONTENT_TYPE) != null) {
             contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class);
         }
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
index 7bc2cdb..4a3e7d9 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
@@ -16,11 +16,38 @@
  */
 package org.apache.camel.component.mail;
 
+import org.apache.camel.spi.Metadata;
+
 public final class MailConstants {
 
+    @Metadata(description = "Subject", javaType = "String")
+    public static final String MAIL_SUBJECT = "Subject";
+    @Metadata(description = "From", javaType = "String")
+    public static final String MAIL_FROM = "From";
+    @Metadata(description = "To", javaType = "String")
+    public static final String MAIL_TO = "To";
+    @Metadata(description = "Cc", javaType = "String")
+    public static final String MAIL_CC = "Cc";
+    @Metadata(description = "Bcc", javaType = "String")
+    public static final String MAIL_BCC = "Bcc";
+    @Metadata(description = "Reply to", javaType = "String")
+    public static final String MAIL_REPLY_TO = "Reply-To";
+    @Metadata(description = "The content type", javaType = "String")
+    public static final String MAIL_CONTENT_TYPE = "contentType";
+    @Metadata(label = "consumer",
+              description = "After processing a mail message, it can be copied to a mail folder with the given name.",
+              javaType = "String")
+    public static final String MAIL_COPY_TO = "copyTo";
+    @Metadata(label = "consumer",
+              description = "After processing a mail message, it can be moved to a mail folder with the given name.",
+              javaType = "String")
+    public static final String MAIL_MOVE_TO = "moveTo";
+    @Metadata(label = "consumer", description = "Deletes the messages after they have been processed.", javaType = "boolean")
+    public static final String MAIL_DELETE = "delete";
     public static final String MAIL_ALTERNATIVE_BODY = "CamelMailAlternativeBody";
     public static final String MAIL_DEFAULT_FOLDER = "INBOX";
     public static final String MAIL_DEFAULT_FROM = "camel@localhost";
+    @Metadata(description = "The message ID.", javaType = "String")
     public static final String MAIL_MESSAGE_ID = "CamelMailMessageId";
     public static final int MAIL_DEFAULT_CONNECTION_TIMEOUT = 30000;
 
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
index 1289f42..3c41fdb 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
@@ -493,9 +493,9 @@ public class MailConsumer extends ScheduledBatchPollingConsumer {
             org.apache.camel.Message in = exchange.getIn();
             MailConfiguration config = getEndpoint().getConfiguration();
             // header values override configuration values
-            String copyTo = in.getHeader("copyTo", config.getCopyTo(), String.class);
-            String moveTo = in.getHeader("moveTo", config.getMoveTo(), String.class);
-            boolean delete = in.getHeader("delete", config.isDelete(), boolean.class);
+            String copyTo = in.getHeader(MailConstants.MAIL_COPY_TO, config.getCopyTo(), String.class);
+            String moveTo = in.getHeader(MailConstants.MAIL_MOVE_TO, config.getMoveTo(), String.class);
+            boolean delete = in.getHeader(MailConstants.MAIL_DELETE, config.isDelete(), boolean.class);
 
             copyOrMoveMessageIfRequired(config, mail, copyTo, false);
 
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
index b2e1847..2396fc6 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
@@ -37,7 +37,7 @@ import org.apache.camel.support.ScheduledPollEndpoint;
  */
 @UriEndpoint(firstVersion = "1.0.0", scheme = "imap,imaps,pop3,pop3s,smtp,smtps", title = "IMAP,IMAPS,POP3,POP3S,SMTP,SMTPS",
              syntax = "imap:host:port", alternativeSyntax = "imap:username:password@host:port",
-             category = { Category.MAIL })
+             category = { Category.MAIL }, headersClass = MailConstants.class)
 public class MailEndpoint extends ScheduledPollEndpoint implements HeaderFilterStrategyAware {
 
     @UriParam(defaultValue = "" + MailConsumer.DEFAULT_CONSUMER_DELAY, javaType = "java.time.Duration",
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
index 3b7aaf2..2e2d833 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
@@ -90,7 +90,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
         assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, config.getConnectionTimeout());
@@ -114,7 +114,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
         assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, config.getConnectionTimeout());
@@ -152,7 +152,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
     }
@@ -173,7 +173,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
     }
@@ -197,7 +197,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
         assertFalse(config.isUnseen(), "unseen");
-        assertEquals("text/html", config.getContentType(), "contentType");
+        assertEquals("text/html", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE);
         assertFalse(config.isDebugMode());
     }
 
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
index 364a352..b424527 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
@@ -64,7 +64,7 @@ public class MailCustomContentTypeTest extends CamelTestSupport {
     public void testNullBody() throws Exception {
         Mailbox.clearAll();
 
-        template.sendBodyAndHeader("direct:b", null, "contentType", "text/plain; charset=iso-8859-1");
+        template.sendBodyAndHeader("direct:b", null, MailConstants.MAIL_CONTENT_TYPE, "text/plain; charset=iso-8859-1");
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
@@ -76,7 +76,8 @@ public class MailCustomContentTypeTest extends CamelTestSupport {
     public void testSendPlainMailContentTypeInHeader() throws Exception {
         Mailbox.clearAll();
 
-        template.sendBodyAndHeader("direct:b", "Hello World", "contentType", "text/plain; charset=iso-8859-1");
+        template.sendBodyAndHeader("direct:b", "Hello World", MailConstants.MAIL_CONTENT_TYPE,
+                "text/plain; charset=iso-8859-1");
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
@@ -101,7 +102,7 @@ public class MailCustomContentTypeTest extends CamelTestSupport {
         Mailbox.clearAll();
 
         // Camel will fixup the Content-Type if you do not have a space after the semi colon
-        template.sendBodyAndHeader("direct:b", "Hello World", "contentType", "text/plain;charset=iso-8859-1");
+        template.sendBodyAndHeader("direct:b", "Hello World", MailConstants.MAIL_CONTENT_TYPE, "text/plain;charset=iso-8859-1");
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
index dedae19..8bd9b90 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
@@ -39,10 +39,10 @@ public class MailReplyToTest extends CamelTestSupport {
 
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
-        mock.expectedHeaderReceived("Reply-To", "noReply1@localhost,noReply2@localhost");
+        mock.expectedHeaderReceived(MailConstants.MAIL_REPLY_TO, "noReply1@localhost,noReply2@localhost");
         mock.expectedBodiesReceived(body);
 
-        template.sendBodyAndHeader("direct:a", body, "Reply-To", "noReply1@localhost,noReply2@localhost");
+        template.sendBodyAndHeader("direct:a", body, MailConstants.MAIL_REPLY_TO, "noReply1@localhost,noReply2@localhost");
 
         mock.assertIsSatisfied();
 
@@ -61,7 +61,7 @@ public class MailReplyToTest extends CamelTestSupport {
 
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
-        mock.expectedHeaderReceived("Reply-To", "noReply1@localhost, noReply2@localhost");
+        mock.expectedHeaderReceived(MailConstants.MAIL_REPLY_TO, "noReply1@localhost, noReply2@localhost");
         mock.expectedBodiesReceived(body);
 
         template.sendBody("direct:b", body);
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
index 3bcca89..6aa44c3 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
@@ -49,7 +49,7 @@ public class MailRouteTest extends CamelTestSupport {
         resultEndpoint.expectedBodiesReceived("hello world!");
 
         Map<String, Object> headers = new HashMap<>();
-        headers.put("reply-to", "route-test-reply@localhost");
+        headers.put(MailConstants.MAIL_REPLY_TO, "route-test-reply@localhost");
         template.sendBodyAndHeaders("smtp://route-test-james@localhost", "hello world!", headers);
 
         // lets test the first sent worked
@@ -60,7 +60,7 @@ public class MailRouteTest extends CamelTestSupport {
 
         // Validate that the headers were preserved.
         Exchange exchange = resultEndpoint.getReceivedExchanges().get(0);
-        String replyTo = (String) exchange.getIn().getHeader("reply-to");
+        String replyTo = (String) exchange.getIn().getHeader(MailConstants.MAIL_REPLY_TO);
         assertEquals("route-test-reply@localhost", replyTo);
 
         assertMailboxReceivedMessages("route-test-copy@localhost");
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
index 5d3b4ff..6c50da6 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
@@ -24,6 +24,7 @@ import javax.net.ssl.SSLHandshakeException;
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mail.MailConstants;
 import org.apache.camel.component.mail.MailTestHelper;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.jsse.SSLContextParameters;
@@ -71,7 +72,7 @@ public class SslContextParametersMailRouteTest extends CamelTestSupport {
         Map<String, Object> headers = new HashMap<>();
         headers.put("To", email);
         headers.put("From", email);
-        headers.put("Reply-to", email);
+        headers.put(MailConstants.MAIL_REPLY_TO, email);
         headers.put("Subject", "SSL/TLS Test");
 
         template.sendBodyAndHeaders("direct:in", "Test Email Body", headers);
@@ -95,7 +96,7 @@ public class SslContextParametersMailRouteTest extends CamelTestSupport {
         Map<String, Object> headers = new HashMap<>();
         headers.put("To", email);
         headers.put("From", email);
-        headers.put("Reply-to", email);
+        headers.put(MailConstants.MAIL_REPLY_TO, email);
         headers.put("Subject", "SSL/TLS Test");
 
         try {

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

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 fe3b96d0acfcc5daae7e74e8aec5a25b1b601ffc
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 15:17:36 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mina
---
 .../generated/resources/org/apache/camel/component/mina/mina.json   | 6 ++++++
 components/camel-mina/src/main/docs/mina-component.adoc             | 3 +++
 .../main/java/org/apache/camel/component/mina/MinaConstants.java    | 6 ++++++
 .../src/main/java/org/apache/camel/component/mina/MinaEndpoint.java | 2 +-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/components/camel-mina/src/generated/resources/org/apache/camel/component/mina/mina.json b/components/camel-mina/src/generated/resources/org/apache/camel/component/mina/mina.json
index 93ea093..96ca2a4 100644
--- a/components/camel-mina/src/generated/resources/org/apache/camel/component/mina/mina.json
+++ b/components/camel-mina/src/generated/resources/org/apache/camel/component/mina/mina.json
@@ -51,6 +51,12 @@
     "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." },
     "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": {
+    "CamelMinaCloseSessionWhenComplete": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates whether the session should be closed after complete" },
+    "CamelMinaIoSession": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.apache.mina.core.session.IoSession", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "" },
+    "CamelMinaLocalAddress": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "java.net.SocketAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "" },
+    "CamelMinaRemoteAddress": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "java.net.SocketAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "" }
+  },
   "properties": {
     "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Protocol to use" },
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Hostname to use. Use localhost or 0.0.0.0 for local server as consumer. For producer use the hostname or ip address of the remot [...]
diff --git a/components/camel-mina/src/main/docs/mina-component.adoc b/components/camel-mina/src/main/docs/mina-component.adoc
index a4ca920..95feb8a 100644
--- a/components/camel-mina/src/main/docs/mina-component.adoc
+++ b/components/camel-mina/src/main/docs/mina-component.adoc
@@ -80,6 +80,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Using a custom codec
 
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConstants.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConstants.java
index 10073cc..4b32699 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConstants.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConstants.java
@@ -16,17 +16,23 @@
  */
 package org.apache.camel.component.mina;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Mina constants
  */
 public final class MinaConstants {
 
+    @Metadata(description = "Indicates whether the session should be closed after complete", javaType = "Boolean")
     public static final String MINA_CLOSE_SESSION_WHEN_COMPLETE = "CamelMinaCloseSessionWhenComplete";
     /** The key of the IoSession which is stored in the message header */
+    @Metadata(label = "consumer", javaType = "org.apache.mina.core.session.IoSession")
     public static final String MINA_IOSESSION = "CamelMinaIoSession";
     /** The socket address of local machine that received the message. */
+    @Metadata(label = "consumer", javaType = "java.net.SocketAddress")
     public static final String MINA_LOCAL_ADDRESS = "CamelMinaLocalAddress";
     /** The socket address of the remote machine that send the message. */
+    @Metadata(label = "consumer", javaType = "java.net.SocketAddress")
     public static final String MINA_REMOTE_ADDRESS = "CamelMinaRemoteAddress";
 
     private MinaConstants() {
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
index 416579a..33b2fda 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
@@ -31,7 +31,7 @@ import org.apache.camel.util.ObjectHelper;
  * Socket level networking using TCP or UDP with Apache Mina 2.x.
  */
 @UriEndpoint(firstVersion = "2.10.0", scheme = "mina", title = "Mina", syntax = "mina:protocol:host:port",
-             category = { Category.NETWORKING, Category.TCP, Category.UDP })
+             category = { Category.NETWORKING, Category.TCP, Category.UDP }, headersClass = MinaConstants.class)
 public class MinaEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
 
     @UriParam

[camel] 18/18: CAMEL-17792: Add doc about the message headers of camel-mybatis

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 9b7457e068744db6031e36515a55c0f5ea78b617
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 19:25:11 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mybatis
---
 .../apache/camel/component/mybatis/mybatis-bean.json  |  3 +++
 .../org/apache/camel/component/mybatis/mybatis.json   |  4 ++++
 .../src/main/docs/mybatis-bean-component.adoc         | 19 +++----------------
 .../src/main/docs/mybatis-component.adoc              | 18 +++---------------
 .../camel/component/mybatis/MyBatisBeanEndpoint.java  |  7 +++++--
 .../camel/component/mybatis/MyBatisConstants.java     | 13 ++++++++++++-
 .../camel/component/mybatis/MyBatisEndpoint.java      |  6 ++++--
 7 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis-bean.json b/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis-bean.json
index bd668fc..2789ffc 100644
--- a/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis-bean.json
+++ b/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis-bean.json
@@ -27,6 +27,9 @@
     "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 [...]
     "sqlSessionFactory": { "kind": "property", "displayName": "Sql Session Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.ibatis.session.SqlSessionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the SqlSessionFactory" }
   },
+  "headers": {
+    "CamelMyBatisResult": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The *response* returned from MtBatis in any of the operations. For\ninstance an `INSERT` could return the auto-generated key, or number of\nrows etc." }
+  },
   "properties": {
     "beanName": { "kind": "path", "displayName": "Bean Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the bean with the MyBatis annotations. This can either by a type alias or a FQN class name." },
     "methodName": { "kind": "path", "displayName": "Method Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the method on the bean that has the SQL query to be executed." },
diff --git a/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis.json b/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis.json
index ad1c669..fc12f598 100644
--- a/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis.json
+++ b/components/camel-mybatis/src/generated/resources/org/apache/camel/component/mybatis/mybatis.json
@@ -28,6 +28,10 @@
     "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 [...]
     "sqlSessionFactory": { "kind": "property", "displayName": "Sql Session Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.ibatis.session.SqlSessionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the SqlSessionFactory" }
   },
+  "headers": {
+    "CamelMyBatisResult": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The *response* returned from MtBatis in any of the operations. For\ninstance an `INSERT` could return the auto-generated key, or number of\nrows etc." },
+    "CamelMyBatisStatementName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The *statementName* used (for example: insertAccount)." }
+  },
   "properties": {
     "statement": { "kind": "path", "displayName": "Statement", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The statement name in the MyBatis XML mapping file which maps to the query, insert, update or delete operation you wish to evaluate." },
     "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-mybatis/src/main/docs/mybatis-bean-component.adoc b/components/camel-mybatis/src/main/docs/mybatis-bean-component.adoc
index 6948fa1..b35516d9 100644
--- a/components/camel-mybatis/src/main/docs/mybatis-bean-component.adoc
+++ b/components/camel-mybatis/src/main/docs/mybatis-bean-component.adoc
@@ -51,22 +51,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
-
-
-== Message Headers
-
-Camel will populate the result message, either IN or OUT with a header
-with the statement used:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|===
-|Header |Type |Description
-
-|`CamelMyBatisResult` |`Object` |The *response* returned from MtBatis in any of the operations. For
-instance an `INSERT` could return the auto-generated key, or number of
-rows etc.
-|===
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Message Body
 
diff --git a/components/camel-mybatis/src/main/docs/mybatis-component.adoc b/components/camel-mybatis/src/main/docs/mybatis-component.adoc
index 66bc481..2abe322 100644
--- a/components/camel-mybatis/src/main/docs/mybatis-component.adoc
+++ b/components/camel-mybatis/src/main/docs/mybatis-component.adoc
@@ -62,23 +62,11 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 
-== Message Headers
-
-Camel will populate the result message, either IN or OUT with a header
-with the statement used:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelMyBatisStatementName` |`String` |The *statementName* used (for example: insertAccount).
-
-|`CamelMyBatisResult` |`Object` |The *response* returned from MtBatis in any of the operations. For
-instance an `INSERT` could return the auto-generated key, or number of
-rows etc.
-|=======================================================================
 
 == Message Body
 
diff --git a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisBeanEndpoint.java b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisBeanEndpoint.java
index 6470913..0aadbff 100644
--- a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisBeanEndpoint.java
+++ b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisBeanEndpoint.java
@@ -25,11 +25,14 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 
+import static org.apache.camel.component.mybatis.MyBatisConstants.SCHEME_MYBATIS_BEAN;
+
 /**
  * Perform queries, inserts, updates or deletes in a relational database using MyBatis.
  */
-@UriEndpoint(firstVersion = "2.22.0", scheme = "mybatis-bean", title = "MyBatis Bean",
-             syntax = "mybatis-bean:beanName:methodName", producerOnly = true, category = { Category.DATABASE, Category.SQL })
+@UriEndpoint(firstVersion = "2.22.0", scheme = SCHEME_MYBATIS_BEAN, title = "MyBatis Bean",
+             syntax = "mybatis-bean:beanName:methodName", producerOnly = true, category = { Category.DATABASE, Category.SQL },
+             headersClass = MyBatisConstants.class)
 public class MyBatisBeanEndpoint extends BaseMyBatisEndpoint {
 
     @UriPath
diff --git a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisConstants.java b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisConstants.java
index 0f4e56c..7266f8e 100644
--- a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisConstants.java
+++ b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisConstants.java
@@ -16,13 +16,24 @@
  */
 package org.apache.camel.component.mybatis;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * MyBatis constants.
  */
 public final class MyBatisConstants {
 
-    public static final String MYBATIS_RESULT = "CamelMyBatisResult";
+    // The schemes
+    public static final String SCHEME_MYBATIS_BEAN = "mybatis-bean";
+    public static final String SCHEME_MYBATIS = "mybatis";
 
+    @Metadata(label = "producer", description = "The *response* returned from MtBatis in any of the operations. For\n" +
+                                                "instance an `INSERT` could return the auto-generated key, or number of\n" +
+                                                "rows etc.",
+              javaType = "Object")
+    public static final String MYBATIS_RESULT = "CamelMyBatisResult";
+    @Metadata(description = "The *statementName* used (for example: insertAccount).", javaType = "String",
+              applicableFor = SCHEME_MYBATIS)
     public static final String MYBATIS_STATEMENT_NAME = "CamelMyBatisStatementName";
 
     private MyBatisConstants() {
diff --git a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
index b1541c7..a0f8c66 100644
--- a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
+++ b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
@@ -27,11 +27,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
 
+import static org.apache.camel.component.mybatis.MyBatisConstants.SCHEME_MYBATIS;
+
 /**
  * Performs a query, poll, insert, update or delete in a relational database using MyBatis.
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = "mybatis", title = "MyBatis", syntax = "mybatis:statement",
-             category = { Category.DATABASE, Category.SQL })
+@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_MYBATIS, title = "MyBatis", syntax = "mybatis:statement",
+             category = { Category.DATABASE, Category.SQL }, headersClass = MyBatisConstants.class)
 public class MyBatisEndpoint extends BaseMyBatisEndpoint {
 
     @UriPath

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

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 039c61449dca6aed1b538893f05392de1a97f2fb
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 10:45:40 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-kudu
---
 .../src/generated/resources/org/apache/camel/component/kudu/kudu.json | 4 ++++
 components/camel-kudu/src/main/docs/kudu-component.adoc               | 4 +++-
 .../src/main/java/org/apache/camel/component/kudu/KuduConstants.java  | 4 ++++
 .../src/main/java/org/apache/camel/component/kudu/KuduEndpoint.java   | 3 ++-
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/components/camel-kudu/src/generated/resources/org/apache/camel/component/kudu/kudu.json b/components/camel-kudu/src/generated/resources/org/apache/camel/component/kudu/kudu.json
index 1c09dc1c5..bfb4360 100644
--- a/components/camel-kudu/src/generated/resources/org/apache/camel/component/kudu/kudu.json
+++ b/components/camel-kudu/src/generated/resources/org/apache/camel/component/kudu/kudu.json
@@ -25,6 +25,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": {
+    "CamelKuduSchema": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.apache.kudu.Schema", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The schema" },
+    "CamelKuduTableOptions": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.apache.kudu.client.CreateTableOptions", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The create table options" }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Host of the server to connect to" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Port of the server to connect to" },
diff --git a/components/camel-kudu/src/main/docs/kudu-component.adoc b/components/camel-kudu/src/main/docs/kudu-component.adoc
index 7274f02..036818e 100644
--- a/components/camel-kudu/src/main/docs/kudu-component.adoc
+++ b/components/camel-kudu/src/main/docs/kudu-component.adoc
@@ -32,7 +32,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
 
 == Input Body formats
 
diff --git a/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduConstants.java b/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduConstants.java
index fbc91d6..ebf4a60 100644
--- a/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduConstants.java
+++ b/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduConstants.java
@@ -16,8 +16,12 @@
  */
 package org.apache.camel.component.kudu;
 
+import org.apache.camel.spi.Metadata;
+
 public final class KuduConstants {
+    @Metadata(description = "The schema", javaType = "org.apache.kudu.Schema")
     public static final String CAMEL_KUDU_SCHEMA = "CamelKuduSchema";
+    @Metadata(description = "The create table options", javaType = "org.apache.kudu.client.CreateTableOptions")
     public static final String CAMEL_KUDU_TABLE_OPTIONS = "CamelKuduTableOptions";
 
     private KuduConstants() {
diff --git a/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduEndpoint.java b/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduEndpoint.java
index 42a3b74..afa11f9 100644
--- a/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduEndpoint.java
+++ b/components/camel-kudu/src/main/java/org/apache/camel/component/kudu/KuduEndpoint.java
@@ -38,7 +38,8 @@ import org.slf4j.LoggerFactory;
 @UriEndpoint(firstVersion = "3.0",
              scheme = "kudu",
              title = "Kudu", syntax = "kudu:host:port/tableName",
-             category = { Category.DATABASE, Category.IOT, Category.CLOUD }, producerOnly = true)
+             category = { Category.DATABASE, Category.IOT, Category.CLOUD }, producerOnly = true,
+             headersClass = KuduConstants.class)
 public class KuduEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(KuduEndpoint.class);

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

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 0f3e8b6187d2d6c5e86aa01db01c5fb9c332265d
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 10:33:18 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-kubernetes
---
 .../config_maps/kubernetes-config-maps.json        |   9 ++
 .../kubernetes-custom-resources.json               |  15 +++
 .../deployments/kubernetes-deployments.json        |  10 ++
 .../component/kubernetes/hpa/kubernetes-hpa.json   |   9 ++
 .../component/kubernetes/job/kubernetes-job.json   |   7 +
 .../namespaces/kubernetes-namespaces.json          |   7 +
 .../kubernetes/nodes/kubernetes-nodes.json         |   8 ++
 .../kubernetes-persistent-volumes.json             |   5 +
 .../kubernetes-persistent-volumes-claims.json      |   7 +
 .../component/kubernetes/pods/kubernetes-pods.json |   9 ++
 .../kubernetes-replication-controllers.json        |  10 ++
 .../kubernetes-resources-quota.json                |   7 +
 .../kubernetes/secrets/kubernetes-secrets.json     |   7 +
 .../kubernetes-service-accounts.json               |   7 +
 .../kubernetes/services/kubernetes-services.json   |   9 ++
 .../build_configs/openshift-build-configs.json     |   6 +
 .../openshift/builds/openshift-builds.json         |   6 +
 .../docs/kubernetes-config-maps-component.adoc     |   4 +
 .../kubernetes-custom-resources-component.adoc     |   3 +
 .../docs/kubernetes-deployments-component.adoc     |   3 +
 .../src/main/docs/kubernetes-hpa-component.adoc    |   3 +
 .../src/main/docs/kubernetes-job-component.adoc    |   3 +
 .../main/docs/kubernetes-namespaces-component.adoc |   3 +
 .../src/main/docs/kubernetes-nodes-component.adoc  |   4 +-
 ...rnetes-persistent-volumes-claims-component.adoc |   4 +-
 .../kubernetes-persistent-volumes-component.adoc   |   4 +-
 .../src/main/docs/kubernetes-pods-component.adoc   |   4 +-
 ...bernetes-replication-controllers-component.adoc |   4 +-
 .../docs/kubernetes-resources-quota-component.adoc |   4 +-
 .../main/docs/kubernetes-secrets-component.adoc    |   4 +-
 .../kubernetes-service-accounts-component.adoc     |   4 +-
 .../main/docs/kubernetes-services-component.adoc   |   4 +-
 .../src/main/docs/kubernetes-summary.adoc          |  84 ------------
 .../docs/openshift-build-configs-component.adoc    |   4 +-
 .../src/main/docs/openshift-builds-component.adoc  |   3 +
 .../component/kubernetes/KubernetesConstants.java  | 141 ++++++++++++++++++++-
 .../config_maps/KubernetesConfigMapsEndpoint.java  |   7 +-
 .../KubernetesCustomResourcesEndpoint.java         |   8 +-
 .../deployments/KubernetesDeploymentsEndpoint.java |   8 +-
 .../kubernetes/hpa/KubernetesHPAEndpoint.java      |   7 +-
 .../kubernetes/job/KubernetesJobEndpoint.java      |   7 +-
 .../namespaces/KubernetesNamespacesEndpoint.java   |   8 +-
 .../kubernetes/nodes/KubernetesNodesEndpoint.java  |   8 +-
 .../KubernetesPersistentVolumesEndpoint.java       |   8 +-
 .../KubernetesPersistentVolumesClaimsEndpoint.java |   7 +-
 .../kubernetes/pods/KubernetesPodsEndpoint.java    |   8 +-
 .../KubernetesReplicationControllersEndpoint.java  |   7 +-
 .../KubernetesResourcesQuotaEndpoint.java          |   7 +-
 .../secrets/KubernetesSecretsEndpoint.java         |   7 +-
 .../KubernetesServiceAccountsEndpoint.java         |   7 +-
 .../services/KubernetesServicesEndpoint.java       |   8 +-
 .../OpenshiftBuildConfigsEndpoint.java             |   8 +-
 .../openshift/builds/OpenshiftBuildsEndpoint.java  |   8 +-
 53 files changed, 424 insertions(+), 129 deletions(-)

diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
index 8bb16b2..05f5717 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/config_maps/kubernetes-config-maps.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesConfigMapsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ConfigMap labels" },
+    "CamelKubernetesConfigMapName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ConfigMap name" },
+    "CamelKubernetesConfigData": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ConfigMap Data" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
index fe20dbe..1770e9d 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/customresources/kubernetes-custom-resources.json
@@ -26,6 +26,21 @@
     "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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesCRDInstanceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The deployment name" },
+    "CamelKubernetesCRDEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" },
+    "CamelKubernetesCRDEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesCRDName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Consumer CRD Resource name we would like to watch" },
+    "CamelKubernetesCRDGroup": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Consumer CRD Resource Group we would like to watch" },
+    "CamelKubernetesCRDScope": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Consumer CRD Resource Scope we would like to watch" },
+    "CamelKubernetesCRDVersion": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Consumer CRD Resource Version we would like to watch" },
+    "CamelKubernetesCRDPlural": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Consumer CRD Resource Plural we would like to watch" },
+    "CamelKubernetesCRDLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The CRD resource labels" },
+    "CamelKubernetesCRDInstance": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The manifest of the CRD resource to create as JSON string" },
+    "CamelKubernetesDeleteResult": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The result of the delete operation" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
index bc33884..42a8b74 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
@@ -26,6 +26,16 @@
     "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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesDeploymentsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The deployment labels" },
+    "CamelKubernetesDeploymentName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The deployment name" },
+    "CamelKubernetesDeploymentSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.apps.DeploymentSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a deployment" },
+    "CamelKubernetesDeploymentReplicas": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The desired instance count" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
index 8b06712..7451d56 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/hpa/kubernetes-hpa.json
@@ -26,6 +26,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesHPAName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HPA name." },
+    "CamelKubernetesHPASpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscalerSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a HPA." },
+    "CamelKubernetesHPALabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HPA labels." },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/job/kubernetes-job.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/job/kubernetes-job.json
index 3934bd5..e9bf906 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/job/kubernetes-job.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/job/kubernetes-job.json
@@ -26,6 +26,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesJobName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Job name." },
+    "CamelKubernetesJobSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.batch.v1.JobSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a Job." },
+    "CamelKubernetesJobLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Job labels." }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
index 8fe7506..7be17ef 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/namespaces/kubernetes-namespaces.json
@@ -26,6 +26,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesNamespaceLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace labels" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
index 0c4e8d8..47ce634 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/nodes/kubernetes-nodes.json
@@ -26,6 +26,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNodesLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The node labels" },
+    "CamelKubernetesNodeName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The node name" },
+    "CamelKubernetesNodeSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.NodeSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a node" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json
index afd37e2..0767e97 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes/kubernetes-persistent-volumes.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesPersistentVolumesLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The persistent volume labels" },
+    "CamelKubernetesPersistentVolumeName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The persistent volume name" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
index 6c2981a..eac9c26 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/persistent_volumes_claims/kubernetes-persistent-volumes-claims.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesPersistentVolumesClaimsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The persistent volume claim labels" },
+    "CamelKubernetesPersistentVolumeClaimName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The persistent volume claim name" },
+    "CamelKubernetesPersistentVolumeClaimSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a persistent volume claim" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
index 60b44b3..6528118 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/pods/kubernetes-pods.json
@@ -26,6 +26,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesPodsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The pod labels" },
+    "CamelKubernetesPodName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The pod name" },
+    "CamelKubernetesPodSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.PodSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a pod" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.json
index 1664c53..939c2ef 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/replication_controllers/kubernetes-replication-controllers.json
@@ -26,6 +26,16 @@
     "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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesReplicationControllersLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The replication controller labels" },
+    "CamelKubernetesReplicationControllerName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The replication controller name" },
+    "CamelKubernetesReplicationControllerSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a replication controller" },
+    "CamelKubernetesReplicationControllerReplicas": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of replicas for a replication controller during the Scale operation" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json
index a98d1ad..eed04b5 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/resources_quota/kubernetes-resources-quota.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesResourcesQuotaLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The resource quota labels" },
+    "CamelKubernetesResourcesQuotaName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The resource quota name" },
+    "CamelKubernetesResourceQuotaSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a resource quota" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json
index 4d8781f..fb706a6 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/secrets/kubernetes-secrets.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesSecretsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The secret labels" },
+    "CamelKubernetesSecretName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The secret name" },
+    "CamelKubernetesSecret": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.Secret", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A secret object" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json
index b317448..df63dd9 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/service_accounts/kubernetes-service-accounts.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesServiceAccountsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The service account labels" },
+    "CamelKubernetesServiceAccountName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The service account name" },
+    "CamelKubernetesServiceAccount": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A service account object" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/services/kubernetes-services.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/services/kubernetes-services.json
index 0712f7d..019dbda 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/services/kubernetes-services.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/services/kubernetes-services.json
@@ -26,6 +26,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesServiceLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The service labels" },
+    "CamelKubernetesServiceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The service name" },
+    "CamelKubernetesServiceSpec": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.ServiceSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec of a service" },
+    "CamelKubernetesEventAction": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", "MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Action watched by the consumer" },
+    "CamelKubernetesEventTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Timestamp of the action watched by the consumer" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json
index ce31a3b..3523f4a 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/build_configs/openshift-build-configs.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesBuildConfigsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Openshift Config Build labels" },
+    "CamelKubernetesBuildConfigName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Openshift Config Build name" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/builds/openshift-builds.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/builds/openshift-builds.json
index 891c908..b8728ff 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/builds/openshift-builds.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/openshift/builds/openshift-builds.json
@@ -25,6 +25,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": {
+    "CamelKubernetesOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation" },
+    "CamelKubernetesNamespaceName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The namespace name" },
+    "CamelKubernetesBuildsLabels": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Openshift build labels" },
+    "CamelKubernetesBuildName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Openshift build name" }
+  },
   "properties": {
     "masterUrl": { "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc
index e8b1896..2847ae9 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc
@@ -31,6 +31,10 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
+
 == Supported producer operation
 
 - listConfigMaps
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-custom-resources-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-custom-resources-component.adoc
index d88c7e8..6c1d034 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-custom-resources-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-custom-resources-component.adoc
@@ -31,6 +31,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-deployments-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-deployments-component.adoc
index f72ddb8..bd2cd9d 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-deployments-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-deployments-component.adoc
@@ -30,6 +30,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-hpa-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-hpa-component.adoc
index 99067c2..eb4a8a7 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-hpa-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-hpa-component.adoc
@@ -30,6 +30,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
index 4b88450..4976319 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
@@ -31,6 +31,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc
index 3d43350..bf95acf 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc
@@ -31,6 +31,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc
index 35197ee..1f87d1e 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc
index 6381de2..742279f 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc
index 30e1f5f..ff0b458 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc
index fbb5f39..b399b71 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc
index 4404f02..d686cd1 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc
@@ -31,7 +31,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc
index e1dd453..0da5529 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc
index 2a077e0..36f4e96 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-service-accounts-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-service-accounts-component.adoc
index e9fc7a9..4d1175c 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-service-accounts-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-service-accounts-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc
index 791ac04..3779459 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-summary.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-summary.adoc
index 95e708b..f6922f8 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-summary.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-summary.adoc
@@ -31,90 +31,6 @@ their `pom.xml` for this component:
 ------------------------------------------------------------
 
 
-== Headers
-
-[width="100%",options="header"]
-|=======================================================================
-|Name |Type |Description
-
-|CamelKubernetesOperation |String |The Producer operation
-
-|CamelKubernetesNamespaceName |String |The Namespace name
-
-|CamelKubernetesNamespaceLabels |Map |The Namespace Labels
-
-|CamelKubernetesServiceLabels |Map |The Service labels
-
-|CamelKubernetesServiceName |String |The Service name
-
-|CamelKubernetesServiceSpec |io.fabric8.kubernetes.api.model.ServiceSpec |The Spec for a Service
-
-|CamelKubernetesReplicationControllersLabels |Map |Replication controller labels
-
-|CamelKubernetesReplicationControllerName |String |Replication controller name
-
-|CamelKubernetesReplicationControllerSpec |io.fabric8.kubernetes.api.model.ReplicationControllerSpec |The Spec for a Replication Controller
-
-|CamelKubernetesReplicationControllerReplicas |Integer |The number of replicas for a Replication Controller during the Scale operation
-
-|CamelKubernetesPodsLabels |Map |Pod labels
-
-|CamelKubernetesPodName |String |Pod name
-
-|CamelKubernetesPodSpec |io.fabric8.kubernetes.api.model.PodSpec |The Spec for a Pod
-
-|CamelKubernetesPersistentVolumesLabels |Map |Persistent Volume labels
-
-|CamelKubernetesPersistentVolumesName |String |Persistent Volume name
-
-|CamelKubernetesPersistentVolumesClaimsLabels |Map |Persistent Volume Claim labels
-
-|CamelKubernetesPersistentVolumesClaimsName |String |Persistent Volume Claim name
-
-|CamelKubernetesPersistentVolumesClaimsSpec |io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec |The Spec for a Persistent Volume claim
-
-|CamelKubernetesSecretsLabels |Map |Secret labels
-
-|CamelKubernetesSecretsName |String |Secret name
-
-|CamelKubernetesSecret |io.fabric8.kubernetes.api.model.Secret |A Secret Object
-
-|CamelKubernetesResourcesQuotaLabels |Map |Resource Quota labels
-
-|CamelKubernetesResourcesQuotaName |String |Resource Quota name
-
-|CamelKubernetesResourceQuotaSpec |io.fabric8.kubernetes.api.model.ResourceQuotaSpec |The Spec for a Resource Quota
-
-|CamelKubernetesServiceAccountsLabels |Map |Service Account labels
-
-|CamelKubernetesServiceAccountName |String |Service Account name
-
-|CamelKubernetesServiceAccount |io.fabric8.kubernetes.api.model.ServiceAccount |A Service Account object
-
-|CamelKubernetesNodesLabels |Map |Node labels
-
-|CamelKubernetesNodeName |String |Node name
-
-|CamelKubernetesBuildsLabels |Map |Openshift Build labels
-
-|CamelKubernetesBuildName |String |Openshift Build name
-
-|CamelKubernetesBuildConfigsLabels |Map |Openshift Build Config labels
-
-|CamelKubernetesBuildConfigName |String |Openshift Build Config name
-
-|CamelKubernetesEventAction |io.fabric8.kubernetes.client.Watcher.Action |Action watched by the consumer
-
-|CamelKubernetesEventTimestamp |String |Timestamp of the action watched by the consumer
-
-|CamelKubernetesConfigMapName |String |ConfigMap name
-
-|CamelKubernetesConfigMapsLabels |Map |ConfigMap labels
-
-|CamelKubernetesConfigData |Map |ConfigMap Data
-|=======================================================================
-
-
 == Usage
 
 === Producer examples
diff --git a/components/camel-kubernetes/src/main/docs/openshift-build-configs-component.adoc b/components/camel-kubernetes/src/main/docs/openshift-build-configs-component.adoc
index 1e16fb4..aa472ab 100644
--- a/components/camel-kubernetes/src/main/docs/openshift-build-configs-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/openshift-build-configs-component.adoc
@@ -30,7 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/docs/openshift-builds-component.adoc b/components/camel-kubernetes/src/main/docs/openshift-builds-component.adoc
index 1911088..f1c4d03 100644
--- a/components/camel-kubernetes/src/main/docs/openshift-builds-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/openshift-builds-component.adoc
@@ -30,6 +30,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
 
 == Supported producer operation
 
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
index cdcbea4f..636be73 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
@@ -16,70 +16,209 @@
  */
 package org.apache.camel.component.kubernetes;
 
+import org.apache.camel.spi.Metadata;
+
 public final class KubernetesConstants {
+    // Schemes
+    public static final String SCHEME_CONFIG_MAPS = "kubernetes-config-maps";
+    public static final String SCHEME_CUSTOM_RESOURCES = "kubernetes-custom-resources";
+    public static final String SCHEME_DEPLOYMENTS = "kubernetes-deployments";
+    public static final String SCHEME_HPA = "kubernetes-hpa";
+    public static final String SCHEME_JOB = "kubernetes-job";
+    public static final String SCHEME_NAMESPACES = "kubernetes-namespaces";
+    public static final String SCHEME_NODES = "kubernetes-nodes";
+    public static final String SCHEME_PERSISTENT_VOLUMES = "kubernetes-persistent-volumes";
+    public static final String SCHEME_PERSISTENT_VOLUMES_CLAIMS = "kubernetes-persistent-volumes-claims";
+    public static final String SCHEME_PODS = "kubernetes-pods";
+    public static final String SCHEME_REPLICATION_CONTROLLERS = "kubernetes-replication-controllers";
+    public static final String SCHEME_RESOURCES_QUOTA = "kubernetes-resources-quota";
+    public static final String SCHEME_SECRETS = "kubernetes-secrets";
+    public static final String SCHEME_SERVICE_ACCOUNTS = "kubernetes-service-accounts";
+    public static final String SCHEME_SERVICES = "kubernetes-services";
+    public static final String SCHEME_BUILD_CONFIG = "openshift-build-configs";
+    public static final String SCHEME_BUILDS = "openshift-builds";
     // Producer
+    @Metadata(label = "producer", description = "The Producer operation", javaType = "String")
     public static final String KUBERNETES_OPERATION = "CamelKubernetesOperation";
+    @Metadata(label = "producer", description = "The namespace name", javaType = "String",
+              applicableFor = {
+                      SCHEME_CONFIG_MAPS, SCHEME_CUSTOM_RESOURCES, SCHEME_DEPLOYMENTS,
+                      SCHEME_HPA, SCHEME_JOB, SCHEME_NAMESPACES, SCHEME_PERSISTENT_VOLUMES_CLAIMS, SCHEME_PODS,
+                      SCHEME_REPLICATION_CONTROLLERS, SCHEME_RESOURCES_QUOTA, SCHEME_SECRETS, SCHEME_SERVICE_ACCOUNTS,
+                      SCHEME_SERVICES, SCHEME_BUILD_CONFIG, SCHEME_BUILDS })
     public static final String KUBERNETES_NAMESPACE_NAME = "CamelKubernetesNamespaceName";
+    @Metadata(label = "producer", description = "The namespace labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_NAMESPACES)
     public static final String KUBERNETES_NAMESPACE_LABELS = "CamelKubernetesNamespaceLabels";
+    @Metadata(label = "producer", description = "The service labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_SERVICES)
     public static final String KUBERNETES_SERVICE_LABELS = "CamelKubernetesServiceLabels";
+    @Metadata(label = "producer", description = "The service name", javaType = "String", applicableFor = SCHEME_SERVICES)
     public static final String KUBERNETES_SERVICE_NAME = "CamelKubernetesServiceName";
+    @Metadata(label = "producer", description = "The spec of a service",
+              javaType = "io.fabric8.kubernetes.api.model.ServiceSpec", applicableFor = SCHEME_SERVICES)
     public static final String KUBERNETES_SERVICE_SPEC = "CamelKubernetesServiceSpec";
+    @Metadata(label = "producer", description = "The replication controller labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_REPLICATION_CONTROLLERS)
     public static final String KUBERNETES_REPLICATION_CONTROLLERS_LABELS = "CamelKubernetesReplicationControllersLabels";
+    @Metadata(label = "producer", description = "The replication controller name", javaType = "String",
+              applicableFor = SCHEME_REPLICATION_CONTROLLERS)
     public static final String KUBERNETES_REPLICATION_CONTROLLER_NAME = "CamelKubernetesReplicationControllerName";
+    @Metadata(label = "producer", description = "The spec for a replication controller",
+              javaType = "io.fabric8.kubernetes.api.model.ReplicationControllerSpec",
+              applicableFor = SCHEME_REPLICATION_CONTROLLERS)
     public static final String KUBERNETES_REPLICATION_CONTROLLER_SPEC = "CamelKubernetesReplicationControllerSpec";
+    @Metadata(label = "producer",
+              description = "The number of replicas for a replication controller during the Scale operation",
+              javaType = "Integer", applicableFor = SCHEME_REPLICATION_CONTROLLERS)
     public static final String KUBERNETES_REPLICATION_CONTROLLER_REPLICAS = "CamelKubernetesReplicationControllerReplicas";
+    @Metadata(label = "producer", description = "The pod labels", javaType = "Map<String, String>", applicableFor = SCHEME_PODS)
     public static final String KUBERNETES_PODS_LABELS = "CamelKubernetesPodsLabels";
+    @Metadata(label = "producer", description = "The pod name", javaType = "String", applicableFor = SCHEME_PODS)
     public static final String KUBERNETES_POD_NAME = "CamelKubernetesPodName";
+    @Metadata(label = "producer", description = "The spec for a pod", javaType = "io.fabric8.kubernetes.api.model.PodSpec",
+              applicableFor = SCHEME_PODS)
     public static final String KUBERNETES_POD_SPEC = "CamelKubernetesPodSpec";
+    @Metadata(label = "producer", description = "The persistent volume labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_PERSISTENT_VOLUMES)
     public static final String KUBERNETES_PERSISTENT_VOLUMES_LABELS = "CamelKubernetesPersistentVolumesLabels";
+    @Metadata(label = "producer", description = "The persistent volume name", javaType = "String",
+              applicableFor = SCHEME_PERSISTENT_VOLUMES)
     public static final String KUBERNETES_PERSISTENT_VOLUME_NAME = "CamelKubernetesPersistentVolumeName";
+    @Metadata(label = "producer", description = "The persistent volume claim labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_PERSISTENT_VOLUMES_CLAIMS)
     public static final String KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS = "CamelKubernetesPersistentVolumesClaimsLabels";
+    @Metadata(label = "producer", description = "The persistent volume claim name", javaType = "String",
+              applicableFor = SCHEME_PERSISTENT_VOLUMES_CLAIMS)
     public static final String KUBERNETES_PERSISTENT_VOLUME_CLAIM_NAME = "CamelKubernetesPersistentVolumeClaimName";
+    @Metadata(label = "producer", description = "The spec for a persistent volume claim",
+              javaType = "io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec",
+              applicableFor = SCHEME_PERSISTENT_VOLUMES_CLAIMS)
     public static final String KUBERNETES_PERSISTENT_VOLUME_CLAIM_SPEC = "CamelKubernetesPersistentVolumeClaimSpec";
+    @Metadata(label = "producer", description = "The secret labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_SECRETS)
     public static final String KUBERNETES_SECRETS_LABELS = "CamelKubernetesSecretsLabels";
+    @Metadata(label = "producer", description = "The secret name", javaType = "String", applicableFor = SCHEME_SECRETS)
     public static final String KUBERNETES_SECRET_NAME = "CamelKubernetesSecretName";
+    @Metadata(label = "producer", description = "A secret object", javaType = "io.fabric8.kubernetes.api.model.Secret",
+              applicableFor = SCHEME_SECRETS)
     public static final String KUBERNETES_SECRET = "CamelKubernetesSecret";
+    @Metadata(label = "producer", description = "The resource quota labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_RESOURCES_QUOTA)
     public static final String KUBERNETES_RESOURCES_QUOTA_LABELS = "CamelKubernetesResourcesQuotaLabels";
+    @Metadata(label = "producer", description = "The resource quota name", javaType = "String",
+              applicableFor = SCHEME_RESOURCES_QUOTA)
     public static final String KUBERNETES_RESOURCES_QUOTA_NAME = "CamelKubernetesResourcesQuotaName";
+    @Metadata(label = "producer", description = "The spec for a resource quota",
+              javaType = "io.fabric8.kubernetes.api.model.ResourceQuotaSpec", applicableFor = SCHEME_RESOURCES_QUOTA)
     public static final String KUBERNETES_RESOURCE_QUOTA_SPEC = "CamelKubernetesResourceQuotaSpec";
+    @Metadata(label = "producer", description = "The service account labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_SERVICE_ACCOUNTS)
     public static final String KUBERNETES_SERVICE_ACCOUNTS_LABELS = "CamelKubernetesServiceAccountsLabels";
+    @Metadata(label = "producer", description = "The service account name", javaType = "String",
+              applicableFor = SCHEME_SERVICE_ACCOUNTS)
     public static final String KUBERNETES_SERVICE_ACCOUNT_NAME = "CamelKubernetesServiceAccountName";
+    @Metadata(label = "producer", description = "A service account object",
+              javaType = "io.fabric8.kubernetes.api.model.ServiceAccount", applicableFor = SCHEME_SERVICE_ACCOUNTS)
     public static final String KUBERNETES_SERVICE_ACCOUNT = "CamelKubernetesServiceAccount";
+    @Metadata(label = "producer", description = "The node labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_NODES)
     public static final String KUBERNETES_NODES_LABELS = "CamelKubernetesNodesLabels";
+    @Metadata(label = "producer", description = "The node name", javaType = "String", applicableFor = SCHEME_NODES)
     public static final String KUBERNETES_NODE_NAME = "CamelKubernetesNodeName";
+    @Metadata(label = "producer", description = "The spec for a node", javaType = "io.fabric8.kubernetes.api.model.NodeSpec",
+              applicableFor = SCHEME_NODES)
     public static final String KUBERNETES_NODE_SPEC = "CamelKubernetesNodeSpec";
+    @Metadata(label = "producer", description = "The deployment labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_DEPLOYMENTS)
     public static final String KUBERNETES_DEPLOYMENTS_LABELS = "CamelKubernetesDeploymentsLabels";
+    @Metadata(label = "producer", description = "The deployment name", javaType = "String", applicableFor = SCHEME_DEPLOYMENTS)
     public static final String KUBERNETES_DEPLOYMENT_NAME = "CamelKubernetesDeploymentName";
+    @Metadata(label = "producer", description = "The spec for a deployment",
+              javaType = "io.fabric8.kubernetes.api.model.apps.DeploymentSpec", applicableFor = SCHEME_DEPLOYMENTS)
     public static final String KUBERNETES_DEPLOYMENT_SPEC = "CamelKubernetesDeploymentSpec";
+    @Metadata(label = "producer", description = "The ConfigMap labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_CONFIG_MAPS)
     public static final String KUBERNETES_CONFIGMAPS_LABELS = "CamelKubernetesConfigMapsLabels";
+    @Metadata(label = "producer", description = "The ConfigMap name", javaType = "String", applicableFor = SCHEME_CONFIG_MAPS)
     public static final String KUBERNETES_CONFIGMAP_NAME = "CamelKubernetesConfigMapName";
+    @Metadata(label = "producer", description = "The ConfigMap Data", javaType = "Map<String, String>",
+              applicableFor = SCHEME_CONFIG_MAPS)
     public static final String KUBERNETES_CONFIGMAP_DATA = "CamelKubernetesConfigData";
+    @Metadata(label = "producer", description = "The Openshift build labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_BUILDS)
     public static final String KUBERNETES_BUILDS_LABELS = "CamelKubernetesBuildsLabels";
+    @Metadata(label = "producer", description = "The Openshift build name", javaType = "String", applicableFor = SCHEME_BUILDS)
     public static final String KUBERNETES_BUILD_NAME = "CamelKubernetesBuildName";
+    @Metadata(label = "producer", description = "The Openshift Config Build labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_BUILD_CONFIG)
     public static final String KUBERNETES_BUILD_CONFIGS_LABELS = "CamelKubernetesBuildConfigsLabels";
+    @Metadata(label = "producer", description = "The Openshift Config Build name", javaType = "String",
+              applicableFor = SCHEME_BUILD_CONFIG)
     public static final String KUBERNETES_BUILD_CONFIG_NAME = "CamelKubernetesBuildConfigName";
+    @Metadata(label = "producer", description = "The desired instance count", javaType = "Integer",
+              applicableFor = SCHEME_DEPLOYMENTS)
     public static final String KUBERNETES_DEPLOYMENT_REPLICAS = "CamelKubernetesDeploymentReplicas";
+    @Metadata(label = "producer", description = "The HPA name.", javaType = "String", applicableFor = SCHEME_HPA)
     public static final String KUBERNETES_HPA_NAME = "CamelKubernetesHPAName";
+    @Metadata(label = "producer", description = "The spec for a HPA.",
+              javaType = "io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscalerSpec",
+              applicableFor = SCHEME_HPA)
     public static final String KUBERNETES_HPA_SPEC = "CamelKubernetesHPASpec";
+    @Metadata(label = "producer", description = "The HPA labels.", javaType = "Map<String, String>", applicableFor = SCHEME_HPA)
     public static final String KUBERNETES_HPA_LABELS = "CamelKubernetesHPALabels";
+    @Metadata(label = "producer", description = "The Job name.", javaType = "String", applicableFor = SCHEME_JOB)
     public static final String KUBERNETES_JOB_NAME = "CamelKubernetesJobName";
+    @Metadata(label = "producer", description = "The spec for a Job.",
+              javaType = "io.fabric8.kubernetes.api.model.batch.v1.JobSpec", applicableFor = SCHEME_JOB)
     public static final String KUBERNETES_JOB_SPEC = "CamelKubernetesJobSpec";
+    @Metadata(label = "producer", description = "The Job labels.", javaType = "Map<String, String>", applicableFor = SCHEME_JOB)
     public static final String KUBERNETES_JOB_LABELS = "CamelKubernetesJobLabels";
+    @Metadata(label = "producer", description = "The deployment name", javaType = "String",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_INSTANCE_NAME = "CamelKubernetesCRDInstanceName";
+    @Metadata(label = "consumer", description = "Timestamp of the action watched by the consumer", javaType = "long",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_EVENT_TIMESTAMP = "CamelKubernetesCRDEventTimestamp";
+    @Metadata(label = "consumer", description = "Action watched by the consumer",
+              javaType = "io.fabric8.kubernetes.client.Watcher.Action", applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_EVENT_ACTION = "CamelKubernetesCRDEventAction";
+    @Metadata(label = "producer", description = "The Consumer CRD Resource name we would like to watch", javaType = "String",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_NAME = "CamelKubernetesCRDName";
+    @Metadata(label = "producer", description = "The Consumer CRD Resource Group we would like to watch", javaType = "String",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_GROUP = "CamelKubernetesCRDGroup";
+    @Metadata(label = "producer", description = "The Consumer CRD Resource Scope we would like to watch", javaType = "String",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_SCOPE = "CamelKubernetesCRDScope";
+    @Metadata(label = "producer", description = "The Consumer CRD Resource Version we would like to watch", javaType = "String",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_VERSION = "CamelKubernetesCRDVersion";
+    @Metadata(label = "producer", description = "The Consumer CRD Resource Plural we would like to watch", javaType = "String",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_PLURAL = "CamelKubernetesCRDPlural";
+    @Metadata(label = "producer", description = "The CRD resource labels", javaType = "Map<String, String>",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_LABELS = "CamelKubernetesCRDLabels";
+    @Metadata(label = "producer", description = "The manifest of the CRD resource to create as JSON string",
+              javaType = "String", applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_CRD_INSTANCE = "CamelKubernetesCRDInstance";
-
+    @Metadata(label = "producer", description = "The result of the delete operation", javaType = "boolean",
+              applicableFor = SCHEME_CUSTOM_RESOURCES)
     public static final String KUBERNETES_DELETE_RESULT = "CamelKubernetesDeleteResult";
 
     // Consumer
+    @Metadata(label = "consumer", description = "Action watched by the consumer",
+              javaType = "io.fabric8.kubernetes.client.Watcher.Action",
+              applicableFor = {
+                      SCHEME_CONFIG_MAPS, SCHEME_DEPLOYMENTS, SCHEME_HPA, SCHEME_NAMESPACES, SCHEME_NODES, SCHEME_PODS,
+                      SCHEME_REPLICATION_CONTROLLERS, SCHEME_SERVICES })
     public static final String KUBERNETES_EVENT_ACTION = "CamelKubernetesEventAction";
+    @Metadata(label = "consumer", description = "Timestamp of the action watched by the consumer", javaType = "long",
+              applicableFor = {
+                      SCHEME_CONFIG_MAPS, SCHEME_DEPLOYMENTS, SCHEME_HPA, SCHEME_NAMESPACES, SCHEME_NODES, SCHEME_PODS,
+                      SCHEME_REPLICATION_CONTROLLERS, SCHEME_SERVICES })
     public static final String KUBERNETES_EVENT_TIMESTAMP = "CamelKubernetesEventTimestamp";
 
     private KubernetesConstants() {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
index 8527706..b140f57 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsEndpoint.java
@@ -22,14 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_CONFIG_MAPS;
+
 /**
  * Perform operations on Kubernetes ConfigMaps and get notified on ConfigMaps changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-config-maps", title = "Kubernetes ConfigMap",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_CONFIG_MAPS, title = "Kubernetes ConfigMap",
              syntax = "kubernetes-config-maps:masterUrl", producerOnly = true,
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesConfigMapsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesConfigMapsEndpoint(String uri, KubernetesConfigMapsComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
index 5f97b3c..1648101 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/customresources/KubernetesCustomResourcesEndpoint.java
@@ -22,13 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_CUSTOM_RESOURCES;
+
 /**
  * Perform operations on Kubernetes Custom Resources and get notified on Deployment changes.
  */
-@UriEndpoint(firstVersion = "3.7.0", scheme = "kubernetes-custom-resources", title = "Kubernetes Custom Resources",
-             syntax = "kubernetes-custom-resources:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "3.7.0", scheme = SCHEME_CUSTOM_RESOURCES, title = "Kubernetes Custom Resources",
+             syntax = "kubernetes-custom-resources:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesCustomResourcesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesCustomResourcesEndpoint(String uri, KubernetesCustomResourcesComponent component,
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
index 60a62e7..59dc817 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsEndpoint.java
@@ -22,13 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_DEPLOYMENTS;
+
 /**
  * Perform operations on Kubernetes Deployments and get notified on Deployment changes.
  */
-@UriEndpoint(firstVersion = "2.20.0", scheme = "kubernetes-deployments", title = "Kubernetes Deployments",
-             syntax = "kubernetes-deployments:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.20.0", scheme = SCHEME_DEPLOYMENTS, title = "Kubernetes Deployments",
+             syntax = "kubernetes-deployments:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesDeploymentsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesDeploymentsEndpoint(String uri, KubernetesDeploymentsComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
index 6dc034c..624f068 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAEndpoint.java
@@ -22,13 +22,16 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_HPA;
+
 /**
  * Perform operations on Kubernetes Horizontal Pod Autoscalers (HPA) and get notified on HPA changes.
  */
-@UriEndpoint(firstVersion = "2.23.0", scheme = "kubernetes-hpa", title = "Kubernetes HPA", syntax = "kubernetes-hpa:masterUrl",
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.23.0", scheme = SCHEME_HPA, title = "Kubernetes HPA", syntax = "kubernetes-hpa:masterUrl",
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesHPAEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesHPAEndpoint(String uri, KubernetesHPAComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
index a95f96b..ab00c64 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
@@ -22,13 +22,16 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_JOB;
+
 /**
  * Perform operations on Kubernetes Jobs.
  */
-@UriEndpoint(firstVersion = "2.23.0", scheme = "kubernetes-job", title = "Kubernetes Job", syntax = "kubernetes-job:masterUrl",
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.23.0", scheme = SCHEME_JOB, title = "Kubernetes Job", syntax = "kubernetes-job:masterUrl",
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesJobEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesJobEndpoint(String uri, KubernetesJobComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
index fb9e9aa..787ce35 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/namespaces/KubernetesNamespacesEndpoint.java
@@ -22,13 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_NAMESPACES;
+
 /**
  * Perform operations on Kubernetes Namespaces and get notified on Namespace changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-namespaces", title = "Kubernetes Namespaces",
-             syntax = "kubernetes-namespaces:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_NAMESPACES, title = "Kubernetes Namespaces",
+             syntax = "kubernetes-namespaces:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesNamespacesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesNamespacesEndpoint(String uri, KubernetesNamespacesComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
index 22aac16..4657668 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/nodes/KubernetesNodesEndpoint.java
@@ -22,13 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_NODES;
+
 /**
  * Perform operations on Kubernetes Nodes and get notified on Node changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-nodes", title = "Kubernetes Nodes",
-             syntax = "kubernetes-nodes:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_NODES, title = "Kubernetes Nodes",
+             syntax = "kubernetes-nodes:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesNodesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesNodesEndpoint(String uri, KubernetesNodesComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.java
index 170d9ba..c841375 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes/KubernetesPersistentVolumesEndpoint.java
@@ -22,14 +22,18 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_PERSISTENT_VOLUMES;
+
 /**
  * Perform operations on Kubernetes Persistent Volumes and get notified on Persistent Volume changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-persistent-volumes", title = "Kubernetes Persistent Volume",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_PERSISTENT_VOLUMES, title = "Kubernetes Persistent Volume",
              syntax = "kubernetes-persistent-volumes:masterUrl",
-             producerOnly = true, category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             producerOnly = true, category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesPersistentVolumesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesPersistentVolumesEndpoint(String uri, KubernetesPersistentVolumesComponent component,
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java
index 650c00b..5a41268 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsEndpoint.java
@@ -22,15 +22,18 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_PERSISTENT_VOLUMES_CLAIMS;
+
 /**
  * Perform operations on Kubernetes Persistent Volumes Claims and get notified on Persistent Volumes Claim changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-persistent-volumes-claims",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_PERSISTENT_VOLUMES_CLAIMS,
              title = "Kubernetes Persistent Volume Claim",
              syntax = "kubernetes-persistent-volumes-claims:masterUrl", producerOnly = true,
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesPersistentVolumesClaimsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesPersistentVolumesClaimsEndpoint(
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
index b66b9f2..e4edd29 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsEndpoint.java
@@ -22,13 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_PODS;
+
 /**
  * Perform operations on Kubernetes Pods and get notified on Pod changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-pods", title = "Kubernetes Pods",
-             syntax = "kubernetes-pods:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_PODS, title = "Kubernetes Pods",
+             syntax = "kubernetes-pods:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesPodsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesPodsEndpoint(String uri, KubernetesPodsComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java
index dec6aa6..18706ae 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersEndpoint.java
@@ -22,14 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_REPLICATION_CONTROLLERS;
+
 /**
  * Perform operations on Kubernetes Replication Controllers and get notified on Replication Controllers changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-replication-controllers",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_REPLICATION_CONTROLLERS,
              title = "Kubernetes Replication Controller", syntax = "kubernetes-replication-controllers:masterUrl",
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesReplicationControllersEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesReplicationControllersEndpoint(String uri, KubernetesReplicationControllersComponent component,
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java
index 6000a37..abb229f 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaEndpoint.java
@@ -22,14 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_RESOURCES_QUOTA;
+
 /**
  * Perform operations on Kubernetes Resources Quotas.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-resources-quota", title = "Kubernetes Resources Quota",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_RESOURCES_QUOTA, title = "Kubernetes Resources Quota",
              syntax = "kubernetes-resources-quota:masterUrl", producerOnly = true,
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesResourcesQuotaEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesResourcesQuotaEndpoint(String uri, KubernetesResourcesQuotaComponent component,
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java
index fdd81cf..83b999d 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsEndpoint.java
@@ -22,14 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_SECRETS;
+
 /**
  * Perform operations on Kubernetes Secrets.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-secrets", title = "Kubernetes Secrets",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SECRETS, title = "Kubernetes Secrets",
              syntax = "kubernetes-secrets:masterUrl", producerOnly = true,
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesSecretsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesSecretsEndpoint(String uri, KubernetesSecretsComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java
index 5899f22..64af443 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsEndpoint.java
@@ -22,14 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_SERVICE_ACCOUNTS;
+
 /**
  * Perform operations on Kubernetes Service Accounts.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-service-accounts", title = "Kubernetes Service Account",
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SERVICE_ACCOUNTS, title = "Kubernetes Service Account",
              syntax = "kubernetes-service-accounts:masterUrl", producerOnly = true,
-             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+             category = { Category.CONTAINER, Category.CLOUD, Category.PAAS }, headersClass = KubernetesConstants.class)
 public class KubernetesServiceAccountsEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesServiceAccountsEndpoint(String uri, KubernetesServiceAccountsComponent component,
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java
index c2ecb07..84a0085 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesEndpoint.java
@@ -22,13 +22,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_SERVICES;
+
 /**
  * Perform operations on Kubernetes Services and get notified on Service changes.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes-services", title = "Kubernetes Services",
-             syntax = "kubernetes-services:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS })
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_SERVICES, title = "Kubernetes Services",
+             syntax = "kubernetes-services:masterUrl", category = { Category.CONTAINER, Category.CLOUD, Category.PAAS },
+             headersClass = KubernetesConstants.class)
 public class KubernetesServicesEndpoint extends AbstractKubernetesEndpoint {
 
     public KubernetesServicesEndpoint(String uri, KubernetesServicesComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java
index fe3eb7f0..8e73961 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/build_configs/OpenshiftBuildConfigsEndpoint.java
@@ -21,13 +21,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_BUILD_CONFIG;
+
 /**
  * Perform operations on OpenShift Build Configs.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "openshift-build-configs", title = "Openshift Build Config",
-             syntax = "openshift-build-configs:masterUrl", producerOnly = true, label = "container,cloud,paas")
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_BUILD_CONFIG, title = "Openshift Build Config",
+             syntax = "openshift-build-configs:masterUrl", producerOnly = true, label = "container,cloud,paas",
+             headersClass = KubernetesConstants.class)
 public class OpenshiftBuildConfigsEndpoint extends AbstractKubernetesEndpoint {
 
     public OpenshiftBuildConfigsEndpoint(String uri, OpenshiftBuildConfigsComponent component, KubernetesConfiguration config) {
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java
index 4522c27..dc388c0 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/openshift/builds/OpenshiftBuildsEndpoint.java
@@ -21,13 +21,17 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
 import org.apache.camel.spi.UriEndpoint;
 
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_BUILDS;
+
 /**
  * Perform operations on OpenShift Builds.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "openshift-builds", title = "Openshift Builds",
-             syntax = "openshift-builds:masterUrl", producerOnly = true, label = "container,cloud,paas")
+@UriEndpoint(firstVersion = "2.17.0", scheme = SCHEME_BUILDS, title = "Openshift Builds",
+             syntax = "openshift-builds:masterUrl", producerOnly = true, label = "container,cloud,paas",
+             headersClass = KubernetesConstants.class)
 public class OpenshiftBuildsEndpoint extends AbstractKubernetesEndpoint {
 
     public OpenshiftBuildsEndpoint(String uri, OpenshiftBuildsComponent component, KubernetesConfiguration config) {

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

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 25de40e0917e0db1ce9d3909ac90050fec657671
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 14:40:52 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-milo
---
 .../camel/component/milo/browse/milo-browse.json   |  3 ++
 .../camel/component/milo/client/milo-client.json   |  4 +++
 .../src/main/docs/milo-browse-component.adoc       |  4 ++-
 .../src/main/docs/milo-client-component.adoc       |  4 ++-
 .../apache/camel/component/milo/MiloConstants.java | 37 ++++++++++++++++++++++
 .../org/apache/camel/component/milo/NodeIds.java   |  2 --
 .../component/milo/browse/MiloBrowseEndpoint.java  |  7 ++--
 .../component/milo/browse/MiloBrowseProducer.java  |  2 +-
 .../component/milo/client/MiloClientEndpoint.java  |  7 ++--
 .../component/milo/client/MiloClientProducer.java  |  5 +--
 .../component/milo/server/MiloServerEndpoint.java  |  4 ++-
 .../component/milo/browse/BrowseServerTest.java    | 16 ++++++----
 12 files changed, 76 insertions(+), 19 deletions(-)

diff --git a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
index d3100dc..9abfd0f 100644
--- a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
+++ b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/browse/milo-browse.json
@@ -47,6 +47,9 @@
     "sessionName": { "kind": "property", "displayName": "Session Name", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "Session name" },
     "sessionTimeout": { "kind": "property", "displayName": "Session Timeout", "group": "client", "label": "client", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "Session timeout in milliseconds" }
   },
+  "headers": {
+    "CamelMiloNodeIds": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The node ids." }
+  },
   "properties": {
     "endpointUri": { "kind": "path", "displayName": "Endpoint Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The OPC UA server endpoint" },
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "A virtual client id to force the creation of a new connection instance" },
diff --git a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
index 5b5fe01..e6a1813 100644
--- a/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
+++ b/components/camel-milo/src/generated/resources/org/apache/camel/component/milo/client/milo-client.json
@@ -48,6 +48,10 @@
     "sessionName": { "kind": "property", "displayName": "Session Name", "group": "client", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "Session name" },
     "sessionTimeout": { "kind": "property", "displayName": "Session Timeout", "group": "client", "label": "client", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "Session timeout in milliseconds" }
   },
+  "headers": {
+    "CamelMiloNodeIds": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The node ids." },
+    "await": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The \"await\" setting for writes." }
+  },
   "properties": {
     "endpointUri": { "kind": "path", "displayName": "Endpoint Uri", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The OPC UA server endpoint" },
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.milo.client.MiloClientConfiguration", "configurationField": "configuration", "description": "A virtual client id to force the creation of a new connection instance" },
diff --git a/components/camel-milo/src/main/docs/milo-browse-component.adoc b/components/camel-milo/src/main/docs/milo-browse-component.adoc
index e259f0e..c5ac894 100644
--- a/components/camel-milo/src/main/docs/milo-browse-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-browse-component.adoc
@@ -54,7 +54,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
 
 === Client
 
diff --git a/components/camel-milo/src/main/docs/milo-client-component.adoc b/components/camel-milo/src/main/docs/milo-client-component.adoc
index 25ce4b7..0efb881 100644
--- a/components/camel-milo/src/main/docs/milo-client-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-client-component.adoc
@@ -69,7 +69,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
 
 === Discovery
 
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/MiloConstants.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/MiloConstants.java
new file mode 100644
index 0000000..96ac561
--- /dev/null
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/MiloConstants.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.milo;
+
+import org.apache.camel.spi.Metadata;
+
+public final class MiloConstants {
+
+    // The schemes
+    public static final String SCHEME_BROWSE = "milo-browse";
+    public static final String SCHEME_CLIENT = "milo-client";
+    public static final String SCHEME_SERVER = "milo-server";
+
+    @Metadata(label = "producer", description = "The node ids.", javaType = "List")
+    public static final String HEADER_NODE_IDS = "CamelMiloNodeIds";
+    @Metadata(label = "producer", description = "The \"await\" setting for writes.", javaType = "Boolean",
+              applicableFor = SCHEME_CLIENT)
+    public static final String HEADER_AWAIT = "await";
+
+    private MiloConstants() {
+
+    }
+}
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
index f964cbd..315135e 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/NodeIds.java
@@ -34,8 +34,6 @@ import static org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned.
  */
 public final class NodeIds {
 
-    public static final String HEADER_NODE_IDS = "CamelMiloNodeIds";
-
     private NodeIds() {
     }
 
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
index 6a3c95a..b8faeeb 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseEndpoint.java
@@ -22,6 +22,7 @@ import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.component.milo.client.MiloClientConfiguration;
 import org.apache.camel.component.milo.client.MiloClientConnection;
 import org.apache.camel.component.milo.client.MiloClientConnectionManager;
@@ -37,11 +38,13 @@ import org.eclipse.milo.opcua.stack.core.types.enumerated.NodeClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.component.milo.MiloConstants.SCHEME_BROWSE;
+
 /**
  * Connect to OPC UA servers using the binary protocol for browsing the node tree.
  */
-@UriEndpoint(firstVersion = "3.15.0", scheme = "milo-browse", syntax = "milo-browse:endpointUri", title = "OPC UA Browser",
-             category = { Category.IOT }, producerOnly = true)
+@UriEndpoint(firstVersion = "3.15.0", scheme = SCHEME_BROWSE, syntax = "milo-browse:endpointUri", title = "OPC UA Browser",
+             category = { Category.IOT }, producerOnly = true, headersClass = MiloConstants.class)
 public class MiloBrowseEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(MiloBrowseEndpoint.class);
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
index bfbbf4d..ea4c0d8 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/browse/MiloBrowseProducer.java
@@ -36,7 +36,7 @@ import org.eclipse.milo.opcua.stack.core.types.structured.ReferenceDescription;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.milo.NodeIds.HEADER_NODE_IDS;
+import static org.apache.camel.component.milo.MiloConstants.HEADER_NODE_IDS;
 
 public class MiloBrowseProducer extends DefaultAsyncProducer {
 
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
index 286a451..a1b25db 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
@@ -22,6 +22,7 @@ import org.apache.camel.Category;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -29,11 +30,13 @@ import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
 
+import static org.apache.camel.component.milo.MiloConstants.SCHEME_CLIENT;
+
 /**
  * Connect to OPC UA servers using the binary protocol for acquiring telemetry data.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "milo-client", syntax = "milo-client:endpointUri", title = "OPC UA Client",
-             category = { Category.IOT })
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_CLIENT, syntax = "milo-client:endpointUri", title = "OPC UA Client",
+             category = { Category.IOT }, headersClass = MiloConstants.class)
 public class MiloClientEndpoint extends DefaultEndpoint {
 
     private final MiloClientConnectionManager connectionManager;
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
index 2b2e82c..e7e4bb9 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientProducer.java
@@ -23,11 +23,12 @@ import java.util.stream.Collectors;
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.support.DefaultAsyncProducer;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
 
 import static java.lang.Boolean.TRUE;
-import static org.apache.camel.component.milo.NodeIds.HEADER_NODE_IDS;
+import static org.apache.camel.component.milo.MiloConstants.HEADER_NODE_IDS;
 
 public class MiloClientProducer extends DefaultAsyncProducer {
 
@@ -87,7 +88,7 @@ public class MiloClientProducer extends DefaultAsyncProducer {
             future = this.connection.call(this.nodeId, this.methodId, value);
         }
 
-        final Boolean await = msg.getHeader("await", this.defaultAwaitWrites, Boolean.class);
+        final Boolean await = msg.getHeader(MiloConstants.HEADER_AWAIT, this.defaultAwaitWrites, Boolean.class);
 
         if (TRUE.equals(await)) {
             future.whenComplete((v, ex) -> async.done(false));
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
index 027eb58..5a37426 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerEndpoint.java
@@ -27,10 +27,12 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 
+import static org.apache.camel.component.milo.MiloConstants.SCHEME_SERVER;
+
 /**
  * Make telemetry data available as an OPC UA server.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "milo-server", syntax = "milo-server:itemId", title = "OPC UA Server",
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_SERVER, syntax = "milo-server:itemId", title = "OPC UA Server",
              category = { Category.IOT })
 public class MiloServerEndpoint extends DefaultEndpoint {
 
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
index f4ea89e..d047def 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
@@ -32,7 +32,7 @@ import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.ExchangeBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.milo.AbstractMiloServerTest;
-import org.apache.camel.component.milo.NodeIds;
+import org.apache.camel.component.milo.MiloConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.eclipse.milo.opcua.stack.core.Identifiers;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
@@ -220,7 +220,7 @@ public class BrowseServerTest extends AbstractMiloServerTest {
         final Map<ExpandedNodeId, BrowseResult> browseResults = (Map<ExpandedNodeId, BrowseResult>) message.getBody(Map.class);
         assertNotNull(browseResults);
 
-        final List<?> nodes = message.getHeader(NodeIds.HEADER_NODE_IDS, List.class);
+        final List<?> nodes = message.getHeader(MiloConstants.HEADER_NODE_IDS, List.class);
         assertNotNull(nodes);
 
         assertEquals(expectedNumberOfResults, browseResults.keySet().size());
@@ -269,7 +269,8 @@ public class BrowseServerTest extends AbstractMiloServerTest {
         mock1.expectedMessagesMatches(assertPredicate(e -> assertBrowseResult(e.getMessage(),
                 "ObjectTypes", "VariableTypes", "DataTypes", "ReferenceTypes", "EventTypes")));
         producer1.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS,
+                        Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock1);
     }
@@ -338,7 +339,8 @@ public class BrowseServerTest extends AbstractMiloServerTest {
         mock5.setExpectedCount(1);
         mock5.expectedMessagesMatches(assertPredicate(e -> assertBrowseResult(e.getMessage(), "Root")));
         producer5.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS,
+                        Collections.singletonList(Identifiers.TypesFolder.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock5);
     }
@@ -349,7 +351,7 @@ public class BrowseServerTest extends AbstractMiloServerTest {
         mock1.reset();
         mock1.setExpectedCount(0);
         final Exchange exchange = producer1.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, Collections.singletonList("invalidNodeId"))
+                .withHeader(MiloConstants.HEADER_NODE_IDS, Collections.singletonList("invalidNodeId"))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock1);
         assertNotNull(exchange.getException());
@@ -362,7 +364,7 @@ public class BrowseServerTest extends AbstractMiloServerTest {
         mock6.setExpectedCount(1);
         mock6.expectedMessagesMatches(assertPredicate(e -> assertBrowseResults(e.getMessage(), 9, 9)));
         producer6.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, Collections.singletonList(Identifiers.String.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS, Collections.singletonList(Identifiers.String.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock6);
     }
@@ -374,7 +376,7 @@ public class BrowseServerTest extends AbstractMiloServerTest {
         mock7.setExpectedCount(1);
         mock7.expectedMessagesMatches(assertPredicate(e -> assertBrowseResults(e.getMessage(), 1, 0)));
         producer7.send(ExchangeBuilder.anExchange(context)
-                .withHeader(NodeIds.HEADER_NODE_IDS, Collections.singletonList(Identifiers.String.toParseableString()))
+                .withHeader(MiloConstants.HEADER_NODE_IDS, Collections.singletonList(Identifiers.String.toParseableString()))
                 .build());
         assertIsSatisfied(5, TimeUnit.SECONDS, mock7);
     }

[camel] 16/18: CAMEL-17792: Add doc about the message headers of camel-mustache

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 09335cc11fdebfaa11fe1f8158ae901dfa09c21e
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 19:09:58 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mustache
---
 .../org/apache/camel/component/mustache/mustache.json        |  4 ++++
 .../camel-mustache/src/main/docs/mustache-component.adoc     | 12 +++---------
 .../apache/camel/component/mustache/MustacheConstants.java   |  4 ++++
 .../apache/camel/component/mustache/MustacheEndpoint.java    |  2 +-
 4 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/components/camel-mustache/src/generated/resources/org/apache/camel/component/mustache/mustache.json b/components/camel-mustache/src/generated/resources/org/apache/camel/component/mustache/mustache.json
index 3899942..a997d0f 100644
--- a/components/camel-mustache/src/generated/resources/org/apache/camel/component/mustache/mustache.json
+++ b/components/camel-mustache/src/generated/resources/org/apache/camel/component/mustache/mustache.json
@@ -28,6 +28,10 @@
     "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 [...]
     "mustacheFactory": { "kind": "property", "displayName": "Mustache Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.mustachejava.MustacheFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MustacheFactory" }
   },
+  "headers": {
+    "MustacheResourceUri": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A URI for the template resource to use instead of the endpoint." },
+    "MustacheTemplate": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The template to use instead of the endpoint configured." }
+  },
   "properties": {
     "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
     "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
diff --git a/components/camel-mustache/src/main/docs/mustache-component.adoc b/components/camel-mustache/src/main/docs/mustache-component.adoc
index 320bdd3..3d79e2d 100644
--- a/components/camel-mustache/src/main/docs/mustache-component.adoc
+++ b/components/camel-mustache/src/main/docs/mustache-component.adoc
@@ -86,15 +86,9 @@ location for a template or the template content itself. If any of these
 headers is set then Camel uses this over the endpoint configured
 resource. This allows you to provide a dynamic template at runtime.
 
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header |Type |Description |Support Version
-
-|MustacheConstants.MUSTACHE_RESOURCE_URI |String |A URI for the template resource to use instead of the endpoint
-configured. | 
-
-|MustacheConstants.MUSTACHE_TEMPLATE |String |The template to use instead of the endpoint configured. |
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Samples
 
diff --git a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheConstants.java b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheConstants.java
index c68a492..05880f7 100644
--- a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheConstants.java
+++ b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheConstants.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.mustache;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Mustache component constants
  */
@@ -24,11 +26,13 @@ public final class MustacheConstants {
     /**
      * Header containing a Mustache template location
      */
+    @Metadata(description = "A URI for the template resource to use instead of the endpoint.", javaType = "String")
     public static final String MUSTACHE_RESOURCE_URI = "MustacheResourceUri";
 
     /**
      * Header containing the Mustache template code
      */
+    @Metadata(description = "The template to use instead of the endpoint configured.", javaType = "String")
     public static final String MUSTACHE_TEMPLATE = "MustacheTemplate";
 
     /**
diff --git a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
index a8da82b..4023757 100644
--- a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
+++ b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
@@ -44,7 +44,7 @@ import static org.apache.camel.component.mustache.MustacheConstants.MUSTACHE_TEM
  * Transform messages using a Mustache template.
  */
 @UriEndpoint(firstVersion = "2.12.0", scheme = "mustache", title = "Mustache", syntax = "mustache:resourceUri",
-             producerOnly = true, category = { Category.TRANSFORMATION })
+             producerOnly = true, category = { Category.TRANSFORMATION }, headersClass = MustacheConstants.class)
 public class MustacheEndpoint extends ResourceEndpoint {
 
     private MustacheFactory mustacheFactory;

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

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 526ce2adc54c4ca4436eefc16d90567a546a0794
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 10:56:56 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-language
---
 .../apache/camel/component/language/language.json  |  3 +++
 .../src/main/docs/language-component.adoc          | 20 ++++----------
 .../component/language/LanguageConstants.java      | 31 ++++++++++++++++++++++
 .../camel/component/language/LanguageEndpoint.java |  2 +-
 .../camel/component/language/LanguageProducer.java |  4 +--
 5 files changed, 42 insertions(+), 18 deletions(-)

diff --git a/components/camel-language/src/generated/resources/org/apache/camel/component/language/language.json b/components/camel-language/src/generated/resources/org/apache/camel/component/language/language.json
index 8c70707..cebbf73 100644
--- a/components/camel-language/src/generated/resources/org/apache/camel/component/language/language.json
+++ b/components/camel-language/src/generated/resources/org/apache/camel/component/language/language.json
@@ -25,6 +25,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": {
+    "CamelLanguageScript": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String or Expression", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The script to execute provided in the header. Takes precedence over\nscript configured on the endpoint." }
+  },
   "properties": {
     "languageName": { "kind": "path", "displayName": "Language Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "bean", "constant", "exchangeProperty", "file", "groovy", "header", "javascript", "jsonpath", "mvel", "ognl", "", "ref", "simple", "spel", "sql", "terser", "tokenize", "xpath", "xquery", "xtokenize" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the na [...]
     "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource, or a reference to lookup a bean in the Registry to use as the resource" },
diff --git a/components/camel-language/src/main/docs/language-component.adoc b/components/camel-language/src/main/docs/language-component.adoc
index a1fde42..1415ba8 100644
--- a/components/camel-language/src/main/docs/language-component.adoc
+++ b/components/camel-language/src/main/docs/language-component.adoc
@@ -55,23 +55,13 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-== Message Headers
-
-The following message headers can be used to affect the behavior of the
-component
-
-[width="100%",cols="10%,90%",options="header",]
-|===
-|Header |Description
-
-|`CamelLanguageScript` |The script to execute provided in the header. Takes precedence over
-script configured on the endpoint.
-|===
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Examples
 
-For example you can use the xref:languages:simple-language.adoc[Simple] language to
+For example, you can use the xref:languages:simple-language.adoc[Simple] language to
 Message Translator a message:
 
 In case you want to convert the message body type you can do this as
@@ -96,7 +86,7 @@ You can specify a resource uri for a script to load in either the
 endpoint uri, or in the `Exchange.LANGUAGE_SCRIPT` header.
 The uri must start with one of the following schemes: file:, classpath:, or http:
 
-By default the script is loaded once and cached. However you can disable
+By default, the script is loaded once and cached. However, you can disable
 the `contentCache` option and have the script loaded on each
 evaluation. For example if the file myscript.txt is changed on disk, then the
 updated script is used:
diff --git a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageConstants.java b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageConstants.java
new file mode 100644
index 0000000..dc5ca43
--- /dev/null
+++ b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageConstants.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.language;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.Metadata;
+
+public final class LanguageConstants {
+
+    @Metadata(description = "The script to execute provided in the header. Takes precedence over\n" +
+                            "script configured on the endpoint.",
+              javaType = "String or Expression")
+    public static final String LANGUAGE_SCRIPT = Exchange.LANGUAGE_SCRIPT;
+
+    private LanguageConstants() {
+    }
+}
diff --git a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
index 0cab7b8..2363b37 100644
--- a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
+++ b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
@@ -47,7 +47,7 @@ import org.apache.camel.util.IOHelper;
  * defined as well.
  */
 @UriEndpoint(firstVersion = "2.5.0", scheme = "language", title = "Language", syntax = "language:languageName:resourceUri",
-             producerOnly = true, category = { Category.CORE, Category.SCRIPT })
+             producerOnly = true, category = { Category.CORE, Category.SCRIPT }, headersClass = LanguageConstants.class)
 public class LanguageEndpoint extends ResourceEndpoint {
     private Language language;
     private Expression expression;
diff --git a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageProducer.java b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageProducer.java
index 01d3c6c..ae825ad 100644
--- a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageProducer.java
+++ b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageProducer.java
@@ -45,9 +45,9 @@ public class LanguageProducer extends DefaultProducer {
         String script = null;
 
         // is there a custom expression in the header?
-        Expression exp = exchange.getIn().getHeader(Exchange.LANGUAGE_SCRIPT, Expression.class);
+        Expression exp = exchange.getIn().getHeader(LanguageConstants.LANGUAGE_SCRIPT, Expression.class);
         if (exp == null) {
-            script = exchange.getIn().getHeader(Exchange.LANGUAGE_SCRIPT, String.class);
+            script = exchange.getIn().getHeader(LanguageConstants.LANGUAGE_SCRIPT, String.class);
             if (script != null) {
                 // the script may be a file: so resolve it before using
                 script = getEndpoint().resolveScript(script);

[camel] 09/18: CAMEL-17792: Add doc about the message headers of camel-microprofile-metrics

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 c35f70af5e5939efa3cbbcab55d366ac64b252c8
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 12:22:50 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-microprofile-metrics
---
 .../microprofile/metrics/microprofile-metrics.json        | 15 +++++++++++++++
 .../src/main/docs/microprofile-metrics-component.adoc     |  3 +++
 .../metrics/MicroProfileMetricsConstants.java             | 15 +++++++++++++++
 .../microprofile/metrics/MicroProfileMetricsEndpoint.java |  3 ++-
 4 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/components/camel-microprofile/camel-microprofile-metrics/src/generated/resources/org/apache/camel/component/microprofile/metrics/microprofile-metrics.json b/components/camel-microprofile/camel-microprofile-metrics/src/generated/resources/org/apache/camel/component/microprofile/metrics/microprofile-metrics.json
index 282fc7c..97c0ce7 100644
--- a/components/camel-microprofile/camel-microprofile-metrics/src/generated/resources/org/apache/camel/component/microprofile/metrics/microprofile-metrics.json
+++ b/components/camel-microprofile/camel-microprofile-metrics/src/generated/resources/org/apache/camel/component/microprofile/metrics/microprofile-metrics.json
@@ -26,6 +26,21 @@
     "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 [...]
     "metricRegistry": { "kind": "property", "displayName": "Metric Registry", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.eclipse.microprofile.metrics.MetricRegistry", "deprecated": false, "autowired": false, "secret": false, "description": "Use a custom MetricRegistry." }
   },
+  "headers": {
+    "CamelMicroProfileMetricsCounterIncrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override increment value in URI" },
+    "CamelMicroProfileMetricsGaugeIncrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override gaugeIncrement value from the URI" },
+    "CamelMicroProfileMetricsGaugeDecrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override gaugeDecrement value from the URI" },
+    "CamelMicroProfileMetricsGaugeValue": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Number", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override gaugeValue value from the URI" },
+    "CamelMicroProfileMetricsHistogramValue": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override histogram value from the URI" },
+    "CamelMicroProfileMetricsMeterMark": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override meter mark value from the URI" },
+    "CamelMicroProfileMetricsDescription": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The description within the metric metadata" },
+    "CamelMicroProfileMetricsDisplayName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The display name within the metric metadata" },
+    "CamelMicroProfileMetricsName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the metric" },
+    "CamelMicroProfileMetricsTags": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The tags of the metric" },
+    "CamelMicroProfileMetricsType": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.eclipse.microprofile.metrics.MetricType", "enum": [ "concurrent gauge", "counter", "gauge", "meter", "histogram", "timer", "simple timer", "invalid" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of the metric" },
+    "CamelMicroProfileMetricsUnits": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The metric unit within the metric metadata" },
+    "CamelMicroProfileMetricsTimerAction": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.apache.camel.component.microprofile.metrics.TimerAction", "enum": [ "START", "STOP" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override time action from the URI" }
+  },
   "properties": {
     "metricType": { "kind": "path", "displayName": "Metric Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.eclipse.microprofile.metrics.MetricType", "enum": [ "concurrent gauge", "counter", "gauge", "meter", "histogram", "timer", "simple timer", "invalid" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Metric type" },
     "metricName": { "kind": "path", "displayName": "Metric Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Metric name" },
diff --git a/components/camel-microprofile/camel-microprofile-metrics/src/main/docs/microprofile-metrics-component.adoc b/components/camel-microprofile/camel-microprofile-metrics/src/main/docs/microprofile-metrics-component.adoc
index 1d0da27..864a17b 100644
--- a/components/camel-microprofile/camel-microprofile-metrics/src/main/docs/microprofile-metrics-component.adoc
+++ b/components/camel-microprofile/camel-microprofile-metrics/src/main/docs/microprofile-metrics-component.adoc
@@ -47,6 +47,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
 
 == MetricRegistry Configuration
 
diff --git a/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsConstants.java b/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsConstants.java
index 5262a67..09ecaf4 100644
--- a/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsConstants.java
+++ b/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsConstants.java
@@ -17,23 +17,38 @@
 package org.apache.camel.component.microprofile.metrics;
 
 import org.apache.camel.ServiceStatus;
+import org.apache.camel.spi.Metadata;
 
 public final class MicroProfileMetricsConstants {
 
     public static final String HEADER_PREFIX = "CamelMicroProfileMetrics";
 
+    @Metadata(description = "Override increment value in URI", javaType = "long")
     public static final String HEADER_COUNTER_INCREMENT = HEADER_PREFIX + "CounterIncrement";
+    @Metadata(description = "Override gaugeIncrement value from the URI", javaType = "Boolean")
     public static final String HEADER_GAUGE_INCREMENT = HEADER_PREFIX + "GaugeIncrement";
+    @Metadata(description = "Override gaugeDecrement value from the URI", javaType = "Boolean")
     public static final String HEADER_GAUGE_DECREMENT = HEADER_PREFIX + "GaugeDecrement";
+    @Metadata(description = "Override gaugeValue value from the URI", javaType = "Number")
     public static final String HEADER_GAUGE_VALUE = HEADER_PREFIX + "GaugeValue";
+    @Metadata(description = "Override histogram value from the URI", javaType = "Long")
     public static final String HEADER_HISTOGRAM_VALUE = HEADER_PREFIX + "HistogramValue";
+    @Metadata(description = "Override meter mark value from the URI", javaType = "Long")
     public static final String HEADER_METER_MARK = HEADER_PREFIX + "MeterMark";
+    @Metadata(description = "The description within the metric metadata", javaType = "String")
     public static final String HEADER_METRIC_DESCRIPTION = HEADER_PREFIX + "Description";
+    @Metadata(description = "The display name within the metric metadata", javaType = "String")
     public static final String HEADER_METRIC_DISPLAY_NAME = HEADER_PREFIX + "DisplayName";
+    @Metadata(description = "The name of the metric", javaType = "String")
     public static final String HEADER_METRIC_NAME = HEADER_PREFIX + "Name";
+    @Metadata(description = "The tags of the metric", javaType = "String")
     public static final String HEADER_METRIC_TAGS = HEADER_PREFIX + "Tags";
+    @Metadata(description = "The type of the metric", javaType = "org.eclipse.microprofile.metrics.MetricType")
     public static final String HEADER_METRIC_TYPE = HEADER_PREFIX + "Type";
+    @Metadata(description = "The metric unit within the metric metadata", javaType = "String")
     public static final String HEADER_METRIC_UNIT = HEADER_PREFIX + "Units";
+    @Metadata(description = "Override time action from the URI",
+              javaType = "org.apache.camel.component.microprofile.metrics.TimerAction")
     public static final String HEADER_TIMER_ACTION = HEADER_PREFIX + "TimerAction";
 
     public static final String CAMEL_METRIC_PREFIX = "camel";
diff --git a/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsEndpoint.java b/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsEndpoint.java
index b233145..2025abc 100644
--- a/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsEndpoint.java
+++ b/components/camel-microprofile/camel-microprofile-metrics/src/main/java/org/apache/camel/component/microprofile/metrics/MicroProfileMetricsEndpoint.java
@@ -33,7 +33,8 @@ import org.eclipse.microprofile.metrics.MetricType;
  * Expose metrics from Camel routes.
  */
 @UriEndpoint(firstVersion = "3.0.0", scheme = "microprofile-metrics", title = "MicroProfile Metrics",
-             syntax = "microprofile-metrics:metricType:metricName", producerOnly = true, category = { Category.MONITORING })
+             syntax = "microprofile-metrics:metricType:metricName", producerOnly = true, category = { Category.MONITORING },
+             headersClass = MicroProfileMetricsConstants.class)
 public class MicroProfileMetricsEndpoint extends DefaultEndpoint {
 
     protected final MetricRegistry metricRegistry;

[camel] 05/18: CAMEL-17792: Add doc about the message headers of camel-lucene

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 e61fe3ed5b567d7acd1d7945bc96b9ce2d077fcc
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 11:11:40 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-lucene
---
 .../org/apache/camel/component/lucene/lucene.json  |  4 +++
 .../src/main/docs/lucene-component.adoc            | 20 ++++---------
 .../camel/component/lucene/LuceneConstants.java    | 34 ++++++++++++++++++++++
 .../camel/component/lucene/LuceneEndpoint.java     |  2 +-
 .../component/lucene/LuceneQueryProducer.java      |  4 +--
 .../processor/lucene/LuceneQueryProcessor.java     |  5 ++--
 .../lucene/LuceneIndexAndQueryProducerIT.java      | 10 +++----
 .../processor/lucene/LuceneQueryProcessorIT.java   |  7 +++--
 8 files changed, 58 insertions(+), 28 deletions(-)

diff --git a/components/camel-lucene/src/generated/resources/org/apache/camel/component/lucene/lucene.json b/components/camel-lucene/src/generated/resources/org/apache/camel/component/lucene/lucene.json
index df69160..44f33a7 100644
--- a/components/camel-lucene/src/generated/resources/org/apache/camel/component/lucene/lucene.json
+++ b/components/camel-lucene/src/generated/resources/org/apache/camel/component/lucene/lucene.json
@@ -30,6 +30,10 @@
     "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 [...]
     "config": { "kind": "property", "displayName": "Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.lucene.LuceneConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared lucene configuration" }
   },
+  "headers": {
+    "QUERY": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Lucene Query to performed on the index. The query may include\nwildcards and phrases." },
+    "RETURN_LUCENE_DOCS": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Set this header to true to include the actual Lucene\ndocumentation when returning hit information." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "The URL to the lucene server" },
     "operation": { "kind": "path", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.lucene.LuceneOperation", "enum": [ "insert", "query" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "Operation to do such as insert or query." },
diff --git a/components/camel-lucene/src/main/docs/lucene-component.adoc b/components/camel-lucene/src/main/docs/lucene-component.adoc
index fe0e20a..43215d6 100644
--- a/components/camel-lucene/src/main/docs/lucene-component.adoc
+++ b/components/camel-lucene/src/main/docs/lucene-component.adoc
@@ -62,22 +62,12 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Sending/Receiving Messages to/from the cache
 
-=== Message Headers
-
-[width="100%",cols="10%,90%",options="header",]
-|=======================================================================
-|Header |Description
-
-|`QUERY` |The Lucene Query to performed on the index. The query may include
-wildcards and phrases
-
-|`RETURN_LUCENE_DOCS` |Set this header to true to include the actual Lucene
-documentation when returning hit information.
-|=======================================================================
-
 === Lucene Producers
 
 This component supports 2 producer endpoints.
@@ -131,7 +121,7 @@ registry.bind("whitespaceAnalyzer", new WhitespaceAnalyzer());
 RouteBuilder builder = new RouteBuilder() {
     public void configure() {
        from("direct:start").
-          setHeader("QUERY", constant("Seinfeld")).
+          setHeader(LuceneConstants.HEADER_QUERY, constant("Seinfeld")).
           to("lucene:searchIndex:query?
              analyzer=#whitespaceAnalyzer&indexDir=#whitespace&maxHits=20").
           to("direct:next");
@@ -163,7 +153,7 @@ RouteBuilder builder = new RouteBuilder() {
     public void configure() {            
         try {
             from("direct:start").
-                setHeader("QUERY", constant("Rodney Dangerfield")).
+                setHeader(LuceneConstants.HEADER_QUERY, constant("Rodney Dangerfield")).
                 process(new LuceneQueryProcessor("target/stdindexDir", analyzer, null, 20)).
                 to("direct:next");
         } catch (Exception e) {
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConstants.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConstants.java
new file mode 100644
index 0000000..bbbf416
--- /dev/null
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConstants.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.lucene;
+
+import org.apache.camel.spi.Metadata;
+
+public final class LuceneConstants {
+
+    @Metadata(description = "The Lucene Query to performed on the index. The query may include\n" +
+                            "wildcards and phrases.",
+              javaType = "String")
+    public static final String HEADER_QUERY = "QUERY";
+    @Metadata(description = "Set this header to true to include the actual Lucene\n" +
+                            "documentation when returning hit information.",
+              javaType = "String")
+    public static final String HEADER_RETURN_LUCENE_DOCS = "RETURN_LUCENE_DOCS";
+
+    private LuceneConstants() {
+    }
+}
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
index 6631596..2ef4f04 100644
--- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
@@ -29,7 +29,7 @@ import org.apache.camel.support.DefaultEndpoint;
  * Perform inserts or queries against Apache Lucene databases.
  */
 @UriEndpoint(firstVersion = "2.2.0", scheme = "lucene", title = "Lucene", syntax = "lucene:host:operation", producerOnly = true,
-             category = { Category.DATABASE, Category.SEARCH })
+             category = { Category.DATABASE, Category.SEARCH }, headersClass = LuceneConstants.class)
 public class LuceneEndpoint extends DefaultEndpoint {
     @UriParam
     LuceneConfiguration config;
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java
index 7a7e9db..9da9bea 100644
--- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java
@@ -56,8 +56,8 @@ public class LuceneQueryProducer extends DefaultProducer {
     public void process(Exchange exchange) throws Exception {
         Hits hits;
 
-        String phrase = exchange.getIn().getHeader("QUERY", String.class);
-        String returnLuceneDocs = exchange.getIn().getHeader("RETURN_LUCENE_DOCS", String.class);
+        String phrase = exchange.getIn().getHeader(LuceneConstants.HEADER_QUERY, String.class);
+        String returnLuceneDocs = exchange.getIn().getHeader(LuceneConstants.HEADER_RETURN_LUCENE_DOCS, String.class);
         boolean isReturnLuceneDocs = returnLuceneDocs != null && returnLuceneDocs.equalsIgnoreCase("true");
 
         if (phrase != null) {
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java b/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java
index 8caae9f..00e5e02 100644
--- a/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java
+++ b/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java
@@ -20,6 +20,7 @@ import java.io.File;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
+import org.apache.camel.component.lucene.LuceneConstants;
 import org.apache.camel.component.lucene.LuceneSearcher;
 import org.apache.camel.processor.lucene.support.Hits;
 import org.apache.lucene.analysis.Analyzer;
@@ -45,8 +46,8 @@ public class LuceneQueryProcessor implements Processor {
     public void process(Exchange exchange) throws Exception {
         Hits hits;
 
-        String phrase = exchange.getIn().getHeader("QUERY", String.class);
-        String returnLuceneDocs = exchange.getIn().getHeader("RETURN_LUCENE_DOCS", String.class);
+        String phrase = exchange.getIn().getHeader(LuceneConstants.HEADER_QUERY, String.class);
+        String returnLuceneDocs = exchange.getIn().getHeader(LuceneConstants.HEADER_RETURN_LUCENE_DOCS, String.class);
         boolean isReturnLuceneDocs = returnLuceneDocs != null && returnLuceneDocs.equalsIgnoreCase("true");
 
         if (phrase != null) {
diff --git a/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerIT.java b/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerIT.java
index a633f4a..a72f841 100644
--- a/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerIT.java
+++ b/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerIT.java
@@ -86,7 +86,7 @@ public class LuceneIndexAndQueryProducerIT extends CamelTestSupport {
                 // Set the property of the charset encoding
                 exchange.setProperty(Exchange.CHARSET_NAME, "UTF-8");
                 Message in = exchange.getIn();
-                in.setHeader("QUERY", "");
+                in.setHeader(LuceneConstants.HEADER_QUERY, "");
             }
         });
     }
@@ -122,7 +122,7 @@ public class LuceneIndexAndQueryProducerIT extends CamelTestSupport {
         context.addRoutes(new RouteBuilder() {
             public void configure() {
 
-                from("direct:start").setHeader("QUERY", constant("Seinfeld"))
+                from("direct:start").setHeader(LuceneConstants.HEADER_QUERY, constant("Seinfeld"))
                         .to("lucene:searchIndex:query?analyzer=#whitespaceAnalyzer&indexDir=#whitespace&maxHits=20")
                         .to("direct:next");
 
@@ -158,7 +158,7 @@ public class LuceneIndexAndQueryProducerIT extends CamelTestSupport {
         context.addRoutes(new RouteBuilder() {
             public void configure() {
 
-                from("direct:start").setHeader("QUERY", constant("Grouc?? Marx"))
+                from("direct:start").setHeader(LuceneConstants.HEADER_QUERY, constant("Grouc?? Marx"))
                         .to("lucene:searchIndex:query?analyzer=#stdAnalyzer&indexDir=#std&maxHits=20").to("direct:next");
 
                 from("direct:next").process(new Processor() {
@@ -192,8 +192,8 @@ public class LuceneIndexAndQueryProducerIT extends CamelTestSupport {
         context.addRoutes(new RouteBuilder() {
             public void configure() {
 
-                from("direct:start").setHeader("QUERY", constant("Grouc?? Marx"))
-                        .setHeader("RETURN_LUCENE_DOCS", constant("true"))
+                from("direct:start").setHeader(LuceneConstants.HEADER_QUERY, constant("Grouc?? Marx"))
+                        .setHeader(LuceneConstants.HEADER_RETURN_LUCENE_DOCS, constant("true"))
                         .to("lucene:searchIndex:query?analyzer=#stdAnalyzer&indexDir=#std&maxHits=20").to("direct:next");
 
                 from("direct:next").process(new Processor() {
diff --git a/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorIT.java b/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorIT.java
index 34e897d..9c2adcb 100644
--- a/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorIT.java
+++ b/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorIT.java
@@ -20,6 +20,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.lucene.LuceneConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.processor.lucene.support.Hits;
 import org.apache.camel.test.junit5.CamelTestSupport;
@@ -44,7 +45,7 @@ public class LuceneQueryProcessorIT extends CamelTestSupport {
                 // Set the property of the charset encoding
                 exchange.setProperty(Exchange.CHARSET_NAME, "UTF-8");
                 Message in = exchange.getIn();
-                in.setHeader("QUERY", "");
+                in.setHeader(LuceneConstants.HEADER_QUERY, "");
             }
         });
     }
@@ -59,7 +60,7 @@ public class LuceneQueryProcessorIT extends CamelTestSupport {
             public void configure() {
 
                 try {
-                    from("direct:start").setHeader("QUERY", constant("Rodney Dangerfield"))
+                    from("direct:start").setHeader(LuceneConstants.HEADER_QUERY, constant("Rodney Dangerfield"))
                             .process(new LuceneQueryProcessor("target/stdindexDir", analyzer, null, 20)).to("direct:next");
                 } catch (Exception e) {
                     LOG.warn("Unhandled exception: {}", e.getMessage(), e);
@@ -101,7 +102,7 @@ public class LuceneQueryProcessorIT extends CamelTestSupport {
             public void configure() {
 
                 try {
-                    from("direct:start").setHeader("QUERY", constant("Carl*"))
+                    from("direct:start").setHeader(LuceneConstants.HEADER_QUERY, constant("Carl*"))
                             .process(new LuceneQueryProcessor("target/simpleindexDir", analyzer, null, 20))
                             .to("direct:next");
                 } catch (Exception e) {

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

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 c5722389030415457a565fbfcb1efd2d945be035
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 16:08:12 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-minio
---
 .../org/apache/camel/component/minio/minio.json    |  23 +++++
 .../camel-minio/src/main/docs/minio-component.adoc | 107 +--------------------
 .../camel/component/minio/MinioConstants.java      |  73 ++++++++++++++
 .../camel/component/minio/MinioEndpoint.java       |   2 +-
 4 files changed, 100 insertions(+), 105 deletions(-)

diff --git a/components/camel-minio/src/generated/resources/org/apache/camel/component/minio/minio.json b/components/camel-minio/src/generated/resources/org/apache/camel/component/minio/minio.json
index 28ad0cc..16b776c 100644
--- a/components/camel-minio/src/generated/resources/org/apache/camel/component/minio/minio.json
+++ b/components/camel-minio/src/generated/resources/org/apache/camel/component/minio/minio.json
@@ -70,6 +70,29 @@
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Access Key or Minio Access Key. If not set camel will connect to service for anonymous access." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key Id or Minio Secret Key. If not set camel will connect to service for anonymous access." }
   },
+  "headers": {
+    "CamelMinioBucketName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The bucket Name which this object will be stored or which will be used for the current operation. *Consumer:* The name of the bucket in which this object is contained." },
+    "CamelMinioDestinationBucketName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Destination Name which will be used for the current operation." },
+    "CamelMinioContentControl": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The content control of this object. *Consumer:* The *optional* Cache-Control HTTP header which allows the user to\nspecify caching behavior along the HTTP request\/reply chain." },
+    "CamelMinioContentDisposition": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The content disposition of this object. *Consumer:* The *optional* Content-Disposition HTTP header, which specifies\npresentational information such as the recommended filename for the\nobject to be saved as." },
+    "CamelMinioContentEncoding": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The content encoding of this object. *Consumer:* The *optional* Content-Encoding HTTP header specifying what content\nencodings have been applied to the object and what decoding mechanisms\nmust be applied in order to obtain the media-typ [...]
+    "CamelMinioContentLength": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The content length of this object. *Consumer:* The Content-Length HTTP header indicating the size of the associated\nobject in bytes." },
+    "CamelMinioContentMD5": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The md5 checksum of this object. *Consumer:* The base64 encoded 128-bit MD5 digest of the associated object (content\n- not including headers) according to RFC 1864. This data is used as a\nmessage integrity check to verify that the data recei [...]
+    "CamelMinioContentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The content type of this object. *Consumer:* The Content-Type HTTP header, which indicates the type of content stored\nin the associated object. The value of this header is a standard MIME\ntype." },
+    "CamelMinioETag": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The ETag value for the newly uploaded object. *Consumer:* The hex encoded 128-bit MD5 digest of the associated object according to\nRFC 1864. This data is used as an integrity check to verify that the\ndata received by the caller is the same data th [...]
+    "CamelMinioObjectName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The key under which this object will be stored or which will be used for the current operation. *Consumer:* The key under which this object is stored." },
+    "CamelMinioDestinationObjectName": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Destination key which will be used for the current operation." },
+    "CamelMinioLastModified": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "java.util.Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The last modified timestamp of this object. *Consumer:* The value of the Last-Modified header, indicating the date and time at\nwhich Minio last recorded a modification to the associated object." },
+    "CamelMinioStorageClass": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of this object." },
+    "CamelMinioVersionId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The version Id of the object to be stored or returned from the current operation. *Consumer:* The version ID of the associated Minio object if available. Version\nIDs are only assigned to objects when an object is uploaded to an Minio bucket th [...]
+    "CamelMinioCannedAcl": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The canned acl that will be applied to the object. see\n`com.amazonaws.services.s3.model.CannedAccessControlList` for allowed\nvalues." },
+    "CamelMinioOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.minio.MinioOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteObjects", "deleteBucket", "listBuckets", "getObject", "getPartialObject" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "CamelMinioServerSideEncryption": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* Sets the server-side encryption algorithm when encrypting\nthe object using Minio-managed keys. For example use AES256. *Consumer:* The server-side encryption algorithm when encrypting the\nobject using Minio-managed keys." },
+    "CamelMinioExpirationTime": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The expiration time" },
+    "CamelMinioReplicationStatus": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The replication status" },
+    "CamelMinioOffset": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The offset" },
+    "CamelMinioLength": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The length" }
+  },
   "properties": {
     "bucketName": { "kind": "path", "displayName": "Bucket Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Bucket name" },
     "autoCreateBucket": { "kind": "parameter", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the bucket if bucket name not exist." },
diff --git a/components/camel-minio/src/main/docs/minio-component.adoc b/components/camel-minio/src/main/docs/minio-component.adoc
index ae09e0f..325c157 100644
--- a/components/camel-minio/src/main/docs/minio-component.adoc
+++ b/components/camel-minio/src/main/docs/minio-component.adoc
@@ -67,110 +67,9 @@ aggregate this number of messages.
 
 == Usage
 
-=== Message headers evaluated by the Minio producer
-
-[width="100%",cols="10%,10%,80%",options="header"]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelMinioBucketName` |`String` |The bucket Name which this object will be stored or which will be used for the current operation
-
-|`CamelMinioDestinationBucketName` |`String` |The bucket Destination Name which will be used for the current operation
-
-|`CamelMinioContentLength` |`Long` |The content length of this object.
-
-|`CamelMinioContentType` |`String` |The content type of this object.
-
-|`CamelMinioContentControl` |`String` |The content control of this object.
-
-|`CamelMinioContentDisposition` |`String` |The content disposition of this object.
-
-|`CamelMinioContentEncoding` |`String` |The content encoding of this object.
-
-|`CamelMinioContentMD5` |`String` |The md5 checksum of this object.
-
-|`CamelMinioDestinationObjectName` |`String` |The Destination key which will be used for the current operation
-
-|`CamelMinioObjectName` |`String` |The key under which this object will be stored or which will be used for the current operation
-
-|`CamelMinioLastModified` |`java.util.Date` |The last modified timestamp of this object.
-
-|`CamelMinioOperation` |`String` |The operation to perform. Permitted values are copyObject, deleteObject, deleteObjects, listBuckets, deleteBucket, downloadLink, listObjects
-
-|`CamelMinioStorageClass` |`String` |The storage class of this object.
-
-|`CamelMinioCannedAcl` |`String` |The canned acl that will be applied to the object. see
-`com.amazonaws.services.s3.model.CannedAccessControlList` for allowed
-values.
-
-//|`CamelMinioHeaders` |`Map<String,String>` |Support to get or set custom objectMetadata headers.
-
-|`CamelMinioServerSideEncryption` |String |Sets the server-side encryption algorithm when encrypting
-the object using Minio-managed keys. For example use AES256.
-
-|`CamelMinioVersionId` |`String` |The version Id of the object to be stored or returned from the current operation
-|=======================================================================
-
-=== Message headers set by the Minio producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-|`CamelMinioETag` |`String` |The ETag value for the newly uploaded object.
-
-|`CamelMinioVersionId` |`String` |The *optional* version ID of the newly uploaded object.
-
-//|`CamelMinioDownloadLinkExpiration` | `String` | The expiration (millis) of URL download link. The link will be stored into *CamelMinioDownloadLink* response header.
-
-|=======================================================================
-
-=== Message headers set by the Minio consumer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelMinioObjectName` |`String` |The key under which this object is stored.
-
-|`CamelMinioBucketName` |`String` |The name of the bucket in which this object is contained.
-
-|`CamelMinioETag` |`String` |The hex encoded 128-bit MD5 digest of the associated object according to
-RFC 1864. This data is used as an integrity check to verify that the
-data received by the caller is the same data that was sent by Minio
-
-|`CamelMinioLastModified` |`Date` |The value of the Last-Modified header, indicating the date and time at
-which Minio last recorded a modification to the associated object.
-
-|`CamelMinioVersionId` |`String` |The version ID of the associated Minio object if available. Version
-IDs are only assigned to objects when an object is uploaded to an Minio bucket that has object versioning enabled.
-
-|`CamelMinioContentType` |`String` |The Content-Type HTTP header, which indicates the type of content stored
-in the associated object. The value of this header is a standard MIME
-type.
-
-|`CamelMinioContentMD5` |`String` |The base64 encoded 128-bit MD5 digest of the associated object (content
-- not including headers) according to RFC 1864. This data is used as a
-message integrity check to verify that the data received by Minio is
-the same data that the caller sent.
-
-|`CamelMinioContentLength` |`Long` |The Content-Length HTTP header indicating the size of the associated
-object in bytes.
-
-|`CamelMinioContentEncoding` |`String` |The *optional* Content-Encoding HTTP header specifying what content
-encodings have been applied to the object and what decoding mechanisms
-must be applied in order to obtain the media-type referenced by the
-Content-Type field.
-
-|`CamelMinioContentDisposition` |`String` |The *optional* Content-Disposition HTTP header, which specifies
-presentational information such as the recommended filename for the
-object to be saved as.
-
-|`CamelMinioContentControl` |`String` |The *optional* Cache-Control HTTP header which allows the user to
-specify caching behavior along the HTTP request/reply chain.
-
-|`CamelMinioServerSideEncryption` |String |The server-side encryption algorithm when encrypting the
-object using Minio-managed keys.
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Minio Producer operations
 
diff --git a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConstants.java b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConstants.java
index a9e1673..545d17d 100644
--- a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConstants.java
+++ b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConstants.java
@@ -16,31 +16,104 @@
  */
 package org.apache.camel.component.minio;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Constants used in Camel Minio module
  */
 public interface MinioConstants {
 
     int BYTE_ARRAY_LENGTH = 1024;
+    @Metadata(description = "*Producer:* The bucket Name which this object will be stored or which will be used for the current operation. "
+                            +
+                            "*Consumer:* The name of the bucket in which this object is contained.",
+              javaType = "String")
     String BUCKET_NAME = "CamelMinioBucketName";
+    @Metadata(label = "producer", description = "The bucket Destination Name which will be used for the current operation.",
+              javaType = "String")
     String DESTINATION_BUCKET_NAME = "CamelMinioDestinationBucketName";
+    @Metadata(description = "*Producer:* The content control of this object. " +
+                            "*Consumer:* The *optional* Cache-Control HTTP header which allows the user to\n" +
+                            "specify caching behavior along the HTTP request/reply chain.",
+              javaType = "String")
     String CACHE_CONTROL = "CamelMinioContentControl";
+    @Metadata(description = "*Producer:* The content disposition of this object. " +
+                            "*Consumer:* The *optional* Content-Disposition HTTP header, which specifies\n" +
+                            "presentational information such as the recommended filename for the\n" +
+                            "object to be saved as.",
+              javaType = "String")
     String CONTENT_DISPOSITION = "CamelMinioContentDisposition";
+    @Metadata(description = "*Producer:* The content encoding of this object. " +
+                            "*Consumer:* The *optional* Content-Encoding HTTP header specifying what content\n" +
+                            "encodings have been applied to the object and what decoding mechanisms\n" +
+                            "must be applied in order to obtain the media-type referenced by the\n" +
+                            "Content-Type field.",
+              javaType = "String")
     String CONTENT_ENCODING = "CamelMinioContentEncoding";
+    @Metadata(description = "*Producer:* The content length of this object. " +
+                            "*Consumer:* The Content-Length HTTP header indicating the size of the associated\n" +
+                            "object in bytes.",
+              javaType = "Long")
     String CONTENT_LENGTH = "CamelMinioContentLength";
+    @Metadata(description = "*Producer:* The md5 checksum of this object. " +
+                            "*Consumer:* The base64 encoded 128-bit MD5 digest of the associated object (content\n" +
+                            "- not including headers) according to RFC 1864. This data is used as a\n" +
+                            "message integrity check to verify that the data received by Minio is\n" +
+                            "the same data that the caller sent.",
+              javaType = "String")
     String CONTENT_MD5 = "CamelMinioContentMD5";
+    @Metadata(description = "*Producer:* The content type of this object. " +
+                            "*Consumer:* The Content-Type HTTP header, which indicates the type of content stored\n" +
+                            "in the associated object. The value of this header is a standard MIME\n" +
+                            "type.",
+              javaType = "String")
     String CONTENT_TYPE = "CamelMinioContentType";
+    @Metadata(description = "*Producer:* The ETag value for the newly uploaded object. " +
+                            "*Consumer:* The hex encoded 128-bit MD5 digest of the associated object according to\n" +
+                            "RFC 1864. This data is used as an integrity check to verify that the\n" +
+                            "data received by the caller is the same data that was sent by Minio",
+              javaType = "String")
     String E_TAG = "CamelMinioETag";
+    @Metadata(description = "*Producer:* The key under which this object will be stored or which will be used for the current operation. "
+                            +
+                            "*Consumer:* The key under which this object is stored.",
+              javaType = "String")
     String OBJECT_NAME = "CamelMinioObjectName";
+    @Metadata(label = "producer", description = "The Destination key which will be used for the current operation.",
+              javaType = "String")
     String DESTINATION_OBJECT_NAME = "CamelMinioDestinationObjectName";
+    @Metadata(description = "*Producer:* The last modified timestamp of this object. " +
+                            "*Consumer:* The value of the Last-Modified header, indicating the date and time at\n" +
+                            "which Minio last recorded a modification to the associated object.",
+              javaType = "java.util.Date")
     String LAST_MODIFIED = "CamelMinioLastModified";
+    @Metadata(label = "producer", description = "The storage class of this object.", javaType = "String")
     String STORAGE_CLASS = "CamelMinioStorageClass";
+    @Metadata(description = "*Producer:* The version Id of the object to be stored or returned from the current operation. " +
+                            "*Consumer:* The version ID of the associated Minio object if available. Version\n" +
+                            "IDs are only assigned to objects when an object is uploaded to an Minio bucket that has object versioning enabled.",
+              javaType = "String")
     String VERSION_ID = "CamelMinioVersionId";
+    @Metadata(label = "producer", description = "The canned acl that will be applied to the object. see\n" +
+                                                "`com.amazonaws.services.s3.model.CannedAccessControlList` for allowed\n" +
+                                                "values.",
+              javaType = "String")
     String CANNED_ACL = "CamelMinioCannedAcl";
+    @Metadata(label = "producer", description = "The operation to perform.",
+              javaType = "org.apache.camel.component.minio.MinioOperations")
     String MINIO_OPERATION = "CamelMinioOperation";
+    @Metadata(description = "*Producer:* Sets the server-side encryption algorithm when encrypting\n" +
+                            "the object using Minio-managed keys. For example use AES256. " +
+                            "*Consumer:* The server-side encryption algorithm when encrypting the\n" +
+                            "object using Minio-managed keys.",
+              javaType = "String")
     String SERVER_SIDE_ENCRYPTION = "CamelMinioServerSideEncryption";
+    @Metadata(description = "The expiration time", javaType = "String")
     String EXPIRATION_TIME = "CamelMinioExpirationTime";
+    @Metadata(description = "The replication status", javaType = "String")
     String REPLICATION_STATUS = "CamelMinioReplicationStatus";
+    @Metadata(label = "producer", description = "The offset", javaType = "String")
     String OFFSET = "CamelMinioOffset";
+    @Metadata(label = "producer", description = "The length", javaType = "String")
     String LENGTH = "CamelMinioLength";
 }
diff --git a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java
index 3c01e8b..ed9417b 100644
--- a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java
+++ b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioEndpoint.java
@@ -40,7 +40,7 @@ import static org.apache.camel.util.ObjectHelper.isNotEmpty;
  * Store and retrieve objects from Minio Storage Service using Minio SDK.
  */
 @UriEndpoint(firstVersion = "3.5.0", scheme = "minio", title = "Minio", syntax = "minio:bucketName",
-             category = { Category.CLOUD, Category.FILE })
+             category = { Category.CLOUD, Category.FILE }, headersClass = MinioConstants.class)
 public class MinioEndpoint extends ScheduledPollEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(MinioEndpoint.class);

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

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 d8ab4e7cef556eec8c9c3687a7356ffe28535cd4
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Mar 30 19:10:43 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-kafka
---
 .../org/apache/camel/component/kafka/kafka.json    | 15 ++++++++
 .../camel-kafka/src/main/docs/kafka-component.adoc | 42 +++-------------------
 .../camel/component/kafka/KafkaConstants.java      | 30 +++++++++++++++-
 .../camel/component/kafka/KafkaEndpoint.java       |  2 +-
 4 files changed, 49 insertions(+), 40 deletions(-)

diff --git a/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json b/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
index f3ed143..9ca1624 100644
--- a/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
+++ b/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
@@ -129,6 +129,21 @@
     "sslTruststoreType": { "kind": "property", "displayName": "Ssl Truststore Type", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "JKS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file. Default value is JKS." },
     "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": {
+    "kafka.PARTITION_KEY": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Explicitly specify the partition" },
+    "kafka.PARTITION": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The partition where the message was stored" },
+    "kafka.KEY": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": true, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "*Producer:* The key of the message in order to ensure that all related message goes in the same partition. *Consumer:* The key of the message if configured" },
+    "kafka.TOPIC": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The topic from where the message originated" },
+    "kafka.OVERRIDE_TOPIC": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The topic to which send the message (override and takes precedence), and the header is not preserved." },
+    "kafka.OFFSET": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The offset of the message" },
+    "kafka.HEADERS": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.apache.kafka.common.header.Headers", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The record headers" },
+    "kafka.LAST_RECORD_BEFORE_COMMIT": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether or not it's the last record before commit (only available if `autoCommitEnable` endpoint parameter is `false`)" },
+    "kafka.LAST_POLL_RECORD": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates the last record within the current poll request (only available if `autoCommitEnable` endpoint parameter is `false` or `allowManualCommit` is `true`)" },
+    "kafka.TIMESTAMP": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of the message" },
+    "kafka.OVERRIDE_TIMESTAMP": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ProducerRecord also has an associated timestamp. If the user did provide a timestamp, the producer will stamp the  record with the provided timestamp and the header is not preserved." },
+    "org.apache.kafka.clients.producer.RecordMetadata": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List<RecordMetadata>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The metadata (only configured if `recordMetadata` endpoint parameter is `true`)" },
+    "CamelKafkaManualCommit": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.apache.camel.component.kafka.consumer.KafkaManualCommit", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Can be used for forcing manual offset commit when using Kafka consumer." }
+  },
   "properties": {
     "topic": { "kind": "path", "displayName": "Topic", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Name of the topic to use. On the consumer you can use comma to separate multiple topics. A producer can only send a me [...]
     "additionalProperties": { "kind": "parameter", "displayName": "Additional Properties", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "additionalProperties.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets additional  [...]
diff --git a/components/camel-kafka/src/main/docs/kafka-component.adoc b/components/camel-kafka/src/main/docs/kafka-component.adoc
index 7bbc937..c462106 100644
--- a/components/camel-kafka/src/main/docs/kafka-component.adoc
+++ b/components/camel-kafka/src/main/docs/kafka-component.adoc
@@ -55,46 +55,12 @@ For more information about Producer/Consumer configuration:
 http://kafka.apache.org/documentation.html#newconsumerconfigs[http://kafka.apache.org/documentation.html#newconsumerconfigs]
 http://kafka.apache.org/documentation.html#producerconfigs[http://kafka.apache.org/documentation.html#producerconfigs]
 
-== Message headers
-
-=== Consumer headers
-
-The following headers are available when consuming messages from Kafka.
-[width="100%",cols="2m,2m,1m,5",options="header"]
-|===
-| Header constant                          | Header value                      | Type    | Description
-| KafkaConstants.TOPIC                     | "kafka.TOPIC"                     | String  | The topic from where the message originated
-| KafkaConstants.PARTITION                 | "kafka.PARTITION"                 | Integer | The partition where the message was stored
-| KafkaConstants.OFFSET                    | "kafka.OFFSET"                    | Long    | The offset of the message
-| KafkaConstants.KEY                       | "kafka.KEY"                       | Object  | The key of the message if configured
-| KafkaConstants.HEADERS                   | "kafka.HEADERS"                   | org.apache.kafka.common.header.Headers  | The record headers
-| KafkaConstants.LAST_RECORD_BEFORE_COMMIT | "kafka.LAST_RECORD_BEFORE_COMMIT" | Boolean | Whether or not it's the last record before commit (only available if `autoCommitEnable` endpoint parameter is `false`)
-| KafkaConstants.LAST_POLL_RECORD | "kafka.LAST_POLL_RECORD" | Boolean | Indicates the last record within the current poll request (only available if `autoCommitEnable` endpoint parameter is `false` or `allowManualCommit` is `true`)
-| KafkaConstants.MANUAL_COMMIT             | "CamelKafkaManualCommit"          | KafkaManualCommit | Can be used for forcing manual offset commit when using Kafka consumer. |
-|===
-
-=== Producer headers
-
-Before sending a message to Kafka you can configure the following headers.
-[width="100%",cols="2m,2m,1m,5",options="header"]
-|===
-| Header constant              | Header value          | Type    | Description
-| KafkaConstants.KEY           | "kafka.KEY"           | Object  | *Required* The key of the message in order to ensure that all related message goes in the same partition
-| KafkaConstants.OVERRIDE_TOPIC | "kafka.OVERRIDE_TOPIC" | String  | The topic to which send the message (override and takes precedence), and the header is not preserved.
-| KafkaConstants.OVERRIDE_TIMESTAMP | "kafka.OVERRIDE_TIMESTAMP" | Long | The ProducerRecord also has an associated timestamp. If the user did provide a timestamp, the producer will stamp the  record with the provided timestamp and the header is not preserved. 
-| KafkaConstants.PARTITION_KEY | "kafka.PARTITION_KEY" | Integer | Explicitly specify the partition
-|===
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 If you want to send a message to a dynamic topic then use `KafkaConstants.OVERRIDE_TOPIC` as its used as a one-time header
-that are not send along the message, as its removed in the producer.
-
-After the message is sent to Kafka, the following headers are available
-[width="100%",cols="2m,2m,1m,5",options="header"]
-|===
-| Header constant                 | Header value                                       | Type                 | Description
-| KafkaConstants.KAFKA_RECORDMETA | "org.apache.kafka.clients.producer.RecordMetadata" | List<RecordMetadata> | The metadata (only configured if `recordMetadata` endpoint parameter is `true`
-|===
-
+that are not send along the message, as it's removed in the producer.
 
 == Consumer error handling
 
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConstants.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConstants.java
index edc2dcb..ba6e0ef 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConstants.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConstants.java
@@ -16,18 +16,42 @@
  */
 package org.apache.camel.component.kafka;
 
+import org.apache.camel.spi.Metadata;
+
 public final class KafkaConstants {
 
+    @Metadata(label = "producer", description = "Explicitly specify the partition", javaType = "Integer")
     public static final String PARTITION_KEY = "kafka.PARTITION_KEY";
+    @Metadata(label = "consumer", description = "The partition where the message was stored", javaType = "Integer")
     public static final String PARTITION = "kafka.PARTITION";
+    @Metadata(description = "*Producer:* The key of the message in order to ensure that all related message goes in the same partition. "
+                            +
+                            "*Consumer:* The key of the message if configured",
+              javaType = "Object", required = true)
     public static final String KEY = "kafka.KEY";
+    @Metadata(label = "consumer", description = "The topic from where the message originated", javaType = "String")
     public static final String TOPIC = "kafka.TOPIC";
+    @Metadata(label = "producer",
+              description = "The topic to which send the message (override and takes precedence), and the header is not preserved.",
+              javaType = "String")
     public static final String OVERRIDE_TOPIC = "kafka.OVERRIDE_TOPIC";
+    @Metadata(label = "consumer", description = "The offset of the message", javaType = "Long")
     public static final String OFFSET = "kafka.OFFSET";
+    @Metadata(label = "consumer", description = "The record headers", javaType = "org.apache.kafka.common.header.Headers")
     public static final String HEADERS = "kafka.HEADERS";
+    @Metadata(label = "consumer",
+              description = "Whether or not it's the last record before commit (only available if `autoCommitEnable` endpoint parameter is `false`)",
+              javaType = "Boolean")
     public static final String LAST_RECORD_BEFORE_COMMIT = "kafka.LAST_RECORD_BEFORE_COMMIT";
+    @Metadata(label = "consumer", description = "Indicates the last record within the current poll request " +
+                                                "(only available if `autoCommitEnable` endpoint parameter is `false` or `allowManualCommit` is `true`)",
+              javaType = "Boolean")
     public static final String LAST_POLL_RECORD = "kafka.LAST_POLL_RECORD";
+    @Metadata(label = "consumer", description = "The timestamp of the message", javaType = "Long")
     public static final String TIMESTAMP = "kafka.TIMESTAMP";
+    @Metadata(label = "producer", description = "The ProducerRecord also has an associated timestamp. " +
+                                                "If the user did provide a timestamp, the producer will stamp the  record with the provided timestamp and the header is not preserved.",
+              javaType = "Long")
     public static final String OVERRIDE_TIMESTAMP = "kafka.OVERRIDE_TIMESTAMP";
 
     @Deprecated
@@ -39,8 +63,12 @@ public final class KafkaConstants {
     public static final String KAFKA_DEFAULT_DESERIALIZER = "org.apache.kafka.common.serialization.StringDeserializer";
     public static final String KAFKA_DEFAULT_PARTITIONER = "org.apache.kafka.clients.producer.internals.DefaultPartitioner";
     public static final String PARTITIONER_RANGE_ASSIGNOR = "org.apache.kafka.clients.consumer.RangeAssignor";
+    @Metadata(label = "producer",
+              description = "The metadata (only configured if `recordMetadata` endpoint parameter is `true`)",
+              javaType = "List<RecordMetadata>")
     public static final String KAFKA_RECORDMETA = "org.apache.kafka.clients.producer.RecordMetadata";
-
+    @Metadata(label = "consumer", description = "Can be used for forcing manual offset commit when using Kafka consumer.",
+              javaType = "org.apache.camel.component.kafka.consumer.KafkaManualCommit")
     public static final String MANUAL_COMMIT = "CamelKafkaManualCommit";
 
     private KafkaConstants() {
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
index 1821084..e28309b 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
  * Sent and receive messages to/from an Apache Kafka broker.
  */
 @UriEndpoint(firstVersion = "2.13.0", scheme = "kafka", title = "Kafka", syntax = "kafka:topic",
-             category = { Category.MESSAGING })
+             category = { Category.MESSAGING }, headersClass = KafkaConstants.class)
 public class KafkaEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
 
     private static final Logger LOG = LoggerFactory.getLogger(KafkaEndpoint.class);

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

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 effbfde3d0639877f7bba1198dc78afb8433b614
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 11:51:23 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-metrics
---
 .../resources/org/apache/camel/component/metrics/metrics.json    | 9 +++++++++
 components/camel-metrics/src/main/docs/metrics-component.adoc    | 6 ++++--
 .../org/apache/camel/component/metrics/MetricsConstants.java     | 9 +++++++++
 .../java/org/apache/camel/component/metrics/MetricsEndpoint.java | 2 +-
 4 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/components/camel-metrics/src/generated/resources/org/apache/camel/component/metrics/metrics.json b/components/camel-metrics/src/generated/resources/org/apache/camel/component/metrics/metrics.json
index 90fbb89..273b25f 100644
--- a/components/camel-metrics/src/generated/resources/org/apache/camel/component/metrics/metrics.json
+++ b/components/camel-metrics/src/generated/resources/org/apache/camel/component/metrics/metrics.json
@@ -26,6 +26,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 [...]
     "metricRegistry": { "kind": "property", "displayName": "Metric Registry", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.codahale.metrics.MetricRegistry", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured MetricRegistry." }
   },
+  "headers": {
+    "CamelMetricsTimerAction": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.apache.camel.component.metrics.MetricsTimerAction", "enum": [ "start", "stop" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override timer action in URI" },
+    "CamelMetricsMeterMark": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override mark value in URI" },
+    "CamelMetricsHistogramValue": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override histogram value in URI" },
+    "CamelMetricsCounterDecrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override decrement value in URI" },
+    "CamelMetricsCounterIncrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override increment value in URI" },
+    "CamelMetricsGaugeSubject": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override subject value in URI" },
+    "CamelMetricsName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override name value in URI" }
+  },
   "properties": {
     "metricsType": { "kind": "path", "displayName": "Metrics Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.metrics.MetricsType", "enum": [ "gauge", "counter", "histogram", "meter", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" },
     "metricsName": { "kind": "path", "displayName": "Metrics Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of metrics" },
diff --git a/components/camel-metrics/src/main/docs/metrics-component.adoc b/components/camel-metrics/src/main/docs/metrics-component.adoc
index 48f3b2a..b817449 100644
--- a/components/camel-metrics/src/main/docs/metrics-component.adoc
+++ b/components/camel-metrics/src/main/docs/metrics-component.adoc
@@ -54,7 +54,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
 
 [[MetricsComponent-registry]]
 == Metric Registry
@@ -235,7 +237,7 @@ metrics:histogram:metricname[?options]
 |value |- |Value to use in histogram
 |===================================
 
-If `value` is not set nothing is added to histogram and warning is
+If `value` is not set, nothing is added to histogram and warning is
 logged.
 
 [source,java]
diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsConstants.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsConstants.java
index 6e33898..ff86314 100644
--- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsConstants.java
+++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsConstants.java
@@ -16,15 +16,24 @@
  */
 package org.apache.camel.component.metrics;
 
+import org.apache.camel.spi.Metadata;
+
 public final class MetricsConstants {
 
     public static final String HEADER_PREFIX = "CamelMetrics";
+    @Metadata(description = "Override timer action in URI", javaType = "org.apache.camel.component.metrics.MetricsTimerAction")
     public static final String HEADER_TIMER_ACTION = HEADER_PREFIX + "TimerAction";
+    @Metadata(description = "Override mark value in URI", javaType = "long")
     public static final String HEADER_METER_MARK = HEADER_PREFIX + "MeterMark";
+    @Metadata(description = "Override histogram value in URI", javaType = "long")
     public static final String HEADER_HISTOGRAM_VALUE = HEADER_PREFIX + "HistogramValue";
+    @Metadata(description = "Override decrement value in URI", javaType = "long")
     public static final String HEADER_COUNTER_DECREMENT = HEADER_PREFIX + "CounterDecrement";
+    @Metadata(description = "Override increment value in URI", javaType = "long")
     public static final String HEADER_COUNTER_INCREMENT = HEADER_PREFIX + "CounterIncrement";
+    @Metadata(description = "Override subject value in URI", javaType = "Object")
     public static final String HEADER_GAUGE_SUBJECT = HEADER_PREFIX + "GaugeSubject";
+    @Metadata(description = "Override name value in URI", javaType = "String")
     public static final String HEADER_METRIC_NAME = HEADER_PREFIX + "Name";
 
     private MetricsConstants() {
diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
index 0f5c5cf..9e69143 100644
--- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
+++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.support.DefaultEndpoint;
  * Collect various metrics directly from Camel routes using the DropWizard metrics library.
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "metrics", title = "Metrics", syntax = "metrics:metricsType:metricsName",
-             producerOnly = true, category = { Category.MONITORING })
+             producerOnly = true, category = { Category.MONITORING }, headersClass = MetricsConstants.class)
 public class MetricsEndpoint extends DefaultEndpoint {
 
     protected final MetricRegistry registry;

[camel] 14/18: CAMEL-17792: Add doc about the message headers of camel-mongodb

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 59ae141b5d750506435426680a214d8f02450d9f
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 18:16:32 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mongodb
---
 .../apache/camel/component/mongodb/mongodb.json    | 26 +++++++
 .../src/main/docs/mongodb-component.adoc           | 91 +---------------------
 .../camel/component/mongodb/MongoDbConstants.java  | 47 ++++++++++-
 .../camel/component/mongodb/MongoDbEndpoint.java   |  2 +-
 4 files changed, 77 insertions(+), 89 deletions(-)

diff --git a/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json b/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json
index c678d48..c048ad5 100644
--- a/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json
+++ b/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json
@@ -27,6 +27,32 @@
     "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": {
+    "CamelMongoDbOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.mongodb.MongoDbOperation or String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation this endpoint will execute against MongoDB." },
+    "CamelMongoDbResultTotalSize": { "kind": "header", "displayName": "", "group": "producer findAll", "label": "producer findAll", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Number of objects matching the query. This does not take limit\/skip into consideration." },
+    "CamelMongoDbResultPageSize": { "kind": "header", "displayName": "", "group": "producer findAll", "label": "producer findAll", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Number of objects matching the query. This does not take limit\/skip into consideration." },
+    "CamelMongoDbCriteria": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.bson.conversions.Bson", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The query to execute against MongoDB." },
+    "CamelMongoDbFieldsProjection": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.bson.conversions.Bson", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The project document." },
+    "CamelMongoDbBatchSize": { "kind": "header", "displayName": "", "group": "producer findAll aggregate", "label": "producer findAll aggregate", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of documents per batch." },
+    "CamelMongoDbNumToSkip": { "kind": "header", "displayName": "", "group": "producer findAll", "label": "producer findAll", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Discards a given number of elements at the beginning of the cursor." },
+    "CamelMongoDbMultiUpdate": { "kind": "header", "displayName": "", "group": "producer update", "label": "producer update", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the update should be applied to all objects matching. See\nhttp:\/\/www.mongodb.org\/display\/DOCS\/Atomic+Operations[Atomic Operations]" },
+    "CamelMongoDbUpsert": { "kind": "header", "displayName": "", "group": "producer update", "label": "producer update", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the database should create the element if it does not exist" },
+    "CamelMongoDbRecordsAffected": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of modified or deleted records" },
+    "CamelMongoDbRecordsMatched": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of documents matched by the query." },
+    "CamelMongoDbSortBy": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Bson or Document", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sort criteria." },
+    "CamelMongoDbDatabase": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the MongoDB database to target" },
+    "CamelMongoDbCollection": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the MongoDB collection to bind to this endpoint" },
+    "CamelMongoDbCollectionIndex": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "List<Bson>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The list of dynamic indexes to create on the fly" },
+    "CamelMongoDbLimit": { "kind": "header", "displayName": "", "group": "producer findAll", "label": "producer findAll", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Limits the number of elements returned." },
+    "CamelMongoDbTailable": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is from tailable" },
+    "CamelMongoWriteResult": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The result of the write operation" },
+    "CamelMongoOid": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Object or List<Object>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The OID(s) of the inserted record(s)" },
+    "CamelMongoDbDistinctQueryField": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The specified field name fow which we want to get the distinct values." },
+    "CamelMongoDbAllowDiskUse": { "kind": "header", "displayName": "", "group": "producer findAll aggregate", "label": "producer findAll aggregate", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets allowDiskUse MongoDB flag.\nThis is supported since MongoDB Server 4.3.1. Using this header with older MongoDB Server version can cause query to fail." },
+    "CamelMongoDbBulkOrdered": { "kind": "header", "displayName": "", "group": "producer bulkWrite", "label": "producer bulkWrite", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "TRUE", "description": "Perform an ordered or unordered operation execution." },
+    "_id": { "kind": "header", "displayName": "", "group": "consumer changeStreams", "label": "consumer changeStreams", "required": false, "javaType": "org.bson.types.ObjectId", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A document that contains the _id of the document created or modified by the insert,\nreplace, delete, update operations (i.e. CRUD operations). For sharded collections, also displays the full shard key for\nthe docume [...]
+    "CamelMongoDbStreamOperationType": { "kind": "header", "displayName": "", "group": "consumer changeStreams", "label": "consumer changeStreams", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of operation that occurred. Can\nbe any of the following values: insert, delete, replace, update, drop, rename, dropDatabase, invalidate." }
+  },
   "properties": {
     "connectionBean": { "kind": "path", "displayName": "Connection Bean", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the connection bean reference used to lookup a client for connecting to a database if no hosts parameter is present." },
     "collection": { "kind": "parameter", "displayName": "Collection", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of the MongoDB collection to bind to this endpoint" },
diff --git a/components/camel-mongodb/src/main/docs/mongodb-component.adoc b/components/camel-mongodb/src/main/docs/mongodb-component.adoc
index 5eea949..7d98334 100644
--- a/components/camel-mongodb/src/main/docs/mongodb-component.adoc
+++ b/components/camel-mongodb/src/main/docs/mongodb-component.adoc
@@ -75,7 +75,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
 
 
 [[MongoDB-ConfigurationofdatabaseinSpringXML]]
@@ -226,33 +228,6 @@ from("direct:findAll")
     .to("mock:resultFindAll");
 -----------------------------------------------------------------------------
 
-Paging and efficient retrieval is supported via the following headers:
-
-[width="100%",cols="10%,10%,60%,20%",options="header",]
-|=======================================================================
-|Header key |Quick constant |Description (extracted from MongoDB API doc) |Expected type
-
-|`CamelMongoDbNumToSkip` |`MongoDbConstants.NUM_TO_SKIP` |Discards a given number of elements at the beginning of the cursor. |int/Integer
-
-|`CamelMongoDbLimit` |`MongoDbConstants.LIMIT` |Limits the number of elements returned. |int/Integer
-
-|`CamelMongoDbBatchSize` |`MongoDbConstants.BATCH_SIZE` |Limits the number of elements returned in one batch. A cursor typically
-fetches a batch of result objects and store them locally. If batchSize
-is positive, it represents the size of each batch of objects retrieved.
-It can be adjusted to optimize performance and limit data transfer. If
-batchSize is negative, it will limit of number objects returned, that
-fit within the max batch size limit (usually 4MB), and cursor will be
-closed. For example if batchSize is -10, then the server will return a
-maximum of 10 documents and as many as can fit in 4MB, then close the
-cursor. Note that this feature is different from limit() in that
-documents must fit within a maximum size, and it removes the need to
-send a request to close the cursor server-side. The batch size can be
-changed even after a cursor is iterated, in which case the setting will
-apply on the next batch retrieval. |int/Integer
-|`CamelMongoDbAllowDiskUse` |`MongoDbConstants.ALLOW_DISK_USE` | Sets allowDiskUse MongoDB flag.
-This is supported since MongoDB Server 4.3.1. Using this header with older MongoDB Server version can cause query to fail. |boolean/Boolean
-|=======================================================================
-
 ===== Example with option _outputType=MongoIterable_ and batch size
 
 [source,java]
@@ -264,20 +239,6 @@ from("direct:findAll")
     .to("mock:resultFindAll");
 -----------------------------------------------------------------------------
 
-The `findAll` operation will also return the following OUT headers to
-enable you to iterate through result pages if you are using paging:
-
-[width="100%",cols="10%,10%,60%,20%",options="header",]
-|=======================================================================
-|Header key |Quick constant |Description (extracted from MongoDB API doc) |Data type
-
-|`CamelMongoDbResultTotalSize` |`MongoDbConstants.RESULT_TOTAL_SIZE` |Number of objects matching the query. This does not take limit/skip into
-consideration. |int/Integer
-
-|`CamelMongoDbResultPageSize` |`MongoDbConstants.RESULT_PAGE_SIZE` |Number of objects matching the query. This does not take limit/skip into
-consideration. |int/Integer
-|=======================================================================
-
 [TIP]
 ====
 *Supports optional parameters*
@@ -514,18 +475,6 @@ A header with key `CamelMongoDbRecordsAffected` will be returned
 (`MongoDbConstants.RECORDS_AFFECTED` constant) with the number of
 records updated (copied from `WriteResult.getN()`).
 
-Supports the following IN message headers:
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header key |Quick constant |Description (extracted from MongoDB API doc) |Expected type
-
-|`CamelMongoDbMultiUpdate` |`MongoDbConstants.MULTIUPDATE` |If the update should be applied to all objects matching. See
-http://www.mongodb.org/display/DOCS/Atomic+Operations[http://www.mongodb.org/display/DOCS/Atomic+Operations] |boolean/Boolean
-
-|`CamelMongoDbUpsert` |`MongoDbConstants.UPSERT` |If the database should create the element if it does not exist |boolean/Boolean
-|=======================================================================
-
 For example, the following will update *all* records whose filterField
 field equals true by setting the value of the "scientist" field to
 "Darwin":
@@ -609,13 +558,6 @@ By default, operations are executed in order and interrupted on the first write
 To instruct MongoDB to continue to process remaining write operations in the list, set the `CamelMongoDbBulkOrdered` IN message header to `false`. 
 Unordered operations are executed in parallel and this behavior is not guaranteed.
 
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header key |Quick constant |Description (extracted from MongoDB API doc) |Expected type
-
-|`CamelMongoDbBulkOrdered` |`MongoDbConstants.BULK_ORDERED` | Perform an ordered or unordered operation execution. Defaults to true. |boolean/Boolean
-|=======================================================================
-
 
 === Other operations
 
@@ -636,18 +578,7 @@ from("direct:aggregate")
     .to("mock:resultAggregate");
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
-
-Supports the following IN message headers:
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header key |Quick constant |Description (extracted from MongoDB API doc) |Expected type
-
-|`CamelMongoDbBatchSize` |`MongoDbConstants.BATCH_SIZE` | Sets the number of documents to return per batch. |int/Integer
-|`CamelMongoDbAllowDiskUse` |`MongoDbConstants.ALLOW_DISK_USE` | Enable aggregation pipeline stages to write data to temporary files. |boolean/Boolean
-|=======================================================================
-
-By default a List of all results is returned. This can be heavy on memory depending on the size of the results. A safer alternative is to set your
+By default, a List of all results is returned. This can be heavy on memory depending on the size of the results. A safer alternative is to set your
 outputType=MongoIterable. The next Processor will see an iterable in the message body allowing it to step through the results one by one. Thus setting
 a batch size and returning an iterable allows for efficient retrieval and processing of the result.
 
@@ -952,20 +883,6 @@ from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=ticket
 TIP: You can externalize the streamFilter value into a property placeholder which allows the endpoint
 URI parameters to be _cleaner_ and easier to read.
 
-The `changeStreams` consumer type will also return the following OUT headers:
-
-[width="100%",cols="10%,10%,60%,20%",options="header",]
-|=======================================================================
-|Header key |Quick constant |Description (extracted from MongoDB API doc) |Data type
-
-|`CamelMongoDbStreamOperationType` |`MongoDbConstants.STREAM_OPERATION_TYPE` | The type of operation that occurred. Can
-be any of the following values: insert, delete, replace, update, drop, rename, dropDatabase, invalidate. |String
-
-|`_id` |`MongoDbConstants.MONGO_ID` |A document that contains the _id of the document created or modified by the insert,
-replace, delete, update operations (i.e. CRUD operations). For sharded collections, also displays the full shard key for
-the document. The _id field is not repeated if it is already a part of the shard key. |ObjectId
-|=======================================================================
-
 == Type conversions
 
 The `MongoDbBasicConverters` type converter included with the
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbConstants.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbConstants.java
index ebcde5c..9a228f9 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbConstants.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbConstants.java
@@ -16,33 +16,78 @@
  */
 package org.apache.camel.component.mongodb;
 
+import org.apache.camel.spi.Metadata;
+
 public final class MongoDbConstants {
 
+    @Metadata(label = "producer", description = "The operation this endpoint will execute against MongoDB.",
+              javaType = "org.apache.camel.component.mongodb.MongoDbOperation or String")
     public static final String OPERATION_HEADER = "CamelMongoDbOperation";
+    @Metadata(label = "producer findAll",
+              description = "Number of objects matching the query. This does not take limit/skip into consideration.",
+              javaType = "Integer")
     public static final String RESULT_TOTAL_SIZE = "CamelMongoDbResultTotalSize";
+    @Metadata(label = "producer findAll",
+              description = "Number of objects matching the query. This does not take limit/skip into consideration.",
+              javaType = "Integer")
     public static final String RESULT_PAGE_SIZE = "CamelMongoDbResultPageSize";
-
+    @Metadata(label = "producer", description = "The query to execute against MongoDB.", javaType = "org.bson.conversions.Bson")
     public static final String CRITERIA = "CamelMongoDbCriteria";
+    @Metadata(label = "producer", description = "The project document.", javaType = "org.bson.conversions.Bson")
     public static final String FIELDS_PROJECTION = "CamelMongoDbFieldsProjection";
+    @Metadata(label = "producer findAll aggregate", description = "The number of documents per batch.", javaType = "Integer")
     public static final String BATCH_SIZE = "CamelMongoDbBatchSize";
+    @Metadata(label = "producer findAll", description = "Discards a given number of elements at the beginning of the cursor.",
+              javaType = "Integer")
     public static final String NUM_TO_SKIP = "CamelMongoDbNumToSkip";
     public static final String INSERT_RECORDS_AFFECTED = "CamelMongoDbInsertRecordsAffected";
+    @Metadata(label = "producer update", description = "If the update should be applied to all objects matching. See\n" +
+                                                       "http://www.mongodb.org/display/DOCS/Atomic+Operations[Atomic Operations]",
+              javaType = "Boolean")
     public static final String MULTIUPDATE = "CamelMongoDbMultiUpdate";
+    @Metadata(label = "producer update", description = "If the database should create the element if it does not exist",
+              javaType = "Boolean")
     public static final String UPSERT = "CamelMongoDbUpsert";
+    @Metadata(label = "producer", description = "The number of modified or deleted records", javaType = "long")
     public static final String RECORDS_AFFECTED = "CamelMongoDbRecordsAffected";
+    @Metadata(label = "producer", description = "The number of documents matched by the query.", javaType = "long")
     public static final String RECORDS_MATCHED = "CamelMongoDbRecordsMatched";
+    @Metadata(label = "producer", description = "The sort criteria.", javaType = "Bson or Document")
     public static final String SORT_BY = "CamelMongoDbSortBy";
+    @Metadata(description = "The name of the MongoDB database to target", javaType = "String")
     public static final String DATABASE = "CamelMongoDbDatabase";
+    @Metadata(description = "The name of the MongoDB collection to bind to this endpoint", javaType = "String")
     public static final String COLLECTION = "CamelMongoDbCollection";
+    @Metadata(label = "producer", description = "The list of dynamic indexes to create on the fly", javaType = "List<Bson>")
     public static final String COLLECTION_INDEX = "CamelMongoDbCollectionIndex";
+    @Metadata(label = "producer findAll", description = "Limits the number of elements returned.", javaType = "Integer")
     public static final String LIMIT = "CamelMongoDbLimit";
+    @Metadata(label = "consumer", description = "Is from tailable", javaType = "Boolean")
     public static final String FROM_TAILABLE = "CamelMongoDbTailable";
+    @Metadata(label = "producer", description = "The result of the write operation", javaType = "Object")
     public static final String WRITERESULT = "CamelMongoWriteResult";
+    @Metadata(label = "producer", description = "The OID(s) of the inserted record(s)", javaType = "Object or List<Object>")
     public static final String OID = "CamelMongoOid";
+    @Metadata(label = "producer", description = "The specified field name fow which we want to get the distinct values.",
+              javaType = "String")
     public static final String DISTINCT_QUERY_FIELD = "CamelMongoDbDistinctQueryField";
+    @Metadata(label = "producer findAll aggregate", description = "Sets allowDiskUse MongoDB flag.\n" +
+                                                                  "This is supported since MongoDB Server 4.3.1. Using this header with older MongoDB Server version can cause query to fail.",
+              javaType = "Boolean")
     public static final String ALLOW_DISK_USE = "CamelMongoDbAllowDiskUse";
+    @Metadata(label = "producer bulkWrite", description = "Perform an ordered or unordered operation execution. ",
+              javaType = "Boolean", defaultValue = "TRUE")
     public static final String BULK_ORDERED = "CamelMongoDbBulkOrdered";
+    @Metadata(label = "consumer changeStreams",
+              description = "A document that contains the _id of the document created or modified by the insert,\n" +
+                            "replace, delete, update operations (i.e. CRUD operations). For sharded collections, also displays the full shard key for\n"
+                            +
+                            "the document. The _id field is not repeated if it is already a part of the shard key.",
+              javaType = "org.bson.types.ObjectId")
     public static final String MONGO_ID = "_id"; // default id field
+    @Metadata(label = "consumer changeStreams", description = "The type of operation that occurred. Can\n" +
+                                                              "be any of the following values: insert, delete, replace, update, drop, rename, dropDatabase, invalidate.",
+              javaType = "String")
     public static final String STREAM_OPERATION_TYPE = "CamelMongoDbStreamOperationType";
 
     private MongoDbConstants() {
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
index ed614ec..99c8dce 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
@@ -58,7 +58,7 @@ import static org.apache.camel.component.mongodb.MongoDbOutputType.MongoIterable
  * Perform operations on MongoDB documents and collections.
  */
 @UriEndpoint(firstVersion = "2.19.0", scheme = "mongodb", title = "MongoDB", syntax = "mongodb:connectionBean",
-             category = { Category.DATABASE, Category.NOSQL })
+             category = { Category.DATABASE, Category.NOSQL }, headersClass = MongoDbConstants.class)
 public class MongoDbEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(MongoDbEndpoint.class);

[camel] 13/18: CAMEL-17792: Add doc about the message headers of camel-mllp

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 5cc3870a612933eca52aadd5a557a35e93927323
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 16:28:08 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mllp
---
 .../org/apache/camel/component/mllp/mllp.json      | 20 +++++++++
 .../camel-mllp/src/main/docs/mllp-component.adoc   | 45 ++-------------------
 .../apache/camel/component/mllp/MllpConstants.java | 47 +++++++++++++++-------
 .../apache/camel/component/mllp/MllpEndpoint.java  |  3 +-
 4 files changed, 58 insertions(+), 57 deletions(-)

diff --git a/components/camel-mllp/src/generated/resources/org/apache/camel/component/mllp/mllp.json b/components/camel-mllp/src/generated/resources/org/apache/camel/component/mllp/mllp.json
index 7dbe33a..e0a51af 100644
--- a/components/camel-mllp/src/generated/resources/org/apache/camel/component/mllp/mllp.json
+++ b/components/camel-mllp/src/generated/resources/org/apache/camel/component/mllp/mllp.json
@@ -53,6 +53,26 @@
     "sendBufferSize": { "kind": "property", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the SO_SNDBUF option to the specified value (in bytes)" },
     "idleTimeout": { "kind": "property", "displayName": "Idle Timeout", "group": "tcp", "label": "advanced,tcp", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The approximate idle time allowed before the Client TCP Connection will be reset. A null value or a value less than or e [...]
   },
+  "headers": {
+    "CamelMllpLocalAddress": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The local TCP Address of the Socket" },
+    "CamelMllpRemoteAddress": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The remote TCP Address of the Socket" },
+    "CamelMllpAcknowledgement": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "byte[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HL7 Acknowledgment received in bytes" },
+    "CamelMllpAcknowledgementString": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HL7 Acknowledgment received, converted to a String" },
+    "CamelMllpAcknowledgementType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The HL7 acknowledgement type (AA, AE, AR, etc)" },
+    "CamelMllpSendingApplication": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-3 value" },
+    "CamelMllpSendingFacility": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-4 value" },
+    "CamelMllpReceivingApplication": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-5 value" },
+    "CamelMllpReceivingFacility": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-6 value" },
+    "CamelMllpTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-7 value" },
+    "CamelMllpSecurity": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-8 value" },
+    "CamelMllpMessageType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-9 value" },
+    "CamelMllpEventType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-9.1 value" },
+    "CamelMllpTriggerEvent": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-9.2 value" },
+    "CamelMllpMessageControlId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-10 value" },
+    "CamelMllpProcessingId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-11 value" },
+    "CamelMllpVersionId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-12 value" },
+    "CamelMllpCharset": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MSH-18 value" }
+  },
   "properties": {
     "hostname": { "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Hostname or IP for connection for the TCP connection. The default value is null, which means any local IP address" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Port number for the TCP connection" },
diff --git a/components/camel-mllp/src/main/docs/mllp-component.adoc b/components/camel-mllp/src/main/docs/mllp-component.adoc
index 98a5231..0bb1e46 100644
--- a/components/camel-mllp/src/main/docs/mllp-component.adoc
+++ b/components/camel-mllp/src/main/docs/mllp-component.adoc
@@ -60,7 +60,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
 
 == MLLP Consumer
 
@@ -74,33 +76,6 @@ the CamelMllpAcknowledgementType exchange property. The MLLP Consumer
 can read messages without sending any HL7 Acknowledgement if the
 automatic acknowledgement is disabled and exchange pattern is InOnly.
 
-=== Message Headers
-
-The MLLP Consumer adds these headers on the Camel message:
-
-[width="100%",cols="<34%,<33%,<33%",]
-|===========================================
-|*Key* |*Description* |
-|CamelMllpLocalAddress | The local TCP Address of the Socket |
-|CamelMllpRemoteAddress | The local TCP Address of the Socket |
-|CamelMllpSendingApplication | MSH-3 value |
-|CamelMllpSendingFacility | MSH-4 value |
-|CamelMllpReceivingApplication | MSH-5 value |
-|CamelMllpReceivingFacility | MSH-6 value |
-|CamelMllpTimestamp | MSH-7 value |
-|CamelMllpSecurity | MSH-8 value |
-|CamelMllpMessageType | MSH-9 value |
-|CamelMllpEventType | MSH-9-1 value |
-|CamelMllpTriggerEvent | MSH-9-2 value |
-|CamelMllpMessageControlId | MSH-10 value |
-|CamelMllpProcessingId | MSH-11 value |
-|CamelMllpVersionId | MSH-12 value |
-|CamelMllpCharset | MSH-18 value |
-|===========================================
-
-All headers are String types. If a header value is missing, its value
-is null.
-
 === Exchange Properties
 
 The type of acknowledgment the MLLP Consumer generates and state of the TCP Socket can be controlled
@@ -130,20 +105,6 @@ received.  The received acknowledgement is interrogated and an exception
 is raised in the event of a negative acknowledgement. The MLLP Producer
 can ignore acknowledgements when configured with InOnly exchange pattern.
 
-=== Message Headers
-
-The MLLP Producer adds these headers on the Camel message:
-
-[width="100%",cols="<34%,<33%,<33%",]
-|===================================
-|*Key* |*Description* |
-|CamelMllpLocalAddress | The local TCP Address of the Socket | 
-|CamelMllpRemoteAddress | The remote TCP Address of the Socket | 
-|CamelMllpAcknowledgement | The HL7 Acknowledgment byte[] received | 
-|CamelMllpAcknowledgementString | The HL7 Acknowledgment received, converted to a String | 
-|CamelMllpAcknowledgementType | The HL7 acknowledgement type (AA, AE, AR, etc)
-|===================================
-
 === Exchange Properties
 
 The state of the TCP Socket can be controlled by these properties on the Camel exchange:
diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConstants.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConstants.java
index 0efc03d..00eede0 100644
--- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConstants.java
+++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpConstants.java
@@ -16,15 +16,21 @@
  */
 package org.apache.camel.component.mllp;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Constants for the MLLP Protocol and the Camel MLLP component.
  */
 public final class MllpConstants {
+    @Metadata(description = "The local TCP Address of the Socket", javaType = "String")
     public static final String MLLP_LOCAL_ADDRESS = "CamelMllpLocalAddress";
+    @Metadata(description = "The remote TCP Address of the Socket", javaType = "String")
     public static final String MLLP_REMOTE_ADDRESS = "CamelMllpRemoteAddress";
-
+    @Metadata(description = "The HL7 Acknowledgment received in bytes", javaType = "byte[]")
     public static final String MLLP_ACKNOWLEDGEMENT = "CamelMllpAcknowledgement";
+    @Metadata(description = "The HL7 Acknowledgment received, converted to a String", javaType = "String")
     public static final String MLLP_ACKNOWLEDGEMENT_STRING = "CamelMllpAcknowledgementString";
+    @Metadata(description = "The HL7 acknowledgement type (AA, AE, AR, etc)", javaType = "String")
     public static final String MLLP_ACKNOWLEDGEMENT_TYPE = "CamelMllpAcknowledgementType";
     public static final String MLLP_ACKNOWLEDGEMENT_MSA_TEXT = "CamelMllpAcknowledgementMsaText";
 
@@ -40,31 +46,44 @@ public final class MllpConstants {
     public static final String MLLP_CLOSE_CONNECTION_AFTER_SEND = "CamelMllpCloseConnectionAfterSend";
     public static final String MLLP_RESET_CONNECTION_AFTER_SEND = "CamelMllpResetConnectionAfterSend";
 
-    // MSH-3
+    /** MSH-3 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_SENDING_APPLICATION = "CamelMllpSendingApplication";
-    // MSH-4
+    /** MSH-4 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_SENDING_FACILITY = "CamelMllpSendingFacility";
-    // MSH-5
+    /** MSH-5 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_RECEIVING_APPLICATION = "CamelMllpReceivingApplication";
-    // MSH-6
+    /** MSH-6 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_RECEIVING_FACILITY = "CamelMllpReceivingFacility";
-    // MSH-7
+    /** MSH-7 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_TIMESTAMP = "CamelMllpTimestamp";
-    // MSH-8
+    /** MSH-8 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_SECURITY = "CamelMllpSecurity";
-    // MSH-9
+    /** MSH-9 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_MESSAGE_TYPE = "CamelMllpMessageType";
-    // MSH-9.1
+    /** MSH-9.1 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_EVENT_TYPE = "CamelMllpEventType";
-    // MSH-9.2
+    /** MSH-9.2 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_TRIGGER_EVENT = "CamelMllpTriggerEvent";
-    // MSH-10
+    /** MSH-10 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_MESSAGE_CONTROL = "CamelMllpMessageControlId";
-    // MSH-11
+    /** MSH-11 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_PROCESSING_ID = "CamelMllpProcessingId";
-    // MSH-12
+    /** MSH-12 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_VERSION_ID = "CamelMllpVersionId";
-    // MSH-18
+    /** MSH-18 value */
+    @Metadata(label = "consumer", javaType = "String")
     public static final String MLLP_CHARSET = "CamelMllpCharset";
 
     private MllpConstants() {
diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java
index 55ecef6..99499f2 100644
--- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java
+++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpEndpoint.java
@@ -48,7 +48,8 @@ import org.slf4j.Logger;
  */
 @ManagedResource(description = "MLLP Endpoint")
 @UriEndpoint(scheme = "mllp", firstVersion = "2.17.0", title = "MLLP", syntax = "mllp:hostname:port",
-             category = { Category.NETWORKING, Category.RPC, Category.MLLP }, generateConfigurer = true)
+             category = { Category.NETWORKING, Category.RPC, Category.MLLP }, generateConfigurer = true,
+             headersClass = MllpConstants.class)
 public class MllpEndpoint extends DefaultEndpoint {
 
     @UriPath

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

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 66e7f994104b8dca24912bc55df575e6f4202a20
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Mar 31 12:03:20 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-micrometer
---
 .../org/apache/camel/component/micrometer/micrometer.json         | 8 ++++++++
 .../camel-micrometer/src/main/docs/micrometer-component.adoc      | 4 +++-
 .../apache/camel/component/micrometer/MicrometerConstants.java    | 8 ++++++++
 .../org/apache/camel/component/micrometer/MicrometerEndpoint.java | 3 ++-
 4 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/components/camel-micrometer/src/generated/resources/org/apache/camel/component/micrometer/micrometer.json b/components/camel-micrometer/src/generated/resources/org/apache/camel/component/micrometer/micrometer.json
index 2919d24..d66ecb9 100644
--- a/components/camel-micrometer/src/generated/resources/org/apache/camel/component/micrometer/micrometer.json
+++ b/components/camel-micrometer/src/generated/resources/org/apache/camel/component/micrometer/micrometer.json
@@ -26,6 +26,14 @@
     "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 [...]
     "metricsRegistry": { "kind": "property", "displayName": "Metrics Registry", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.micrometer.core.instrument.MeterRegistry", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured MetricRegistry." }
   },
+  "headers": {
+    "CamelMetricsTimerAction": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.apache.camel.component.micrometer.MicrometerTimerAction", "enum": [ "start", "stop" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override timer action in URI" },
+    "CamelMetricsHistogramValue": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override histogram value in URI" },
+    "CamelMetricsCounterDecrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Double", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override decrement value in URI" },
+    "CamelMetricsCounterIncrement": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Double", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override increment value in URI" },
+    "CamelMetricsName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override name value in URI" },
+    "CamelMetricsTags": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "java.lang.Iterable<Tag>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To augment meter tags defined as URI parameters" }
+  },
   "properties": {
     "metricsType": { "kind": "path", "displayName": "Metrics Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "io.micrometer.core.instrument.Meter.Type", "enum": [ "counter", "distribution_summary", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" },
     "metricsName": { "kind": "path", "displayName": "Metrics Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of metrics" },
diff --git a/components/camel-micrometer/src/main/docs/micrometer-component.adoc b/components/camel-micrometer/src/main/docs/micrometer-component.adoc
index 2233513..1f94075 100644
--- a/components/camel-micrometer/src/main/docs/micrometer-component.adoc
+++ b/components/camel-micrometer/src/main/docs/micrometer-component.adoc
@@ -59,7 +59,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
 
 [[MicrometerComponent-registry]]
 == Meter Registry
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java
index 2494b14..175db43 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java
@@ -19,15 +19,23 @@ package org.apache.camel.component.micrometer;
 import java.util.function.Predicate;
 
 import io.micrometer.core.instrument.Meter;
+import org.apache.camel.spi.Metadata;
 
 public final class MicrometerConstants {
 
     public static final String HEADER_PREFIX = "CamelMetrics";
+    @Metadata(description = "Override timer action in URI",
+              javaType = "org.apache.camel.component.micrometer.MicrometerTimerAction")
     public static final String HEADER_TIMER_ACTION = HEADER_PREFIX + "TimerAction";
+    @Metadata(description = "Override histogram value in URI", javaType = "long")
     public static final String HEADER_HISTOGRAM_VALUE = HEADER_PREFIX + "HistogramValue";
+    @Metadata(description = "Override decrement value in URI", javaType = "Double")
     public static final String HEADER_COUNTER_DECREMENT = HEADER_PREFIX + "CounterDecrement";
+    @Metadata(description = "Override increment value in URI", javaType = "Double")
     public static final String HEADER_COUNTER_INCREMENT = HEADER_PREFIX + "CounterIncrement";
+    @Metadata(description = "Override name value in URI", javaType = "String")
     public static final String HEADER_METRIC_NAME = HEADER_PREFIX + "Name";
+    @Metadata(description = "To augment meter tags defined as URI parameters", javaType = "java.lang.Iterable<Tag>")
     public static final String HEADER_METRIC_TAGS = HEADER_PREFIX + "Tags";
 
     public static final String DEFAULT_CAMEL_MESSAGE_HISTORY_METER_NAME = "CamelMessageHistory";
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
index 5bec25e..f459a2c 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerEndpoint.java
@@ -35,7 +35,8 @@ import org.apache.camel.support.DefaultEndpoint;
  * Collect various metrics directly from Camel routes using the Micrometer library.
  */
 @UriEndpoint(firstVersion = "2.22.0", scheme = "micrometer", title = "Micrometer",
-             syntax = "micrometer:metricsType:metricsName", producerOnly = true, category = { Category.MONITORING })
+             syntax = "micrometer:metricsType:metricsName", producerOnly = true, category = { Category.MONITORING },
+             headersClass = MicrometerConstants.class)
 public class MicrometerEndpoint extends DefaultEndpoint {
 
     protected MeterRegistry registry;