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 16:46:35 UTC

[camel] branch CAMEL-17792/doc-message-headers created (now 10335d5)

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 10335d5  CAMEL-17792: Add doc about the message headers of camel-optaplanner

This branch includes the following new commits:

     new a53ff14  CAMEL-17792: Add doc about the message headers of camel-nagios
     new 7ce24d4  CAMEL-17792: Add doc about the message headers of camel-nats
     new 94222bc  CAMEL-17792: Add doc about the message headers of camel-netty
     new f37ec2e  CAMEL-17792: Add doc about the message headers of camel-netty-http
     new 1d2d7d0  CAMEL-17792: Add doc about the message headers of camel-nitrite
     new 36f46f5  CAMEL-17792: Add doc about the message headers of camel-nsq
     new 38f408e  CAMEL-17792: Add doc about the message headers of camel-oaipmh
     new 329adbb  CAMEL-17792: Add doc about the message headers of camel-olingo2
     new a32b83c  CAMEL-17792: Add doc about the message headers of camel-olingo4
     new 33d2e55  CAMEL-17792: Add doc about the message headers of camel-openstack
     new 10335d5  CAMEL-17792: Add doc about the message headers of camel-optaplanner

The 11 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] 10/11: CAMEL-17792: Add doc about the message headers of camel-openstack

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 33d2e551bcaefe61720e8fef8873024e428631d2
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 17:39:45 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-openstack
---
 .../openstack/cinder/openstack-cinder.json         | 13 +++
 .../openstack/glance/openstack-glance.json         | 14 ++++
 .../openstack/keystone/openstack-keystone.json     | 12 +++
 .../openstack/neutron/openstack-neutron.json       | 24 ++++++
 .../component/openstack/nova/openstack-nova.json   | 16 ++++
 .../component/openstack/swift/openstack-swift.json | 16 ++++
 .../src/main/docs/openstack-cinder-component.adoc  | 50 +-----------
 .../src/main/docs/openstack-glance-component.adoc  | 35 +-------
 .../main/docs/openstack-keystone-component.adoc    | 90 +--------------------
 .../src/main/docs/openstack-neutron-component.adoc | 93 +---------------------
 .../src/main/docs/openstack-nova-component.adoc    | 66 +--------------
 .../src/main/docs/openstack-swift-component.adoc   | 50 +-----------
 .../openstack/cinder/CinderConstants.java          |  8 ++
 .../component/openstack/cinder/CinderEndpoint.java |  6 +-
 .../openstack/common/OpenstackConstants.java       | 15 ++++
 .../openstack/glance/GlanceConstants.java          |  9 +++
 .../component/openstack/glance/GlanceEndpoint.java |  6 +-
 .../openstack/keystone/KeystoneConstants.java      |  8 ++
 .../openstack/keystone/KeystoneEndpoint.java       |  7 +-
 .../openstack/neutron/NeutronConstants.java        | 22 +++++
 .../openstack/neutron/NeutronEndpoint.java         |  7 +-
 .../component/openstack/nova/NovaConstants.java    | 12 +++
 .../component/openstack/nova/NovaEndpoint.java     |  6 +-
 .../component/openstack/swift/SwiftConstants.java  | 18 +++++
 .../component/openstack/swift/SwiftEndpoint.java   |  6 +-
 .../swift/producer/ContainerProducer.java          | 17 ++--
 26 files changed, 239 insertions(+), 387 deletions(-)

diff --git a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/cinder/openstack-cinder.json b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/cinder/openstack-cinder.json
index 1ad7eea..772f53e 100644
--- a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/cinder/openstack-cinder.json
+++ b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/cinder/openstack-cinder.json
@@ -25,6 +25,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": {
+    "size": { "kind": "header", "displayName": "", "group": "volume", "label": "volume", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Size of volume." },
+    "volumeType": { "kind": "header", "displayName": "", "group": "volume", "label": "volume", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Volume type." },
+    "imageRef": { "kind": "header", "displayName": "", "group": "volume", "label": "volume", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ID of image." },
+    "snapshotId": { "kind": "header", "displayName": "", "group": "volume", "label": "volume", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ID of snapshot." },
+    "isBootable": { "kind": "header", "displayName": "", "group": "volume", "label": "volume", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is bootable." },
+    "volumeId": { "kind": "header", "displayName": "", "group": "snapshot", "label": "snapshot", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Volume ID." },
+    "force": { "kind": "header", "displayName": "", "group": "snapshot", "label": "snapshot", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Force." },
+    "operation": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ID." },
+    "name": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name." },
+    "description": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The description." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "OpenStack host url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "V2", "V3" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "V3", "description": "OpenStack API version" },
diff --git a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/glance/openstack-glance.json b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/glance/openstack-glance.json
index 45f8451..3cfb3dd 100644
--- a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/glance/openstack-glance.json
+++ b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/glance/openstack-glance.json
@@ -25,6 +25,20 @@
     "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": {
+    "diskFormat": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.openstack4j.model.image.DiskFormat", "enum": [ "RAW", "VHD", "VMDK", "VDI", "ISO", "QCOW2", "AKI", "ARI", "AMI", "UNRECOGNIZED" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of flavor VCPU." },
+    "containerFormat": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "org.openstack4j.model.image.ContainerFormat", "enum": [ "BARE", "OVF", "AKI", "ARI", "AMI", "DOCKER", "UNRECOGNIZED" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Size of RAM." },
+    "owner": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Image owner." },
+    "isPublic": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is public." },
+    "minRam": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Minimum ram." },
+    "minDisk": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Minimum disk." },
+    "size": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Size." },
+    "checksum": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Checksum." },
+    "operation": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ID." },
+    "name": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name." },
+    "properties": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The image properties." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "OpenStack host url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "V2", "V3" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "V3", "description": "OpenStack API version" },
diff --git a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/keystone/openstack-keystone.json b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/keystone/openstack-keystone.json
index dac27d7..2ee2faa 100644
--- a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/keystone/openstack-keystone.json
+++ b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/keystone/openstack-keystone.json
@@ -25,6 +25,18 @@
     "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": {
+    "description": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The description." },
+    "domainId": { "kind": "header", "displayName": "", "group": "group project user", "label": "group project user", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ID of the domain." },
+    "parentId": { "kind": "header", "displayName": "", "group": "project", "label": "project", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The parent project ID." },
+    "password": { "kind": "header", "displayName": "", "group": "user", "label": "user", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "User's password." },
+    "email": { "kind": "header", "displayName": "", "group": "user", "label": "user", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "User's email." },
+    "userId": { "kind": "header", "displayName": "", "group": "group", "label": "group", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ID of the user." },
+    "groupId": { "kind": "header", "displayName": "", "group": "group", "label": "group", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ID of the group." },
+    "operation": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ID." },
+    "name": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "OpenStack host url" },
     "config": { "kind": "parameter", "displayName": "Config", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.openstack4j.core.transport.Config", "deprecated": false, "autowired": false, "secret": false, "description": "OpenStack configuration" },
diff --git a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/neutron/openstack-neutron.json b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/neutron/openstack-neutron.json
index 1107517..f9eedd7 100644
--- a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/neutron/openstack-neutron.json
+++ b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/neutron/openstack-neutron.json
@@ -25,6 +25,30 @@
     "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": {
+    "tenantId": { "kind": "header", "displayName": "", "group": "network port router", "label": "network port router", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Tenant ID." },
+    "networkId": { "kind": "header", "displayName": "", "group": "subnet port", "label": "subnet port", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Network ID." },
+    "adminStateUp": { "kind": "header", "displayName": "", "group": "network", "label": "network", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "AdminStateUp header." },
+    "networkType": { "kind": "header", "displayName": "", "group": "network", "label": "network", "required": false, "javaType": "org.openstack4j.model.network.NetworkType", "enum": [ "LOCAL", "FLAT", "VLAN", "VXLAN", "GRE" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Network type." },
+    "physicalNetwork": { "kind": "header", "displayName": "", "group": "network", "label": "network", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Physical network." },
+    "segmentId": { "kind": "header", "displayName": "", "group": "network", "label": "network", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Segment ID." },
+    "isShared": { "kind": "header", "displayName": "", "group": "network", "label": "network", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is shared." },
+    "isRouterExternal": { "kind": "header", "displayName": "", "group": "network", "label": "network", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is router external." },
+    "enableDHCP": { "kind": "header", "displayName": "", "group": "subnet", "label": "subnet", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Enable DHCP." },
+    "gateway": { "kind": "header", "displayName": "", "group": "subnet", "label": "subnet", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Gateway." },
+    "ipVersion": { "kind": "header", "displayName": "", "group": "subnet", "label": "subnet", "required": false, "javaType": "org.openstack4j.model.network.IPVersionType", "enum": [ "V4", "V6" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "IP version." },
+    "cidr": { "kind": "header", "displayName": "", "group": "subnet", "label": "subnet", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The cidr representing the IP range for this subnet, based on IP version." },
+    "subnetPools": { "kind": "header", "displayName": "", "group": "subnet", "label": "subnet", "required": false, "javaType": "org.openstack4j.openstack.networking.domain.NeutronPool", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The allocation pool." },
+    "deviceId": { "kind": "header", "displayName": "", "group": "port", "label": "port", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Device ID." },
+    "macAddress": { "kind": "header", "displayName": "", "group": "port", "label": "port", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MAC address." },
+    "routerId": { "kind": "header", "displayName": "", "group": "router", "label": "router", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Router ID." },
+    "subnetId": { "kind": "header", "displayName": "", "group": "router subnet", "label": "router subnet", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subnet ID." },
+    "portId": { "kind": "header", "displayName": "", "group": "port router", "label": "port router", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Port ID." },
+    "interfaceType": { "kind": "header", "displayName": "", "group": "router", "label": "router", "required": false, "javaType": "org.openstack4j.model.network.AttachInterfaceType", "enum": [ "PORT", "SUBNET" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Interface type." },
+    "operation": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ID." },
+    "name": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "OpenStack host url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "V2", "V3" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "V3", "description": "OpenStack API version" },
diff --git a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/nova/openstack-nova.json b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/nova/openstack-nova.json
index 7787b27..dc690a9 100644
--- a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/nova/openstack-nova.json
+++ b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/nova/openstack-nova.json
@@ -25,6 +25,22 @@
     "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": {
+    "FlavorId": { "kind": "header", "displayName": "", "group": "flavor server", "label": "flavor server", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ID of the flavor." },
+    "RAM": { "kind": "header", "displayName": "", "group": "flavor", "label": "flavor", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Size of RAM." },
+    "VCPU": { "kind": "header", "displayName": "", "group": "flavor", "label": "flavor", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of flavor VCPU." },
+    "disk": { "kind": "header", "displayName": "", "group": "flavor", "label": "flavor", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Size of disk." },
+    "swap": { "kind": "header", "displayName": "", "group": "flavor", "label": "flavor", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Size of swap." },
+    "rxtxFactor": { "kind": "header", "displayName": "", "group": "flavor", "label": "flavor", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Rxtx Factor." },
+    "AdminPassword": { "kind": "header", "displayName": "", "group": "server", "label": "server", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Admin password of the new server." },
+    "ImageId": { "kind": "header", "displayName": "", "group": "server", "label": "server", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Image ID." },
+    "KeypairName": { "kind": "header", "displayName": "", "group": "server", "label": "server", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Keypair name." },
+    "NetworkId": { "kind": "header", "displayName": "", "group": "server", "label": "server", "required": false, "javaType": "List<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The list of networks (by id)." },
+    "action": { "kind": "header", "displayName": "", "group": "server", "label": "server", "required": false, "javaType": "org.openstack4j.model.compute.Action", "enum": [ "PAUSE", "UNPAUSE", "STOP", "START", "LOCK", "UNLOCK", "SUSPEND", "RESUME", "RESCUE", "UNRESCUE", "SHELVE", "SHELVE_OFFLOAD", "UNSHELVE", "FORCEDELETE" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "An action to perform." },
+    "operation": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ID." },
+    "name": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "OpenStack host url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "V2", "V3" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "V3", "description": "OpenStack API version" },
diff --git a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/swift/openstack-swift.json b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/swift/openstack-swift.json
index eae48dc..ce16a24 100644
--- a/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/swift/openstack-swift.json
+++ b/components/camel-openstack/src/generated/resources/org/apache/camel/component/openstack/swift/openstack-swift.json
@@ -25,6 +25,22 @@
     "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": {
+    "containerName": { "kind": "header", "displayName": "", "group": "object container", "label": "object container", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The container name." },
+    "objectName": { "kind": "header", "displayName": "", "group": "object", "label": "object", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The object name." },
+    "X-Container-Meta-": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Container metadata prefix." },
+    "X-Versions-Location": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Versions location." },
+    "X-Container-Read": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ACL - container read." },
+    "X-Container-Write": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "ACL - container write." },
+    "limit": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "List options - limit." },
+    "marker": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "List options - marker." },
+    "end_marker": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "List options - end marker." },
+    "delimiter": { "kind": "header", "displayName": "", "group": "container", "label": "container", "required": false, "javaType": "Character", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "List options - delimiter." },
+    "path": { "kind": "header", "displayName": "", "group": "container object", "label": "container object", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The path." },
+    "operation": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform." },
+    "ID": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ID." },
+    "name": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "OpenStack host url" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "V2", "V3" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "V3", "description": "OpenStack API version" },
diff --git a/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc b/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
index 67604e5..86b22ba 100644
--- a/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-cinder-component.adoc
@@ -53,8 +53,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Usage
 
@@ -80,31 +81,6 @@ You can use following settings for each subsystem:
 |`delete` | Delete the volume.
 |=========================================================================
 
-=== Message headers evaluated by the Volume producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the volume.
-
-|`name` |`String` |The volume name.
-
-|`description` |`String` | Volume description.
-
-|`size` |`Integer` |Size of volume.
-
-|`volumeType` |`String` | Volume type.
-
-|`imageRef` |`String` | ID of image.
-
-|`snapshotId` |`String` | ID of snapshot.
-
-|`isBootable` |`Boolean` | Is bootable.
-|=========================================================================
-
 If you need more precise volume settings you can create new object of the type *org.openstack4j.model.storage.block.Volume* and send in the message body.
 
 == snapshots
@@ -126,26 +102,6 @@ If you need more precise volume settings you can create new object of the type *
 
 |=========================================================================
 
-=== Message headers evaluated by the Snapshot producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the server.
-
-|`name` |`String` |The server name.
-
-|`description` |`String` | The snapshot description.
-
-|`VolumeId` |`String` | The Volume ID.
-
-|`force` |`Boolean` | Force.
-
-|=========================================================================
-
 If you need more precise server settings you can create new object of the type *org.openstack4j.model.storage.block.VolumeSnapshot* and send in the message body.
 
 
diff --git a/components/camel-openstack/src/main/docs/openstack-glance-component.adoc b/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
index db19c70..7b5d31a 100644
--- a/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-glance-component.adoc
@@ -53,6 +53,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Usage
 
@@ -75,37 +78,5 @@ include::partial$component-endpoint-options.adoc[]
 |`delete` | Delete the image.
 |=========================================================================
 
-=== Message headers evaluated by the Glance producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the flavor.
-
-|`name` |`String` |The flavor name.
-
-|`diskFormat` |`org.openstack4j.model.image.DiskFormat` |The number of flavor VCPU.
-
-|`containerFormat` |`org.openstack4j.model.image.ContainerFormat` |Size of RAM.
-
-|`owner` |`String` | Image owner.
-
-|`isPublic` |`Boolean` | Is public.
-
-|`minRam` |`Long` | Minimum ram.
-
-|`minDisk` |`Long` | Minimum disk.
-
-|`size` |`Long` | Size.
-
-|`checksum` |`String` | Checksum.
-
-|`properties` | `Map` | Image properties.
-|=========================================================================
-
-
 
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc b/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
index e8cb5d4..8c72461 100644
--- a/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-keystone-component.adoc
@@ -56,6 +56,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Usage
 
@@ -79,21 +82,6 @@ You can use following settings for each subsystem:
 |`delete` | Delete the domain.
 |=========================================================================
 
-=== Message headers evaluated by the Domain producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the domain.
-
-|`name` |`String` |The domain name.
-
-|`description` |`String` | Domain description.
-|=========================================================================
-
 If you need more precise domain settings you can create new object of the type *org.openstack4j.model.identity.v3.Domain* and send in the message body.
 
 == groups
@@ -120,25 +108,6 @@ If you need more precise domain settings you can create new object of the type *
 |`removeUserFromGroup` | Remove the user from the group.
 |=========================================================================
 
-=== Message headers evaluated by the Group producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`groupId` | `String` | ID of the group.
-
-|`name` |`String` |The group name.
-
-|`userId` | `String` | ID of the user.
-
-|`domainId` | `String` | ID of the domain.
-
-|`description` |`String` | Group description.
-|=========================================================================
-
 If you need more precise group settings you can create new object of the type *org.openstack4j.model.identity.v3.Group* and send in the message body.
 
 == projects
@@ -159,25 +128,6 @@ If you need more precise group settings you can create new object of the type *o
 |`delete` | Delete the project.
 |=========================================================================
 
-=== Message headers evaluated by the Project producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the project.
-
-|`name` |`String` |The project name.
-
-|`description` |`String` | Project description.
-
-|`domainId` | `String` | ID of the domain.
-
-|`parentId` | `String` | The parent project ID.
-|=========================================================================
-
 If you need more precise project settings you can create new object of the type *org.openstack4j.model.identity.v3.Project* and send in the message body.
 
 == regions
@@ -198,19 +148,6 @@ If you need more precise project settings you can create new object of the type
 |`delete` | Delete the region.
 |=========================================================================
 
-=== Message headers evaluated by the Region producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the region.
-
-|`description` |`String` | Region description.
-|=========================================================================
-
 If you need more precise region settings you can create new object of the type *org.openstack4j.model.identity.v3.Region* and send in the message body.
 
 == users
@@ -231,27 +168,6 @@ If you need more precise region settings you can create new object of the type *
 |`delete` | Delete the user.
 |=========================================================================
 
-=== Message headers evaluated by the User producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the user.
-
-|`name` |`String` |The user name.
-
-|`description` |`String` | User description.
-
-|`domainId` | `String` | ID of the domain.
-
-|`password` | `String`| User's password.
-
-|`email` | `String`| User's email.
-|=========================================================================
-
 If you need more precise user settings you can create new object of the type *org.openstack4j.model.identity.v3.User* and send in the message body.
 
 
diff --git a/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc b/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
index 58f7f5c..572171f 100644
--- a/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-neutron-component.adoc
@@ -53,7 +53,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
 
 == Usage
 
@@ -75,33 +77,6 @@ You can use following settings for each subsystem:
 |`delete` | Delete the network.
 |=========================================================================
 
-=== Message headers evaluated by the Network producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the network.
-
-|`name` |`String` |The network name.
-
-|`tenantId` |`String` |Tenant ID.
-
-|`adminStateUp` |`Boolean` |AdminStateUp header.
-
-|`networkType` |`org.openstack4j.model.network.NetworkType` |Network type.
-
-|`physicalNetwork` |`String` |Physical network.
-
-|`segmentId` |`String` |Segment ID.
-
-|`isShared` |`Boolean` |Is shared.
-
-|`isRouterExternal` |`Boolean` | Is router external.
-|=========================================================================
-
 If you need more precise network settings you can create new object of the type *org.openstack4j.model.network.Network* and send in the message body.
 
 == subnets
@@ -122,25 +97,6 @@ If you need more precise network settings you can create new object of the type
 |`action` | Perform an action on the subnet.
 |=========================================================================
 
-=== Message headers evaluated by the Subnet producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the subnet.
-
-|`name` |`String` |The subnet name.
-
-|`networkId` |`String` |Network ID.
-
-|`enableDHCP` |`Boolean` | Enable DHCP.
-
-|`gateway` |`String` |Gateway.
-|=========================================================================
-
 If you need more precise subnet settings you can create new object of the type *org.openstack4j.model.network.Subnet* and send in the message body.
 
 == ports
@@ -162,25 +118,6 @@ If you need more precise subnet settings you can create new object of the type *
 
 |=========================================================================
 
-=== Message headers evaluated by the Port producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`name` |`String` |The port name.
-
-|`networkId` |`String` |Network ID.
-
-|`tenantId` |`String` |Tenant ID.
-
-|`deviceId` | `String` | Device ID.
-
-|`macAddress` | `String` | MAC address.
-|=========================================================================
-
 == routers
 
 === Operations you can perform with the Router producer
@@ -204,28 +141,4 @@ If you need more precise subnet settings you can create new object of the type *
 
 |=========================================================================
 
-=== Message headers evaluated by the Port producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`name` |`String` |The router name.
-
-|`routerId` |`String` |Router ID.
-
-|`subnetId` |`String` |Subnet ID.
-
-|`portId` |`String` |Port ID.
-
-|`interfaceType` | `org.openstack4j.model.network.AttachInterfaceType` | Interface type.
-
-|`tenantId` | `String` | Tenant ID.
-|=========================================================================
-
-
-
-
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-openstack/src/main/docs/openstack-nova-component.adoc b/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
index 2b2e6bf..4692d4d 100644
--- a/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-nova-component.adoc
@@ -53,7 +53,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Usage
 
@@ -75,29 +77,6 @@ You can use following settings for each subsystem:
 |`delete` | Delete the flavor.
 |=========================================================================
 
-=== Message headers evaluated by the Flavor producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the flavor.
-
-|`name` |`String` |The flavor name.
-
-|`VCPU` |`Integer` |The number of flavor VCPU.
-
-|`ram` |`Integer` |Size of RAM.
-
-|`disk` |`Integer` |Size of disk.
-
-|`swap` |`Integer` |Size of swap.
-
-|`rxtxFactor` |`Integer` |Rxtx Factor.
-|=========================================================================
-
 If you need more precise flavor settings you can create new object of the type *org.openstack4j.model.compute.Flavor* and send in the message body.
 
 == servers
@@ -120,31 +99,6 @@ If you need more precise flavor settings you can create new object of the type *
 |`action` | Perform an action on the server.
 |=========================================================================
 
-=== Message headers evaluated by the Server producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`ID` | `String` | ID of the server.
-
-|`name` |`String` |The server name.
-
-|`ImageId` |`String` | The Image ID.
-
-|`FlavorId` |`String` |The ID of flavor which will be used.
-
-|`KeypairName` |`String` | The Keypair name.
-
-|`NetworkId` |`String` | The network ID.
-
-|`AdminPassword` |`String` | Admin password of the new server.
-
-|`action` | `org.openstack4j.model.compute.Action` | An action to perform.
-|=========================================================================
-
 If you need more precise server settings you can create new object of the type *org.openstack4j.model.compute.ServerCreate* and send in the message body.
 
 == keypairs
@@ -164,18 +118,4 @@ If you need more precise server settings you can create new object of the type *
 
 |=========================================================================
 
-=== Message headers evaluated by the Keypair producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`name` |`String` |The keypair name.
-
-|=========================================================================
-
-
-
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-openstack/src/main/docs/openstack-swift-component.adoc b/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
index bcc3a97..1e90252 100644
--- a/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
+++ b/components/camel-openstack/src/main/docs/openstack-swift-component.adoc
@@ -52,7 +52,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
 
 == Usage
 
@@ -82,36 +84,6 @@ You can use following settings for each subsystem:
 |`deleteMetadata` | Delete metadata.
 |=========================================================================
 
-=== Message headers evaluated by the Volume producer
-
-[width="100%",cols="20%,10%,70%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`name` |`String` |The container name.
-
-|`X-Container-Meta-` |`Map` | Container metadata prefix.
-
-|`X-Versions-Location` |`String` | Versions location.
-
-|`X-Container-Read` |`String` |  ACL - container read.
-
-|`X-Container-Write` |`String` | ACL - container write.
-
-|`limit` | `Integer` | List options - limit.
-
-|`marker` | `String` | List options - marker.
-
-|`end_marker` | `String` | List options - end marker.
-
-|`delimiter` | `Character` | List options - delimiter.
-
-|`path` | `String` | List options - path.
-
-|=========================================================================
-
 If you need more precise container settings you can create new object of the type *org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions* (in case of create or update operation) 
 or *org.openstack4j.model.storage.object.options.ContainerListOptions* for listing containers and send in the message body.
 
@@ -138,20 +110,4 @@ or *org.openstack4j.model.storage.object.options.ContainerListOptions* for listi
 
 |=========================================================================
 
-=== Message headers evaluated by the Object producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=========================================================================
-|Header |Type |Description
-
-|`operation` | `String` | The operation to perform.
-
-|`containerName` |`String` |The container name.
-
-|`objectName` |`String` |The object name.
-
-|=========================================================================
-
-
-
 include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderConstants.java
index 77bb37b..b8538ef 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderConstants.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.openstack.cinder;
 
 import org.apache.camel.component.openstack.common.OpenstackConstants;
+import org.apache.camel.spi.Metadata;
 
 public final class CinderConstants extends OpenstackConstants {
 
@@ -24,14 +25,21 @@ public final class CinderConstants extends OpenstackConstants {
     public static final String SNAPSHOTS = "snapshots";
 
     //volumes
+    @Metadata(label = "volume", description = "Size of volume.", javaType = "Integer")
     public static final String SIZE = "size";
+    @Metadata(label = "volume", description = "Volume type.", javaType = "String")
     public static final String VOLUME_TYPE = "volumeType";
+    @Metadata(label = "volume", description = "ID of image.", javaType = "String")
     public static final String IMAGE_REF = "imageRef";
+    @Metadata(label = "volume", description = "ID of snapshot.", javaType = "String")
     public static final String SNAPSHOT_ID = "snapshotId";
+    @Metadata(label = "volume", description = "Is bootable.", javaType = "Boolean")
     public static final String IS_BOOTABLE = "isBootable";
 
     //volumeSnapshots
+    @Metadata(label = "snapshot", description = "The Volume ID.", javaType = "String")
     public static final String VOLUME_ID = "volumeId";
+    @Metadata(label = "snapshot", description = "Force.", javaType = "Boolean")
     public static final String FORCE = "force";
 
     public static final String GET_ALL_TYPES = "getAllTypes";
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderEndpoint.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderEndpoint.java
index fc136f8..84f7d7b 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderEndpoint.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/cinder/CinderEndpoint.java
@@ -27,11 +27,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.openstack4j.core.transport.Config;
 
+import static org.apache.camel.component.openstack.common.OpenstackConstants.SCHEME_CINDER;
+
 /**
  * Access data in OpenStack Cinder block storage.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "openstack-cinder", title = "OpenStack Cinder", syntax = "openstack-cinder:host",
-             category = { Category.CLOUD, Category.PAAS }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_CINDER, title = "OpenStack Cinder", syntax = "openstack-cinder:host",
+             category = { Category.CLOUD, Category.PAAS }, producerOnly = true, headersClass = CinderConstants.class)
 public class CinderEndpoint extends AbstractOpenstackEndpoint {
 
     @UriParam(enums = "snapshots,volumes")
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/common/OpenstackConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/common/OpenstackConstants.java
index ad46e21..c614f96 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/common/OpenstackConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/common/OpenstackConstants.java
@@ -16,16 +16,31 @@
  */
 package org.apache.camel.component.openstack.common;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * General camel-openstack component constants. The main purpose for this class is to avoid duplication general
  * constants in each submodule.
  */
 public class OpenstackConstants {
 
+    // The schemes
+    public static final String SCHEME_CINDER = "openstack-cinder";
+    public static final String SCHEME_GLANCE = "openstack-glance";
+    public static final String SCHEME_KEYSTONE = "openstack-keystone";
+    public static final String SCHEME_NEUTRON = "openstack-neutron";
+    public static final String SCHEME_NOVA = "openstack-nova";
+    public static final String SCHEME_SWIFT = "openstack-swift";
+
+    @Metadata(description = "The operation to perform.", javaType = "String")
     public static final String OPERATION = "operation";
+    @Metadata(description = "The ID.", javaType = "String")
     public static final String ID = "ID";
+    @Metadata(description = "The name.", javaType = "String")
     public static final String NAME = "name";
+    @Metadata(description = "The description.", javaType = "String", applicableFor = { SCHEME_CINDER })
     public static final String DESCRIPTION = "description";
+    @Metadata(description = "The image properties.", javaType = "Map<String, String>", applicableFor = SCHEME_GLANCE)
     public static final String PROPERTIES = "properties";
 
     public static final String CREATE = "create";
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceConstants.java
index 612dc16..df3361b 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceConstants.java
@@ -17,16 +17,25 @@
 package org.apache.camel.component.openstack.glance;
 
 import org.apache.camel.component.openstack.common.OpenstackConstants;
+import org.apache.camel.spi.Metadata;
 
 public final class GlanceConstants extends OpenstackConstants {
 
+    @Metadata(description = "The number of flavor VCPU.", javaType = "org.openstack4j.model.image.DiskFormat")
     public static final String DISK_FORMAT = "diskFormat";
+    @Metadata(description = "Size of RAM.", javaType = "org.openstack4j.model.image.ContainerFormat")
     public static final String CONTAINER_FORMAT = "containerFormat";
+    @Metadata(description = "Image owner.", javaType = "String")
     public static final String OWNER = "owner";
+    @Metadata(description = "Is public.", javaType = "Boolean")
     public static final String IS_PUBLIC = "isPublic";
+    @Metadata(description = "Minimum ram.", javaType = "Long")
     public static final String MIN_RAM = "minRam";
+    @Metadata(description = "Minimum disk.", javaType = "Long")
     public static final String MIN_DISK = "minDisk";
+    @Metadata(description = "Size.", javaType = "Long")
     public static final String SIZE = "size";
+    @Metadata(description = "Checksum.", javaType = "String")
     public static final String CHECKSUM = "checksum";
 
     public static final String RESERVE = "reserve";
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceEndpoint.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceEndpoint.java
index 415fa86..6511f4b 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceEndpoint.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/glance/GlanceEndpoint.java
@@ -25,11 +25,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.openstack4j.core.transport.Config;
 
+import static org.apache.camel.component.openstack.common.OpenstackConstants.SCHEME_GLANCE;
+
 /**
  * Manage VM images and metadata definitions in OpenStack Glance.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "openstack-glance", title = "OpenStack Glance", syntax = "openstack-glance:host",
-             category = { Category.CLOUD, Category.PAAS }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_GLANCE, title = "OpenStack Glance", syntax = "openstack-glance:host",
+             category = { Category.CLOUD, Category.PAAS }, producerOnly = true, headersClass = GlanceConstants.class)
 public class GlanceEndpoint extends AbstractOpenstackEndpoint {
 
     @UriPath
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneConstants.java
index 78e5664..e8d1b77 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneConstants.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.openstack.keystone;
 
 import org.apache.camel.component.openstack.common.OpenstackConstants;
+import org.apache.camel.spi.Metadata;
 
 public final class KeystoneConstants extends OpenstackConstants {
 
@@ -26,14 +27,21 @@ public final class KeystoneConstants extends OpenstackConstants {
     public static final String USERS = "users";
     public static final String GROUPS = "groups";
 
+    @Metadata(description = "The description.", javaType = "String")
     public static final String DESCRIPTION = "description";
+    @Metadata(label = "group project user", description = "ID of the domain.", javaType = "String")
     public static final String DOMAIN_ID = "domainId";
+    @Metadata(label = "project", description = "The parent project ID.", javaType = "String")
     public static final String PARENT_ID = "parentId";
 
+    @Metadata(label = "user", description = "User's password.", javaType = "String")
     public static final String PASSWORD = "password";
+    @Metadata(label = "user", description = "User's email.", javaType = "String")
     public static final String EMAIL = "email";
 
+    @Metadata(label = "group", description = "ID of the user.", javaType = "String")
     public static final String USER_ID = "userId";
+    @Metadata(label = "group", description = "ID of the group.", javaType = "String")
     public static final String GROUP_ID = "groupId";
 
     public static final String ADD_USER_TO_GROUP = "addUserToGroup";
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneEndpoint.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneEndpoint.java
index 0d5fa21..96a27b1 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneEndpoint.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/keystone/KeystoneEndpoint.java
@@ -30,12 +30,15 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.openstack4j.core.transport.Config;
 
+import static org.apache.camel.component.openstack.common.OpenstackConstants.SCHEME_KEYSTONE;
+
 /**
  * Access OpenStack Keystone for API client authentication, service discovery and distributed multi-tenant
  * authorization.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "openstack-keystone", title = "OpenStack Keystone",
-             syntax = "openstack-keystone:host", category = { Category.CLOUD, Category.PAAS }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_KEYSTONE, title = "OpenStack Keystone",
+             syntax = "openstack-keystone:host", category = { Category.CLOUD, Category.PAAS }, producerOnly = true,
+             headersClass = KeystoneConstants.class)
 public class KeystoneEndpoint extends AbstractOpenstackEndpoint {
 
     @UriParam(enums = "regions,domains,projects,users,groups")
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronConstants.java
index 8bc7516..1e33c17 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronConstants.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.openstack.neutron;
 
 import org.apache.camel.component.openstack.common.OpenstackConstants;
+import org.apache.camel.spi.Metadata;
 
 public final class NeutronConstants extends OpenstackConstants {
 
@@ -24,32 +25,53 @@ public final class NeutronConstants extends OpenstackConstants {
     public static final String NEUTRON_SUBNETS_SYSTEM = "subnets";
     public static final String NEUTRON_PORT_SYSTEM = "ports";
     public static final String NEUTRON_ROUTER_SYSTEM = "routers";
+    @Metadata(label = "network port router", description = "Tenant ID.", javaType = "String")
     public static final String TENANT_ID = "tenantId";
+    @Metadata(label = "subnet port", description = "Network ID.", javaType = "String")
     public static final String NETWORK_ID = "networkId";
 
     //network
+    @Metadata(label = "network", description = "AdminStateUp header.", javaType = "Boolean")
     public static final String ADMIN_STATE_UP = "adminStateUp";
+    @Metadata(label = "network", description = "Network type.", javaType = "org.openstack4j.model.network.NetworkType")
     public static final String NETWORK_TYPE = "networkType";
+    @Metadata(label = "network", description = "Physical network.", javaType = "String")
     public static final String PHYSICAL_NETWORK = "physicalNetwork";
+    @Metadata(label = "network", description = "Segment ID.", javaType = "String")
     public static final String SEGMENT_ID = "segmentId";
+    @Metadata(label = "network", description = "Is shared.", javaType = "Boolean")
     public static final String IS_SHARED = "isShared";
+    @Metadata(label = "network", description = "Is router external.", javaType = "Boolean")
     public static final String IS_ROUTER_EXTERNAL = "isRouterExternal";
 
     //subnet
+    @Metadata(label = "subnet", description = "Enable DHCP.", javaType = "Boolean")
     public static final String ENABLE_DHCP = "enableDHCP";
+    @Metadata(label = "subnet", description = "Gateway.", javaType = "String")
     public static final String GATEWAY = "gateway";
+    @Metadata(label = "subnet", description = "IP version.", javaType = "org.openstack4j.model.network.IPVersionType")
     public static final String IP_VERSION = "ipVersion";
+    @Metadata(label = "subnet", description = "The cidr representing the IP range for this subnet, based on IP version.",
+              javaType = "String")
     public static final String CIDR = "cidr";
+    @Metadata(label = "subnet", description = "The allocation pool.",
+              javaType = "org.openstack4j.openstack.networking.domain.NeutronPool")
     public static final String SUBNET_POOL = "subnetPools";
 
     //port
+    @Metadata(label = "port", description = "Device ID.", javaType = "String")
     public static final String DEVICE_ID = "deviceId";
+    @Metadata(label = "port", description = "MAC address.", javaType = "String")
     public static final String MAC_ADDRESS = "macAddress";
 
     //router
+    @Metadata(label = "router", description = "Router ID.", javaType = "String")
     public static final String ROUTER_ID = "routerId";
+    @Metadata(label = "router subnet", description = "Subnet ID.", javaType = "String")
     public static final String SUBNET_ID = "subnetId";
+    @Metadata(label = "port router", description = "Port ID.", javaType = "String")
     public static final String PORT_ID = "portId";
+    @Metadata(label = "router", description = "Interface type.", javaType = "org.openstack4j.model.network.AttachInterfaceType")
     public static final String ITERFACE_TYPE = "interfaceType";
 
     public static final String ATTACH_INTERFACE = "attachInterface";
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronEndpoint.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronEndpoint.java
index b2feb48..f8c21e0 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronEndpoint.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/neutron/NeutronEndpoint.java
@@ -29,11 +29,14 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.openstack4j.core.transport.Config;
 
+import static org.apache.camel.component.openstack.common.OpenstackConstants.SCHEME_NEUTRON;
+
 /**
  * Access OpenStack Neutron for network services.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "openstack-neutron", title = "OpenStack Neutron",
-             syntax = "openstack-neutron:host", category = { Category.CLOUD, Category.PAAS }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_NEUTRON, title = "OpenStack Neutron",
+             syntax = "openstack-neutron:host", category = { Category.CLOUD, Category.PAAS }, producerOnly = true,
+             headersClass = NeutronConstants.class)
 public class NeutronEndpoint extends AbstractOpenstackEndpoint {
 
     @UriParam(enums = "networks,subnets,ports,routers")
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaConstants.java
index 08749c3..3167e55 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaConstants.java
@@ -17,29 +17,41 @@
 package org.apache.camel.component.openstack.nova;
 
 import org.apache.camel.component.openstack.common.OpenstackConstants;
+import org.apache.camel.spi.Metadata;
 
 public final class NovaConstants extends OpenstackConstants {
     public static final String NOVA_SUBSYSTEM_FLAVORS = "flavors";
     public static final String NOVA_SUBSYSTEM_SERVERS = "servers";
     public static final String NOVA_SUBSYSTEM_KEYPAIRS = "keypairs";
 
+    @Metadata(label = "flavor server", description = "ID of the flavor.", javaType = "String")
     public static final String FLAVOR_ID = "FlavorId";
 
     //flavor
+    @Metadata(label = "flavor", description = "Size of RAM.", javaType = "Integer")
     public static final String RAM = "RAM";
+    @Metadata(label = "flavor", description = "The number of flavor VCPU.", javaType = "Integer")
     public static final String VCPU = "VCPU";
+    @Metadata(label = "flavor", description = "Size of disk.", javaType = "Integer")
     public static final String DISK = "disk";
+    @Metadata(label = "flavor", description = "Size of swap.", javaType = "Integer")
     public static final String SWAP = "swap";
+    @Metadata(label = "flavor", description = "Rxtx Factor.", javaType = "Integer")
     public static final String RXTXFACTOR = "rxtxFactor";
 
     //server
+    @Metadata(label = "server", description = "Admin password of the new server.", javaType = "String")
     public static final String ADMIN_PASSWORD = "AdminPassword";
+    @Metadata(label = "server", description = "The Image ID.", javaType = "String")
     public static final String IMAGE_ID = "ImageId";
+    @Metadata(label = "server", description = "The Keypair name.", javaType = "String")
     public static final String KEYPAIR_NAME = "KeypairName";
+    @Metadata(label = "server", description = "The list of networks (by id).", javaType = "List<String>")
     public static final String NETWORK = "NetworkId";
 
     //server
     public static final String CREATE_SNAPSHOT = "createSnapshot";
+    @Metadata(label = "server", description = "An action to perform.", javaType = "org.openstack4j.model.compute.Action")
     public static final String ACTION = "action";
 
     private NovaConstants() {
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaEndpoint.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaEndpoint.java
index c570185..782b501 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaEndpoint.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/nova/NovaEndpoint.java
@@ -28,11 +28,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.openstack4j.core.transport.Config;
 
+import static org.apache.camel.component.openstack.common.OpenstackConstants.SCHEME_NOVA;
+
 /**
  * Access OpenStack to manage compute resources.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "openstack-nova", title = "OpenStack Nova", syntax = "openstack-nova:host",
-             category = { Category.CLOUD, Category.PAAS }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_NOVA, title = "OpenStack Nova", syntax = "openstack-nova:host",
+             category = { Category.CLOUD, Category.PAAS }, producerOnly = true, headersClass = NovaConstants.class)
 public class NovaEndpoint extends AbstractOpenstackEndpoint {
 
     @UriParam(enums = "flavors,servers,keypairs")
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftConstants.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftConstants.java
index 4a50368..9acde7b 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftConstants.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftConstants.java
@@ -17,19 +17,37 @@
 package org.apache.camel.component.openstack.swift;
 
 import org.apache.camel.component.openstack.common.OpenstackConstants;
+import org.apache.camel.spi.Metadata;
+import org.openstack4j.model.storage.object.SwiftHeaders;
 
 public final class SwiftConstants extends OpenstackConstants {
 
     public static final String SWIFT_SUBSYSTEM_OBJECTS = "objects";
     public static final String SWIFT_SUBSYSTEM_CONTAINERS = "containers";
 
+    @Metadata(label = "object container", description = "The container name.", javaType = "String")
     public static final String CONTAINER_NAME = "containerName";
+    @Metadata(label = "object", description = "The object name.", javaType = "String")
     public static final String OBJECT_NAME = "objectName";
 
+    @Metadata(label = "container", description = "Container metadata prefix.", javaType = "Map<String, String>")
+    public static final String CONTAINER_METADATA_PREFIX = SwiftHeaders.CONTAINER_METADATA_PREFIX;
+    @Metadata(label = "container", description = "Versions location.", javaType = "String")
+    public static final String VERSIONS_LOCATION = SwiftHeaders.VERSIONS_LOCATION;
+    @Metadata(label = "container", description = "ACL - container read.", javaType = "String")
+    public static final String CONTAINER_READ = SwiftHeaders.CONTAINER_READ;
+    @Metadata(label = "container", description = "ACL - container write.", javaType = "String")
+    public static final String CONTAINER_WRITE = SwiftHeaders.CONTAINER_WRITE;
+
+    @Metadata(label = "container", description = "List options - limit.", javaType = "Integer")
     public static final String LIMIT = "limit";
+    @Metadata(label = "container", description = "List options - marker.", javaType = "String")
     public static final String MARKER = "marker";
+    @Metadata(label = "container", description = "List options - end marker.", javaType = "String")
     public static final String END_MARKER = "end_marker";
+    @Metadata(label = "container", description = "List options - delimiter.", javaType = "Character")
     public static final String DELIMITER = "delimiter";
+    @Metadata(label = "container object", description = "The path.", javaType = "String")
     public static final String PATH = "path";
 
     public static final String GET_METADATA = "getMetadata";
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftEndpoint.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftEndpoint.java
index 2a52dd5..b3a5b51 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftEndpoint.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/SwiftEndpoint.java
@@ -27,11 +27,13 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.openstack4j.core.transport.Config;
 
+import static org.apache.camel.component.openstack.common.OpenstackConstants.SCHEME_SWIFT;
+
 /**
  * Access OpenStack Swift object/blob store.
  */
-@UriEndpoint(firstVersion = "2.19.0", scheme = "openstack-swift", title = "OpenStack Swift", syntax = "openstack-swift:host",
-             category = { Category.CLOUD, Category.PAAS }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = SCHEME_SWIFT, title = "OpenStack Swift", syntax = "openstack-swift:host",
+             category = { Category.CLOUD, Category.PAAS }, producerOnly = true, headersClass = SwiftConstants.class)
 public class SwiftEndpoint extends AbstractOpenstackEndpoint {
 
     @UriParam(enums = "objects,containers")
diff --git a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ContainerProducer.java b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ContainerProducer.java
index 284a1d1..fba7054 100644
--- a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ContainerProducer.java
+++ b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ContainerProducer.java
@@ -30,7 +30,6 @@ import org.apache.camel.util.StringHelper;
 import org.openstack4j.api.OSClient;
 import org.openstack4j.model.common.ActionResponse;
 import org.openstack4j.model.storage.object.SwiftContainer;
-import org.openstack4j.model.storage.object.SwiftHeaders;
 import org.openstack4j.model.storage.object.options.ContainerListOptions;
 import org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions;
 
@@ -151,24 +150,24 @@ public class ContainerProducer extends AbstractOpenstackProducer {
         CreateUpdateContainerOptions options = message.getBody(CreateUpdateContainerOptions.class);
         if (options == null) {
             Map headers = message.getHeaders();
-            if (headers.containsKey(SwiftHeaders.CONTAINER_METADATA_PREFIX)) {
+            if (headers.containsKey(SwiftConstants.CONTAINER_METADATA_PREFIX)) {
                 options = getCreateUpdateOptions(options)
-                        .metadata(message.getHeader(SwiftHeaders.CONTAINER_METADATA_PREFIX, Map.class));
+                        .metadata(message.getHeader(SwiftConstants.CONTAINER_METADATA_PREFIX, Map.class));
             }
 
-            if (headers.containsKey(SwiftHeaders.VERSIONS_LOCATION)) {
+            if (headers.containsKey(SwiftConstants.VERSIONS_LOCATION)) {
                 options = getCreateUpdateOptions(options)
-                        .versionsLocation(message.getHeader(SwiftHeaders.VERSIONS_LOCATION, String.class));
+                        .versionsLocation(message.getHeader(SwiftConstants.VERSIONS_LOCATION, String.class));
             }
 
-            if (headers.containsKey(SwiftHeaders.CONTAINER_READ)) {
+            if (headers.containsKey(SwiftConstants.CONTAINER_READ)) {
                 options = getCreateUpdateOptions(options)
-                        .accessRead(message.getHeader(SwiftHeaders.CONTAINER_READ, String.class));
+                        .accessRead(message.getHeader(SwiftConstants.CONTAINER_READ, String.class));
             }
 
-            if (headers.containsKey(SwiftHeaders.CONTAINER_WRITE)) {
+            if (headers.containsKey(SwiftConstants.CONTAINER_WRITE)) {
                 options = getCreateUpdateOptions(options)
-                        .accessWrite(message.getHeader(SwiftHeaders.CONTAINER_WRITE, String.class));
+                        .accessWrite(message.getHeader(SwiftConstants.CONTAINER_WRITE, String.class));
             }
         }
         return options;

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

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 a53ff14f633ed2fb8c5a1d9aef2ca275401e369e
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 12:15:14 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-nagios
---
 .../org/apache/camel/component/nagios/nagios.json  |  5 +++
 .../src/main/docs/nagios-component.adoc            | 43 +++++++++++-----------
 .../camel/component/nagios/NagiosConstants.java    |  5 +++
 .../camel/component/nagios/NagiosEndpoint.java     |  2 +-
 4 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/components/camel-nagios/src/generated/resources/org/apache/camel/component/nagios/nagios.json b/components/camel-nagios/src/generated/resources/org/apache/camel/component/nagios/nagios.json
index 9e727d1..7c82aa8 100644
--- a/components/camel-nagios/src/generated/resources/org/apache/camel/component/nagios/nagios.json
+++ b/components/camel-nagios/src/generated/resources/org/apache/camel/component/nagios/nagios.json
@@ -30,6 +30,11 @@
     "encryption": { "kind": "property", "displayName": "Encryption", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "com.googlecode.jsendnsca.encryption.Encryption", "enum": [ "NONE", "TRIPLE_DES", "XOR", "RIJNDAEL128", "RIJNDAEL192", "RIJNDAEL256", "BLOWFISH" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "descrip [...]
     "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Password to be authenticated when sending checks to Nagios." }
   },
+  "headers": {
+    "CamelNagiosHostName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "localhost", "description": "The hostname to be sent in this passive check." },
+    "CamelNagiosLevel": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "com.googlecode.jsendnsca.Level", "enum": [ "OK", "WARNING", "CRITICAL", "UNKNOWN" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The level of the passive check." },
+    "CamelNagiosServiceName": { "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "The context name", "description": "The service name." }
+  },
   "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.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "This is the address of the Nagios host where checks should be send." },
     "port": { "kind": "path", "displayName": "Port", "group": "producer", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "The port number of the host." },
diff --git a/components/camel-nagios/src/main/docs/nagios-component.adoc b/components/camel-nagios/src/main/docs/nagios-component.adoc
index 176ef6b..d93d9a3 100644
--- a/components/camel-nagios/src/main/docs/nagios-component.adoc
+++ b/components/camel-nagios/src/main/docs/nagios-component.adoc
@@ -38,7 +38,7 @@ nagios://host[:port][?Options]
 Camel provides two abilities with the xref:nagios-component.adoc[Nagios]
 component.
 You can send passive check messages by sending a message to its endpoint. +
-Camel also provides a EventNotifer which allows you to send notifications to Nagios.
+Camel also provides a EventNotifier which allows you to send notifications to Nagios.
 
 
 // component-configure options: START
@@ -53,50 +53,51 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Sending message examples
 
 You can send a message to Nagios where the message payload contains the message.
-By default it will be `OK` level and use the CamelContext name as the service name.
+By default, it will be `OK` level and use the CamelContext name as the service name.
 You can overrule these values using headers as shown above.
 
-For example we send the `Hello Nagios` message to Nagios as follows:
+For example, we send the `Hello Nagios` message to Nagios as follows:
 
 [source,java]
 ---------------------------------------------------------------------------------------
-    template.sendBody("direct:start", "Hello Nagios");
-
-    from("direct:start").to("nagios:127.0.0.1:5667?password=secret").to("mock:result");
+template.sendBody("direct:start", "Hello Nagios");
+from("direct:start").to("nagios:127.0.0.1:5667?password=secret").to("mock:result");
 ---------------------------------------------------------------------------------------
 
 To send a `CRITICAL` message you can send the headers such as:
 
 [source,java]
 -----------------------------------------------------------------------------
-        Map headers = new HashMap();
-        headers.put(NagiosConstants.LEVEL, "CRITICAL");
-        headers.put(NagiosConstants.HOST_NAME, "myHost");
-        headers.put(NagiosConstants.SERVICE_NAME, "myService");
-        template.sendBodyAndHeaders("direct:start", "Hello Nagios", headers);
+Map headers = new HashMap();
+headers.put(NagiosConstants.LEVEL, "CRITICAL");
+headers.put(NagiosConstants.HOST_NAME, "myHost");
+headers.put(NagiosConstants.SERVICE_NAME, "myService");
+template.sendBodyAndHeaders("direct:start", "Hello Nagios", headers);
 -----------------------------------------------------------------------------
 
 == Using NagiosEventNotifer
 
 The xref:nagios-component.adoc[Nagios] component also provides an
 `EventNotifer` which you can use to send events to Nagios.
-For example we can enable this from Java as follows:
+For example, we can enable this from Java as follows:
 
 [source,java]
 -------------------------------------------------------------------
-        NagiosEventNotifier notifier = new NagiosEventNotifier();
-        notifier.getConfiguration().setHost("localhost");
-        notifier.getConfiguration().setPort(5667);
-        notifier.getConfiguration().setPassword("password");
-
-        CamelContext context = ... 
-        context.getManagementStrategy().addEventNotifier(notifier);
-        return context;
+NagiosEventNotifier notifier = new NagiosEventNotifier();
+notifier.getConfiguration().setHost("localhost");
+notifier.getConfiguration().setPort(5667);
+notifier.getConfiguration().setPassword("password");
+
+CamelContext context = ...
+context.getManagementStrategy().addEventNotifier(notifier);
+return context;
 -------------------------------------------------------------------
 
 In Camel on Spring XML you can declare a `<bean>` which Camel will automatic pickup and use.
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConstants.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConstants.java
index eab3be0..b8d576b 100644
--- a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConstants.java
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConstants.java
@@ -16,10 +16,15 @@
  */
 package org.apache.camel.component.nagios;
 
+import org.apache.camel.spi.Metadata;
+
 public final class NagiosConstants {
 
+    @Metadata(description = "The hostname to be sent in this passive check.", javaType = "String", defaultValue = "localhost")
     public static final String HOST_NAME = "CamelNagiosHostName";
+    @Metadata(description = "The level of the passive check.", javaType = "com.googlecode.jsendnsca.Level")
     public static final String LEVEL = "CamelNagiosLevel";
+    @Metadata(description = "The service name.", javaType = "String", defaultValue = "The context name")
     public static final String SERVICE_NAME = "CamelNagiosServiceName";
 
     private NagiosConstants() {
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
index fafadab..31a2bbe 100644
--- a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.util.ObjectHelper;
  * Send passive checks to Nagios using JSendNSCA.
  */
 @UriEndpoint(firstVersion = "2.3.0", scheme = "nagios", title = "Nagios", syntax = "nagios:host:port", producerOnly = true,
-             category = { Category.MONITORING })
+             category = { Category.MONITORING }, headersClass = NagiosConstants.class)
 public class NagiosEndpoint extends DefaultEndpoint {
 
     private PassiveCheckSender sender;

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

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 10335d5c8d1c0cd638d87e616b46546ea290ac55
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 17:52:00 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-optaplanner
---
 .../apache/camel/component/optaplanner/optaplanner.json   |  8 ++++++++
 .../src/main/docs/optaplanner-component.adoc              | 15 +++------------
 .../camel/component/optaplanner/OptaPlannerConstants.java | 12 ++++++++++++
 .../camel/component/optaplanner/OptaPlannerEndpoint.java  |  2 +-
 4 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/components/camel-optaplanner/src/generated/resources/org/apache/camel/component/optaplanner/optaplanner.json b/components/camel-optaplanner/src/generated/resources/org/apache/camel/component/optaplanner/optaplanner.json
index 0584958..9f41e08 100644
--- a/components/camel-optaplanner/src/generated/resources/org/apache/camel/component/optaplanner/optaplanner.json
+++ b/components/camel-optaplanner/src/generated/resources/org/apache/camel/component/optaplanner/optaplanner.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": {
+    "CamelOptaPlannerSolverId": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Specifies the solverId to use." },
+    "CamelOptaPlannerIsAsync": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Specify whether to use another thread for submitting Solution instances rather than blocking the current thread." },
+    "CamelOptaPlannerBestSolution": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The best planning solution." },
+    "CamelOptaPlannerIsSolving": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is solving." },
+    "CamelOptaPlannerIsTerminateEarly": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "true if terminateEarly has been called since the Solver started." },
+    "CamelOptaPlannerSolverManager": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.optaplanner.core.api.solver.SolverManager", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Solver Manager." }
+  },
   "properties": {
     "configFile": { "kind": "path", "displayName": "Config File", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.optaplanner.OptaPlannerConfiguration", "configurationField": "configuration", "description": "Specifies the location to the solver file. If useSolverManager=FALSE, Camel uses this file and create [...]
     "problemId": { "kind": "parameter", "displayName": "Problem Id", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1L", "configurationClass": "org.apache.camel.component.optaplanner.OptaPlannerConfiguration", "configurationField": "configuration", "description": "In case of using SolverManager : the problem id" },
diff --git a/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc b/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
index b277963..9a2d09e 100644
--- a/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
+++ b/components/camel-optaplanner/src/main/docs/optaplanner-component.adoc
@@ -58,18 +58,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-== Message Headers
-
-[width="100%",cols="10%,10%,10%,10%,60%",options="header",]
-|=======================================================================
-|Name |Default Value |Type |Context |Description
-
-|CamelOptaPlannerSolverId |null |String |Shared |Specifies the solverId to use
-
-|CamelOptaPlannerIsAsync |PUT |String |Producer |Specify whether to use another thread for submitting Solution instances
-rather than blocking the current thread.
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Message Body
 
diff --git a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerConstants.java b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerConstants.java
index fe1c6a3..bfb300b 100644
--- a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerConstants.java
+++ b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerConstants.java
@@ -16,14 +16,26 @@
  */
 package org.apache.camel.component.optaplanner;
 
+import org.apache.camel.spi.Metadata;
+
 public interface OptaPlannerConstants {
     String DEFAULT_SOLVER_ID = "DEFAULT_SOLVER";
+    @Metadata(label = "producer", description = "Specifies the solverId to use.", javaType = "String")
     String SOLVER_ID = "CamelOptaPlannerSolverId";
+    @Metadata(label = "producer", description = "Specify whether to use another thread for submitting Solution instances\n" +
+                                                "rather than blocking the current thread.",
+              javaType = "Boolean")
     String IS_ASYNC = "CamelOptaPlannerIsAsync";
+    @Metadata(label = "consumer", description = "The best planning solution.", javaType = "Object")
     String BEST_SOLUTION = "CamelOptaPlannerBestSolution";
+    @Metadata(label = "producer", description = "Is solving.", javaType = "Boolean")
     String IS_SOLVING = "CamelOptaPlannerIsSolving";
+    @Metadata(label = "producer", description = "true if terminateEarly has been called since the Solver started.",
+              javaType = "Boolean")
     String IS_TERMINATE_EARLY = "CamelOptaPlannerIsTerminateEarly";
     String IS_EVERY_PROBLEM_FACT_CHANGE_PROCESSED = "CamelOptaPlannerIsEveryProblemFactChangeProcessed";
+    @Metadata(label = "producer", description = "The Solver Manager.",
+              javaType = "org.optaplanner.core.api.solver.SolverManager")
     String SOLVER_MANAGER = "CamelOptaPlannerSolverManager";
     long IS_EVERY_PROBLEM_FACT_CHANGE_DELAY = 100;
 }
diff --git a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
index 984c457..c48e30a 100644
--- a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
+++ b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
@@ -36,7 +36,7 @@ import org.optaplanner.core.api.solver.SolverFactory;
  * Solve planning problems with OptaPlanner.
  */
 @UriEndpoint(firstVersion = "2.13.0", scheme = "optaplanner", title = "OptaPlanner", syntax = "optaplanner:configFile",
-             category = { Category.ENGINE, Category.PLANNING })
+             category = { Category.ENGINE, Category.PLANNING }, headersClass = OptaPlannerConstants.class)
 public class OptaPlannerEndpoint extends DefaultEndpoint {
     private static final Map<String, Solver<Object>> SOLVERS = new HashMap<>();
     private static final Map<Long, Set<OptaplannerSolutionEventListener>> SOLUTION_LISTENER = new HashMap();

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

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 36f46f51f7edb8d694676e9fc12e00c934f60d62
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 15:27:25 2022 +0200

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

diff --git a/components/camel-nsq/src/generated/resources/org/apache/camel/component/nsq/nsq.json b/components/camel-nsq/src/generated/resources/org/apache/camel/component/nsq/nsq.json
index f384c43..bdfeea8 100644
--- a/components/camel-nsq/src/generated/resources/org/apache/camel/component/nsq/nsq.json
+++ b/components/camel-nsq/src/generated/resources/org/apache/camel/component/nsq/nsq.json
@@ -28,6 +28,12 @@
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
   },
+  "headers": {
+    "CamelNsqMessageId": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "byte[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message Id." },
+    "CamelNsqMessageAttempts": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message attempts." },
+    "CamelNsqMessageTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "java.util.Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message timestamp." },
+    "CamelNsqMessageTopic": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message topic." }
+  },
   "properties": {
     "topic": { "kind": "path", "displayName": "Topic", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nsq.NsqConfiguration", "configurationField": "configuration", "description": "The NSQ topic" },
     "servers": { "kind": "parameter", "displayName": "Servers", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nsq.NsqConfiguration", "configurationField": "configuration", "description": "The hostnames of one or more nsqlookupd servers (consumer) or nsqd servers (producer)" },
diff --git a/components/camel-nsq/src/main/docs/nsq-component.adoc b/components/camel-nsq/src/main/docs/nsq-component.adoc
index bb2c91d..17867ee 100644
--- a/components/camel-nsq/src/main/docs/nsq-component.adoc
+++ b/components/camel-nsq/src/main/docs/nsq-component.adoc
@@ -50,6 +50,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Examples
 
diff --git a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConstants.java b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConstants.java
index ec35000..2887770 100644
--- a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConstants.java
+++ b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConstants.java
@@ -16,13 +16,19 @@
  */
 package org.apache.camel.component.nsq;
 
+import org.apache.camel.spi.Metadata;
+
 public interface NsqConstants {
 
     int NSQ_DEFAULT_PORT = 4150;
     int NSQ_DEFAULT_LOOKUP_PORT = 4160;
     int NSQ_DEFAULT_LOOKUP_PORT_HTTP = 4161;
+    @Metadata(label = "consumer", description = "The message Id.", javaType = "byte[]")
     String NSQ_MESSAGE_ID = "CamelNsqMessageId";
+    @Metadata(label = "consumer", description = "The message attempts.", javaType = "int")
     String NSQ_MESSAGE_ATTEMPTS = "CamelNsqMessageAttempts";
+    @Metadata(label = "consumer", description = "The message timestamp.", javaType = "java.util.Date")
     String NSQ_MESSAGE_TIMESTAMP = "CamelNsqMessageTimestamp";
+    @Metadata(label = "producer", description = "The message topic.", javaType = "String")
     String NSQ_MESSAGE_TOPIC = "CamelNsqMessageTopic";
 }
diff --git a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqEndpoint.java b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqEndpoint.java
index fd48383..4e8fd47 100644
--- a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqEndpoint.java
+++ b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqEndpoint.java
@@ -36,7 +36,8 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * Send and receive messages from NSQ realtime distributed messaging platform.
  */
-@UriEndpoint(firstVersion = "2.23.0", scheme = "nsq", title = "NSQ", syntax = "nsq:topic", category = { Category.MESSAGING })
+@UriEndpoint(firstVersion = "2.23.0", scheme = "nsq", title = "NSQ", syntax = "nsq:topic", category = { Category.MESSAGING },
+             headersClass = NsqConstants.class)
 public class NsqEndpoint extends DefaultEndpoint {
 
     @UriParam

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

Posted by nf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f37ec2e73dc2f7d5f11058d120eca8b1a4d3ef7f
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 15:05:10 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-netty-http
---
 .../camel/component/netty/http/netty-http.json     | 17 +++++-
 .../src/main/docs/netty-http-component.adoc        | 70 +---------------------
 .../netty/http/DefaultNettyHttpBinding.java        | 56 ++++++++---------
 .../netty/http/NettyHttpConfiguration.java         |  9 +--
 .../component/netty/http/NettyHttpConstants.java   | 45 ++++++++++++++
 .../component/netty/http/NettyHttpConverter.java   |  2 +-
 .../component/netty/http/NettyHttpEndpoint.java    |  2 +-
 .../component/netty/http/NettyHttpHelper.java      | 12 ++--
 .../component/netty/http/NettyHttpProducer.java    |  7 +--
 .../http/handlers/HttpClientChannelHandler.java    |  5 +-
 .../http/handlers/HttpServerChannelHandler.java    | 19 +++---
 .../HttpServerMultiplexChannelHandler.java         |  7 ++-
 12 files changed, 125 insertions(+), 126 deletions(-)

diff --git a/components/camel-netty-http/src/generated/resources/org/apache/camel/component/netty/http/netty-http.json b/components/camel-netty-http/src/generated/resources/org/apache/camel/component/netty/http/netty-http.json
index 6f7a9ab..0e88bd0 100644
--- a/components/camel-netty-http/src/generated/resources/org/apache/camel/component/netty/http/netty-http.json
+++ b/components/camel-netty-http/src/generated/resources/org/apache/camel/component/netty/http/netty-http.json
@@ -101,12 +101,27 @@
     "trustStoreResource": { "kind": "property", "displayName": "Trust Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you [...]
     "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": {
+    "CamelHttpAuthentication": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If the user was authenticated using HTTP Basic then this header is added with the value Basic." },
+    "Content-Type": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To set the content-type of the HTTP body. For example: text\/plain; charset=UTF-8." },
+    "connection": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The value of the HTTP header connection to use." },
+    "CamelNettyCloseChannelWhenComplete": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates whether the channel should be closed after complete." },
+    "CamelHttpResponseCode": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows to set the HTTP Status code to use. By default 200 is used for success, and 500 for failure." },
+    "CamelHttpProtocolVersion": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "HTTP\/1.1", "description": "The version of the HTTP protocol." },
+    "CamelHttpMethod": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "GET", "description": "The HTTP method used, such as GET, POST, TRACE etc." },
+    "CamelHttpQuery": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Any query parameters, such as foo=bar&beer=yes" },
+    "CamelHttpPath": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows to provide URI context-path and query parameters as a String value that overrides the endpoint configuration. This allows to reuse the same producer for calling same remote http server, but using a dynamic context-path and query parameters." },
+    "CamelHttpRawQuery": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Any query parameters, such as foo=bar&beer=yes. Stored in the raw form, as they arrived to the consumer (i.e. before URL decoding)." },
+    "CamelHttpUrl": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The URL including protocol, host and port, etc: http:\/\/0.0.0.0:8080\/myapp." },
+    "CamelHttpCharacterEncoding": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The charset from the content-type header." },
+    "CamelHttpUri": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The URI without protocol, host and port, etc: \/myapp." }
+  },
   "properties": {
     "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "http", "https" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The protocol to use which is either http, https or proxy - a consumer only option." },
     "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.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The local hostname such as localhost, or 0.0.0.0 when being a consumer. The remote HTTP server hostname when using pr [...]
     "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.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The host port number" },
     "path": { "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Resource path" },
-    "bridgeEndpoint": { "kind": "parameter", "displayName": "Bridge Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If the option is true, the producer will ignore the Exchange.HTTP_URI header, and use the endpoint [...]
+    "bridgeEndpoint": { "kind": "parameter", "displayName": "Bridge Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If the option is true, the producer will ignore the NettyHttpConstants.HTTP_URI header, and use th [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and p [...]
     "keepAlive": { "kind": "parameter", "displayName": "Keep Alive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to ensure socket is not closed due to inactivity" },
     "reuseAddress": { "kind": "parameter", "displayName": "Reuse Address", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to facilitate socket multiplexing" },
diff --git a/components/camel-netty-http/src/main/docs/netty-http-component.adoc b/components/camel-netty-http/src/main/docs/netty-http-component.adoc
index 4b2ec19..b3b64fe 100644
--- a/components/camel-netty-http/src/main/docs/netty-http-component.adoc
+++ b/components/camel-netty-http/src/main/docs/netty-http-component.adoc
@@ -98,73 +98,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-
-== Message Headers
-
-The following headers can be used on the producer to control the HTTP
-request.
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHttpMethod` |`String` |Allow to control what HTTP method to use such as GET, POST, TRACE etc.
-The type can also be a `io.netty.handler.codec.http.HttpMethod`
-instance.
-
-|`CamelHttpQuery` |`String` |Allows to provide URI query parameters as a `String` value that
-overrides the endpoint configuration. Separate multiple parameters using
-the & sign. For example: `foo=bar&beer=yes`.
-
-|`CamelHttpPath` |`String` |Allows to provide URI context-path and query parameters as a `String`
-value that overrides the endpoint configuration. This allows to reuse
-the same producer for calling same remote http server, but using a
-dynamic context-path and query parameters.
-
-|`Content-Type` |`String` |To set the content-type of the HTTP body. For example:
-`text/plain; charset="UTF-8"`.
-
-|`CamelHttpResponseCode` |`int` |Allows to set the HTTP Status code to use. By default 200 is used for
-success, and 500 for failure.
-|=======================================================================
-
-The following headers is provided as meta-data when a route starts from
-an Netty HTTP endpoint:
-
-The description in the table takes offset in a route having:
-`from("netty-http:http:0.0.0.0:8080/myapp")...`
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Description
-
-|`CamelHttpMethod` |`String` |The HTTP method used, such as GET, POST, TRACE etc.
-
-|`CamelHttpUrl` |`String` |The URL including protocol, host and port, etc: 
-`\http://0.0.0.0:8080/myapp`
-
-|`CamelHttpUri` |`String` |The URI without protocol, host and port, etc:
-`/myapp`
-
-|`CamelHttpQuery` |`String` |Any query parameters, such as `foo=bar&beer=yes`
-
-|`CamelHttpRawQuery` |`String` |Any query parameters, such as `foo=bar&beer=yes`. Stored in the raw
-form, as they arrived to the consumer (i.e. before URL decoding).
-
-|`CamelHttpPath` |`String` |Additional context-path. This value is empty if the client called the
-context-path `/myapp`. If the client calls `/myapp/mystuff`, then this
-header value is `/mystuff`. In other words its the value after the
-context-path configured on the route endpoint.
-
-|`CamelHttpCharacterEncoding` |`String` |The charset from the content-type header.
-
-|`CamelHttpAuthentication` |`String` |If the user was authenticated using HTTP Basic then this header is added
-with the value `Basic`.
-
-|`Content-Type` |`String` |The content type if provided. For example:
-`text/plain; charset="UTF-8"`.
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Access to Netty types
 
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
index 7d8b373..2819d3d 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
@@ -50,7 +50,6 @@ import org.apache.camel.ExtendedExchange;
 import org.apache.camel.Message;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.TypeConverter;
-import org.apache.camel.component.netty.NettyConstants;
 import org.apache.camel.component.netty.NettyConverter;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.support.ExchangeHelper;
@@ -144,7 +143,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
 
         // NOTE: these headers is applied using the same logic as camel-http/camel-jetty to be consistent
 
-        headers.put(Exchange.HTTP_METHOD, request.method().name());
+        headers.put(NettyHttpConstants.HTTP_METHOD, request.method().name());
         // strip query parameters from the uri
         String s = request.uri();
         if (s.contains("?")) {
@@ -163,13 +162,13 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             }
         }
 
-        headers.put(Exchange.HTTP_URL, s);
+        headers.put(NettyHttpConstants.HTTP_URL, s);
         // uri is without the host and port
         URI uri = new URI(request.uri());
         // uri is path and query parameters
-        headers.put(Exchange.HTTP_URI, uri.getPath());
-        headers.put(Exchange.HTTP_QUERY, uri.getQuery());
-        headers.put(Exchange.HTTP_RAW_QUERY, uri.getRawQuery());
+        headers.put(NettyHttpConstants.HTTP_URI, uri.getPath());
+        headers.put(NettyHttpConstants.HTTP_QUERY, uri.getQuery());
+        headers.put(NettyHttpConstants.HTTP_RAW_QUERY, uri.getRawQuery());
         headers.put(Exchange.HTTP_SCHEME, uri.getScheme());
         headers.put(Exchange.HTTP_HOST, uri.getHost());
         final int port = uri.getPort();
@@ -186,7 +185,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             }
         }
         // keep the path uri using the case the request provided (do not convert to lower case)
-        headers.put(Exchange.HTTP_PATH, path);
+        headers.put(NettyHttpConstants.HTTP_PATH, path);
 
         if (LOG.isTraceEnabled()) {
             LOG.trace("HTTP-Method {}", request.method().name());
@@ -196,7 +195,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
         for (String name : request.headers().names()) {
             // mapping the content-type
             if (name.equalsIgnoreCase("content-type")) {
-                name = Exchange.CONTENT_TYPE;
+                name = NettyHttpConstants.CONTENT_TYPE;
             }
 
             if (name.equalsIgnoreCase("authorization")) {
@@ -224,8 +223,8 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
         // add uri parameters as headers to the Camel message;
         // when acting as a HTTP proxy we don't want to place query
         // parameters in Camel message headers as the query parameters
-        // will be passed via Exchange.HTTP_QUERY, otherwise we could have
-        // both the Exchange.HTTP_QUERY and the values from the message
+        // will be passed via NettyHttpConstants.HTTP_QUERY, otherwise we could have
+        // both the NettyHttpConstants.HTTP_QUERY and the values from the message
         // headers, so we end up with two values for the same query
         // parameter
         if (!configuration.isHttpProxy() && request.uri().contains("?")) {
@@ -251,8 +250,9 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
         // if body is application/x-www-form-urlencoded then extract the body as query string and append as headers
         // if it is a bridgeEndpoint we need to skip this part of work
         // if we're proxying the body is a buffer that we do not want to consume directly
-        if (request.method().name().equals("POST") && request.headers().get(Exchange.CONTENT_TYPE) != null
-                && request.headers().get(Exchange.CONTENT_TYPE).startsWith(NettyHttpConstants.CONTENT_TYPE_WWW_FORM_URLENCODED)
+        if (request.method().name().equals("POST") && request.headers().get(NettyHttpConstants.CONTENT_TYPE) != null
+                && request.headers().get(NettyHttpConstants.CONTENT_TYPE)
+                        .startsWith(NettyHttpConstants.CONTENT_TYPE_WWW_FORM_URLENCODED)
                 && !configuration.isBridgeEndpoint() && !configuration.isHttpProxy() && request instanceof FullHttpRequest) {
 
             String charset = "UTF-8";
@@ -299,7 +299,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             NettyHttpConfiguration configuration, String headerName, Object value, String charset)
             throws UnsupportedEncodingException {
         // do not decode Content-Type
-        if (Exchange.CONTENT_TYPE.equals(headerName)) {
+        if (NettyHttpConstants.CONTENT_TYPE.equals(headerName)) {
             return value.toString();
         } else if (configuration.isUrlDecodeHeaders()) {
             return URLDecoder.decode(value.toString(), charset);
@@ -353,13 +353,13 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             HttpResponse response, Map<String, Object> headers, Exchange exchange, NettyHttpConfiguration configuration) {
         LOG.trace("populateCamelHeaders: {}", response);
 
-        headers.put(Exchange.HTTP_RESPONSE_CODE, response.status().code());
+        headers.put(NettyHttpConstants.HTTP_RESPONSE_CODE, response.status().code());
         headers.put(Exchange.HTTP_RESPONSE_TEXT, response.status().reasonPhrase());
 
         for (String name : response.headers().names()) {
             // mapping the content-type
             if (name.equalsIgnoreCase("content-type")) {
-                name = Exchange.CONTENT_TYPE;
+                name = NettyHttpConstants.CONTENT_TYPE;
             }
             // add the headers one by one, and use the header filter strategy
             List<String> values = response.headers().getAll(name);
@@ -414,7 +414,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
                 // the body should be the serialized java object of the exception
                 body = NettyConverter.toByteBuffer(bos.toByteArray());
                 // force content type to be serialized java object
-                message.setHeader(Exchange.CONTENT_TYPE, NettyHttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT);
+                message.setHeader(NettyHttpConstants.CONTENT_TYPE, NettyHttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT);
             } else {
                 // we failed due an exception so print it as plain text
                 StringWriter sw = new StringWriter();
@@ -424,7 +424,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
                 // the body should then be the stacktrace
                 body = NettyConverter.toByteBuffer(sw.toString().getBytes());
                 // force content type to be text/plain as that is what the stacktrace is
-                message.setHeader(Exchange.CONTENT_TYPE, "text/plain");
+                message.setHeader(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             }
 
             // and mark the exception as failure handled, as we handled it by returning it as the response
@@ -433,7 +433,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             // empty body
             body = NettyConverter.toByteBuffer("".getBytes());
             // force content type to be text/plain
-            message.setHeader(Exchange.CONTENT_TYPE, "text/plain");
+            message.setHeader(NettyHttpConstants.CONTENT_TYPE, "text/plain");
 
             // and mark the exception as failure handled, as we handled it by actively muting it
             ExchangeHelper.setFailureHandled(message.getExchange());
@@ -516,10 +516,10 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
 
         // configure connection to accordingly to keep alive configuration
         // favor using the header from the message
-        String connection = message.getHeader(HttpHeaderNames.CONNECTION.toString(), String.class);
+        String connection = message.getHeader(NettyHttpConstants.CONNECTION, String.class);
         // Read the connection header from the exchange property
         if (connection == null) {
-            connection = message.getExchange().getProperty(HttpHeaderNames.CONNECTION.toString(), String.class);
+            connection = message.getExchange().getProperty(NettyHttpConstants.CONNECTION, String.class);
         }
         if (connection == null) {
             // fallback and use the keep alive from the configuration
@@ -529,10 +529,10 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
                 connection = HttpHeaderValues.CLOSE.toString();
             }
         }
-        response.headers().set(HttpHeaderNames.CONNECTION.toString(), connection);
+        response.headers().set(NettyHttpConstants.CONNECTION, connection);
         // Just make sure we close the channel when the connection value is close
         if (connection.equalsIgnoreCase(HttpHeaderValues.CLOSE.toString())) {
-            message.setHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
+            message.setHeader(NettyHttpConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
         }
         LOG.trace("Connection: {}", connection);
 
@@ -547,7 +547,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
         int defaultCode = failed ? 500 : 200;
 
         Message message = camelExchange.getMessage();
-        Integer currentCode = message.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
+        Integer currentCode = message.getHeader(NettyHttpConstants.HTTP_RESPONSE_CODE, Integer.class);
         int codeToUse = currentCode == null ? defaultCode : currentCode;
 
         if (codeToUse != 500) {
@@ -583,7 +583,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             }
         }
 
-        final String headerProtocolVersion = message.getHeader(Exchange.HTTP_PROTOCOL_VERSION, String.class);
+        final String headerProtocolVersion = message.getHeader(NettyHttpConstants.HTTP_PROTOCOL_VERSION, String.class);
         final HttpVersion protocol;
         if (headerProtocolVersion == null) {
             protocol = HttpVersion.HTTP_1_1;
@@ -591,7 +591,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             protocol = HttpVersion.valueOf(headerProtocolVersion);
         }
 
-        final String headerMethod = message.getHeader(Exchange.HTTP_METHOD, String.class);
+        final String headerMethod = message.getHeader(NettyHttpConstants.HTTP_METHOD, String.class);
 
         final HttpMethod httpMethod;
         if (headerMethod == null) {
@@ -667,7 +667,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
         // duplicated headers to the receiver, so use this skipRequestHeaders as the list of headers to skip
         Map<String, Object> skipRequestHeaders = null;
         if (configuration.isBridgeEndpoint()) {
-            String queryString = message.getHeader(Exchange.HTTP_QUERY, String.class);
+            String queryString = message.getHeader(NettyHttpConstants.HTTP_QUERY, String.class);
             if (queryString != null) {
                 skipRequestHeaders = URISupport.parseQuery(queryString, false, true);
             }
@@ -718,7 +718,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
 
         // configure connection to accordingly to keep alive configuration
         // favor using the header from the message
-        String connection = message.getHeader(HttpHeaderNames.CONNECTION.toString(), String.class);
+        String connection = message.getHeader(NettyHttpConstants.CONNECTION, String.class);
         if (connection == null) {
             // fallback and use the keep alive from the configuration
             if (configuration.isKeepAlive()) {
@@ -728,7 +728,7 @@ public class DefaultNettyHttpBinding implements NettyHttpBinding, Cloneable {
             }
         }
 
-        request.headers().set(HttpHeaderNames.CONNECTION.toString(), connection);
+        request.headers().set(NettyHttpConstants.CONNECTION, connection);
         LOG.trace("Connection: {}", connection);
 
         return request;
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
index 5949dcd..5c24266 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
@@ -253,10 +253,11 @@ public class NettyHttpConfiguration extends NettyConfiguration {
     }
 
     /**
-     * If the option is true, the producer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for
-     * request. You may also set the throwExceptionOnFailure to be false to let the producer send all the fault response
-     * back. The consumer working in the bridge mode will skip the gzip compression and WWW URL form encoding (by adding
-     * the Exchange.SKIP_GZIP_ENCODING and Exchange.SKIP_WWW_FORM_URLENCODED headers to the consumed exchange).
+     * If the option is true, the producer will ignore the NettyHttpConstants.HTTP_URI header, and use the endpoint's
+     * URI for request. You may also set the throwExceptionOnFailure to be false to let the producer send all the fault
+     * response back. The consumer working in the bridge mode will skip the gzip compression and WWW URL form encoding
+     * (by adding the Exchange.SKIP_GZIP_ENCODING and Exchange.SKIP_WWW_FORM_URLENCODED headers to the consumed
+     * exchange).
      */
     public void setBridgeEndpoint(boolean bridgeEndpoint) {
         this.bridgeEndpoint = bridgeEndpoint;
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java
index 3dc3a1f..f22d82a 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConstants.java
@@ -16,7 +16,10 @@
  */
 package org.apache.camel.component.netty.http;
 
+import io.netty.handler.codec.http.HttpHeaderNames;
 import org.apache.camel.Exchange;
+import org.apache.camel.component.netty.NettyConstants;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Netty HTTP constants.
@@ -27,8 +30,50 @@ public final class NettyHttpConstants {
     public static final String CONTENT_TYPE_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded";
     @Deprecated
     public static final String HTTP_RESPONSE_TEXT = Exchange.HTTP_RESPONSE_TEXT;
+    @Metadata(description = "If the user was authenticated using HTTP Basic then this header is added\n" +
+                            "with the value `Basic`.",
+              javaType = "String")
     public static final String HTTP_AUTHENTICATION = "CamelHttpAuthentication";
 
+    @Metadata(description = "To set the content-type of the HTTP body. For example:\n" +
+                            "`text/plain; charset=\"UTF-8\"`.",
+              javaType = "String")
+    public static final String CONTENT_TYPE = Exchange.CONTENT_TYPE;
+    @Metadata(description = "The value of the HTTP header connection to use.", javaType = "String")
+    public static final String CONNECTION = HttpHeaderNames.CONNECTION.toString();
+    @Metadata(description = "Indicates whether the channel should be closed after complete.", javaType = "Boolean")
+    public static final String NETTY_CLOSE_CHANNEL_WHEN_COMPLETE = NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE;
+    @Metadata(description = "Allows to set the HTTP Status code to use. By default 200 is used for\n" +
+                            "success, and 500 for failure.",
+              javaType = "Integer")
+    public static final String HTTP_RESPONSE_CODE = Exchange.HTTP_RESPONSE_CODE;
+    @Metadata(description = "The version of the HTTP protocol.", javaType = "String", defaultValue = "HTTP/1.1")
+    public static final String HTTP_PROTOCOL_VERSION = Exchange.HTTP_PROTOCOL_VERSION;
+    @Metadata(description = "The HTTP method used, such as GET, POST, TRACE etc.", javaType = "String", defaultValue = "GET")
+    public static final String HTTP_METHOD = Exchange.HTTP_METHOD;
+    @Metadata(description = "Any query parameters, such as `foo=bar&beer=yes`", javaType = "String")
+    public static final String HTTP_QUERY = Exchange.HTTP_QUERY;
+    @Metadata(description = "Allows to provide URI context-path and query parameters as a `String`\n" +
+                            "value that overrides the endpoint configuration. This allows to reuse\n" +
+                            "the same producer for calling same remote http server, but using a\n" +
+                            "dynamic context-path and query parameters.",
+              javaType = "String")
+    public static final String HTTP_PATH = Exchange.HTTP_PATH;
+    @Metadata(description = "Any query parameters, such as `foo=bar&beer=yes`. Stored in the raw\n" +
+                            "form, as they arrived to the consumer (i.e. before URL decoding).",
+              javaType = "String")
+    public static final String HTTP_RAW_QUERY = Exchange.HTTP_RAW_QUERY;
+    @Metadata(description = "The URL including protocol, host and port, etc: \n" +
+                            "`\\http://0.0.0.0:8080/myapp`.",
+              javaType = "String")
+    public static final String HTTP_URL = Exchange.HTTP_URL;
+    @Metadata(description = "The charset from the content-type header.", javaType = "String")
+    public static final String HTTP_CHARACTER_ENCODING = Exchange.HTTP_CHARACTER_ENCODING;
+    @Metadata(description = "The URI without protocol, host and port, etc:\n" +
+                            "`/myapp`.",
+              javaType = "String")
+    public static final String HTTP_URI = Exchange.HTTP_URI;
+
     private NettyHttpConstants() {
     }
 }
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConverter.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConverter.java
index 57a1a5f..f7afabf 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConverter.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConverter.java
@@ -86,7 +86,7 @@ public final class NettyHttpConverter {
 
     @Converter
     public static String toString(FullHttpResponse response, Exchange exchange) {
-        String contentType = response.headers().get(Exchange.CONTENT_TYPE);
+        String contentType = response.headers().get(NettyHttpConstants.CONTENT_TYPE);
         String charset = NettyHttpHelper.getCharsetFromContentType(contentType);
         if (charset == null && exchange != null) {
             charset = exchange.getProperty(ExchangePropertyKey.CHARSET_NAME, String.class);
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
index 5b93f30..65b41a1 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "netty-http", extendsScheme = "netty", title = "Netty HTTP",
              syntax = "netty-http:protocol://host:port/path", category = { Category.NETWORKING, Category.HTTP },
-             lenientProperties = true)
+             lenientProperties = true, headersClass = NettyHttpConstants.class)
 @Metadata(excludeProperties = "textline,delimiter,autoAppendDelimiter,decoderMaxLineLength,encoding,allowDefaultCodec,udpConnectionlessSending,networkInterface"
                               + ",clientMode,reconnect,reconnectInterval,useByteBuf,udpByteArrayCodec,broadcast,correlationManager")
 public class NettyHttpEndpoint extends NettyEndpoint implements AsyncEndpoint, HeaderFilterStrategyAware {
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpHelper.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpHelper.java
index 25ade42..3c4fdec 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpHelper.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpHelper.java
@@ -104,11 +104,11 @@ public final class NettyHttpHelper {
      */
     public static HttpMethod createMethod(Message message, boolean hasPayload) {
         // use header first
-        HttpMethod m = message.getHeader(Exchange.HTTP_METHOD, HttpMethod.class);
+        HttpMethod m = message.getHeader(NettyHttpConstants.HTTP_METHOD, HttpMethod.class);
         if (m != null) {
             return m;
         }
-        String name = message.getHeader(Exchange.HTTP_METHOD, String.class);
+        String name = message.getHeader(NettyHttpConstants.HTTP_METHOD, String.class);
         if (name != null) {
             // must be in upper case
             name = name.toUpperCase();
@@ -140,7 +140,7 @@ public final class NettyHttpHelper {
         }
 
         if (transferException) {
-            String contentType = response.headers().get(Exchange.CONTENT_TYPE);
+            String contentType = response.headers().get(NettyHttpConstants.CONTENT_TYPE);
             if (NettyHttpConstants.CONTENT_TYPE_JAVA_SERIALIZED_OBJECT.equals(contentType)) {
                 // if the response was a serialized exception then use that
                 InputStream is = exchange.getContext().getTypeConverter().convertTo(InputStream.class, response);
@@ -201,7 +201,7 @@ public final class NettyHttpHelper {
         }
 
         // append HTTP_PATH to HTTP_URI if it is provided in the header
-        String path = exchange.getIn().getHeader(Exchange.HTTP_PATH, String.class);
+        String path = exchange.getIn().getHeader(NettyHttpConstants.HTTP_PATH, String.class);
         // NOW the HTTP_PATH is just related path, we don't need to trim it
         if (path != null && !path.isEmpty()) {
             if (path.startsWith("/")) {
@@ -247,10 +247,10 @@ public final class NettyHttpHelper {
         // is a query string provided in the endpoint URI or in a header
         // (header overrules endpoint, raw query header overrules query header)
         if (queryString == null) {
-            queryString = exchange.getIn().getHeader(Exchange.HTTP_RAW_QUERY, String.class);
+            queryString = exchange.getIn().getHeader(NettyHttpConstants.HTTP_RAW_QUERY, String.class);
         }
         if (queryString == null) {
-            queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+            queryString = exchange.getIn().getHeader(NettyHttpConstants.HTTP_QUERY, String.class);
         }
         if (queryString == null) {
             // use raw as we encode just below
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpProducer.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpProducer.java
index 05c7132..42f83ca 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpProducer.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpProducer.java
@@ -28,7 +28,6 @@ import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExtendedExchange;
 import org.apache.camel.component.netty.NettyConfiguration;
-import org.apache.camel.component.netty.NettyConstants;
 import org.apache.camel.component.netty.NettyProducer;
 import org.apache.camel.http.base.cookie.CookieHandler;
 import org.apache.camel.support.SynchronizationAdapter;
@@ -91,11 +90,11 @@ public class NettyHttpProducer extends NettyProducer {
 
         final NettyHttpBinding nettyHttpBinding = endpoint.getNettyHttpBinding();
         final HttpRequest request = nettyHttpBinding.toNettyRequest(exchange.getIn(), u.toString(), getConfiguration());
-        exchange.getIn().setHeader(Exchange.HTTP_URL, uri);
+        exchange.getIn().setHeader(NettyHttpConstants.HTTP_URL, uri);
         // Need to check if we need to close the connection or not
         if (!HttpUtil.isKeepAlive(request)) {
             // just want to make sure we close the channel if the keepAlive is not true
-            exchange.setProperty(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
+            exchange.setProperty(NettyHttpConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
         }
         if (getConfiguration().isBridgeEndpoint()) {
             // Need to remove the Host key as it should be not used when bridging/proxying
@@ -155,7 +154,7 @@ public class NettyHttpProducer extends NettyProducer {
                             });
 
                             // the actual url is stored on the IN message in the getRequestBody method as its accessed on-demand
-                            String actualUrl = exchange.getIn().getHeader(Exchange.HTTP_URL, String.class);
+                            String actualUrl = exchange.getIn().getHeader(NettyHttpConstants.HTTP_URL, String.class);
                             int code = response.status() != null ? response.status().code() : -1;
                             LOG.debug("Http responseCode: {}", code);
 
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpClientChannelHandler.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpClientChannelHandler.java
index f5bcdee..1485af2 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpClientChannelHandler.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpClientChannelHandler.java
@@ -31,6 +31,7 @@ import org.apache.camel.Message;
 import org.apache.camel.component.netty.NettyConstants;
 import org.apache.camel.component.netty.handlers.ClientChannelHandler;
 import org.apache.camel.component.netty.http.InboundStreamHttpResponse;
+import org.apache.camel.component.netty.http.NettyHttpConstants;
 import org.apache.camel.component.netty.http.NettyHttpProducer;
 
 /**
@@ -70,11 +71,11 @@ public class HttpClientChannelHandler extends ClientChannelHandler {
 
         if (!HttpUtil.isKeepAlive(response)) {
             // just want to make sure we close the channel if the keepAlive is not true
-            exchange.setProperty(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
+            exchange.setProperty(NettyHttpConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
         }
         // handle cookies
         if (producer.getEndpoint().getCookieHandler() != null) {
-            String actualUri = exchange.getIn().getHeader(Exchange.HTTP_URL, String.class);
+            String actualUri = exchange.getIn().getHeader(NettyHttpConstants.HTTP_URL, String.class);
             URI uri = new URI(actualUri);
             Map<String, List<String>> m = new HashMap<>();
             for (String name : response.headers().names()) {
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerChannelHandler.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerChannelHandler.java
index dea2054..4b36183 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerChannelHandler.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerChannelHandler.java
@@ -45,6 +45,7 @@ import org.apache.camel.component.netty.handlers.ServerChannelHandler;
 import org.apache.camel.component.netty.http.HttpPrincipal;
 import org.apache.camel.component.netty.http.InboundStreamHttpRequest;
 import org.apache.camel.component.netty.http.NettyHttpConfiguration;
+import org.apache.camel.component.netty.http.NettyHttpConstants;
 import org.apache.camel.component.netty.http.NettyHttpConsumer;
 import org.apache.camel.component.netty.http.NettyHttpHelper;
 import org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration;
@@ -101,7 +102,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
                 }
             }
             HttpResponse response = new DefaultHttpResponse(HTTP_1_1, BAD_REQUEST);
-            response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+            response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             response.headers().set(Exchange.CONTENT_LENGTH, 0);
             ctx.writeAndFlush(response);
             ctx.channel().close();
@@ -112,7 +113,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
             // are we suspended?
             LOG.debug("Consumer suspended, cannot service request {}", request);
             HttpResponse response = new DefaultHttpResponse(HTTP_1_1, SERVICE_UNAVAILABLE);
-            response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+            response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             response.headers().set(Exchange.CONTENT_LENGTH, 0);
             ctx.writeAndFlush(response);
             ctx.channel().close();
@@ -122,7 +123,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
         if (consumer.getEndpoint().getHttpMethodRestrict() != null
                 && !consumer.getEndpoint().getHttpMethodRestrict().contains(request.method().name())) {
             HttpResponse response = new DefaultHttpResponse(HTTP_1_1, METHOD_NOT_ALLOWED);
-            response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+            response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             response.headers().set(Exchange.CONTENT_LENGTH, 0);
             ctx.writeAndFlush(response);
             ctx.channel().close();
@@ -130,7 +131,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
         }
         if ("TRACE".equals(request.method().name()) && !consumer.getEndpoint().isTraceEnabled()) {
             HttpResponse response = new DefaultHttpResponse(HTTP_1_1, METHOD_NOT_ALLOWED);
-            response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+            response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             response.headers().set(Exchange.CONTENT_LENGTH, 0);
             ctx.writeAndFlush(response);
             ctx.channel().close();
@@ -140,7 +141,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
         if (!request.headers().contains(HttpHeaderNames.HOST.toString())) {
             HttpResponse response = new DefaultHttpResponse(HTTP_1_1, BAD_REQUEST);
             //response.setChunked(false);
-            response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+            response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             response.headers().set(Exchange.CONTENT_LENGTH, 0);
             ctx.writeAndFlush(response);
             ctx.channel().close();
@@ -208,7 +209,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
                     // restricted resource, so send back 401 to require valid username/password
                     HttpResponse response = new DefaultHttpResponse(HTTP_1_1, UNAUTHORIZED);
                     response.headers().set("WWW-Authenticate", "Basic realm=\"" + security.getRealm() + "\"");
-                    response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+                    response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
                     response.headers().set(Exchange.CONTENT_LENGTH, 0);
                     ctx.writeAndFlush(response);
                     // close the channel
@@ -312,7 +313,7 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
         boolean keepAlive = HttpUtil.isKeepAlive(request);
         if (!keepAlive) {
             // Just make sure we close the connection this time.
-            exchange.setProperty(HttpHeaderNames.CONNECTION.toString(), HttpHeaderValues.CLOSE.toString());
+            exchange.setProperty(NettyHttpConstants.CONNECTION, HttpHeaderValues.CLOSE.toString());
         }
 
         final Message in = exchange.getIn();
@@ -359,11 +360,11 @@ public class HttpServerChannelHandler extends ServerChannelHandler {
         consumer.getEndpoint().updateMessageHeader(in, ctx);
 
         // honor the character encoding
-        String contentType = in.getHeader(Exchange.CONTENT_TYPE, String.class);
+        String contentType = in.getHeader(NettyHttpConstants.CONTENT_TYPE, String.class);
         String charset = NettyHttpHelper.getCharsetFromContentType(contentType);
         if (charset != null) {
             exchange.setProperty(ExchangePropertyKey.CHARSET_NAME, charset);
-            in.setHeader(Exchange.HTTP_CHARACTER_ENCODING, charset);
+            in.setHeader(NettyHttpConstants.HTTP_CHARACTER_ENCODING, charset);
         }
 
         return exchange;
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java
index d6dfa99..3cfa386 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java
@@ -39,6 +39,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.component.netty.http.HttpServerConsumerChannelFactory;
 import org.apache.camel.component.netty.http.InboundStreamHttpRequest;
 import org.apache.camel.component.netty.http.NettyHttpConfiguration;
+import org.apache.camel.component.netty.http.NettyHttpConstants;
 import org.apache.camel.component.netty.http.NettyHttpConsumer;
 import org.apache.camel.support.RestConsumerContextPathMatcher;
 import org.apache.camel.util.UnsafeUriCharactersEncoder;
@@ -145,7 +146,7 @@ public class HttpServerMultiplexChannelHandler extends SimpleChannelInboundHandl
                 }
 
                 HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
-                response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+                response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
                 response.headers().set(Exchange.CONTENT_LENGTH, 0);
                 response.headers().set("Allow", allowedMethods);
                 ctx.writeAndFlush(response);
@@ -173,7 +174,7 @@ public class HttpServerMultiplexChannelHandler extends SimpleChannelInboundHandl
                 // this resource is not found, return 404
                 response = new DefaultHttpResponse(HTTP_1_1, NOT_FOUND);
             }
-            response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+            response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
             response.headers().set(Exchange.CONTENT_LENGTH, 0);
             ctx.writeAndFlush(response);
             ctx.close();
@@ -198,7 +199,7 @@ public class HttpServerMultiplexChannelHandler extends SimpleChannelInboundHandl
                         cause);
                 // Now we just send 404 back to the client
                 HttpResponse response = new DefaultHttpResponse(HTTP_1_1, NOT_FOUND);
-                response.headers().set(Exchange.CONTENT_TYPE, "text/plain");
+                response.headers().set(NettyHttpConstants.CONTENT_TYPE, "text/plain");
                 response.headers().set(Exchange.CONTENT_LENGTH, 0);
                 ctx.writeAndFlush(response);
                 ctx.close();

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

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 38f408e755877fd30bb90ebefb05ff67d7f9e7b7
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 15:36:07 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-oaipmh
---
 .../resources/org/apache/camel/oaipmh/component/oaipmh.json  |  3 +++
 components/camel-oaipmh/src/main/docs/oaipmh-component.adoc  | 12 +++---------
 .../org/apache/camel/oaipmh/component/OAIPMHEndpoint.java    |  3 ++-
 .../apache/camel/oaipmh/component/model/OAIPMHConstants.java |  5 +++++
 4 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/components/camel-oaipmh/src/generated/resources/org/apache/camel/oaipmh/component/oaipmh.json b/components/camel-oaipmh/src/generated/resources/org/apache/camel/oaipmh/component/oaipmh.json
index c97eac5..dfbabaa 100644
--- a/components/camel-oaipmh/src/generated/resources/org/apache/camel/oaipmh/component/oaipmh.json
+++ b/components/camel-oaipmh/src/generated/resources/org/apache/camel/oaipmh/component/oaipmh.json
@@ -26,6 +26,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": {
+    "CamelOaimphResumptionToken": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This header is obtained when onlyFirst option is enable. Return resumption token of the request when data is still available." }
+  },
   "properties": {
     "baseUrl": { "kind": "path", "displayName": "Base Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Base URL of the repository to which the request is made through the OAI-PMH protocol" },
     "from": { "kind": "parameter", "displayName": "From", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Specifies a lower bound for datestamp-based selective harvesting. UTC DateTime value" },
diff --git a/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc b/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
index f551dd9..cf194cd 100644
--- a/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
+++ b/components/camel-oaipmh/src/main/docs/oaipmh-component.adoc
@@ -48,17 +48,11 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 
-
-== Message Headers
-
-[width="100%",cols="20%,80%",options="header",]
-|=======================================================================
-|Name |Description
-|`CamelOaimphResumptionToken` | This header is obtained when onlyFirst option is enable. Return resumptiontoken of the request when data is still available.
-|=======================================================================
-
 == Usage
 
 The OAIPMH component supports both consumer and producer endpoints.
diff --git a/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java b/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java
index a11fbe1..0381e62 100644
--- a/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java
+++ b/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/OAIPMHEndpoint.java
@@ -23,6 +23,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.oaipmh.component.model.OAIPMHConstants;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
@@ -35,7 +36,7 @@ import org.joda.time.format.ISODateTimeFormat;
  * Harvest metadata using OAI-PMH protocol
  */
 @UriEndpoint(firstVersion = "3.5.0", scheme = "oaipmh", title = "OAI-PMH", syntax = "oaipmh:baseUrl", lenientProperties = true,
-             category = { Category.ENDPOINT, Category.WEBSERVICE, Category.BATCH })
+             category = { Category.ENDPOINT, Category.WEBSERVICE, Category.BATCH }, headersClass = OAIPMHConstants.class)
 public class OAIPMHEndpoint extends ScheduledPollEndpoint {
 
     private transient URI url;
diff --git a/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/model/OAIPMHConstants.java b/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/model/OAIPMHConstants.java
index 4a18307..6aac8ff 100644
--- a/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/model/OAIPMHConstants.java
+++ b/components/camel-oaipmh/src/main/java/org/apache/camel/oaipmh/component/model/OAIPMHConstants.java
@@ -16,7 +16,12 @@
  */
 package org.apache.camel.oaipmh.component.model;
 
+import org.apache.camel.spi.Metadata;
+
 public final class OAIPMHConstants {
+    @Metadata(label = "producer", description = "This header is obtained when onlyFirst option is enable. " +
+                                                "Return resumption token of the request when data is still available.",
+              javaType = "String")
     public static final String RESUMPTION_TOKEN = "CamelOaimphResumptionToken";
     public static final String URL = "CamelOaimphUrl";
     public static final String ENDPOINT_URL = "CamelOaimphEndpointUrl";

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

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 7ce24d40298240b0ac52dcc2009107e0ded78466
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 12:25:00 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-nats
---
 .../resources/org/apache/camel/component/nats/nats.json  |  7 +++++++
 components/camel-nats/src/main/docs/nats-component.adoc  | 16 +++-------------
 .../org/apache/camel/component/nats/NatsConstants.java   |  7 +++++++
 .../org/apache/camel/component/nats/NatsEndpoint.java    |  3 ++-
 4 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/components/camel-nats/src/generated/resources/org/apache/camel/component/nats/nats.json b/components/camel-nats/src/generated/resources/org/apache/camel/component/nats/nats.json
index 75f2419..ab5f373 100644
--- a/components/camel-nats/src/generated/resources/org/apache/camel/component/nats/nats.json
+++ b/components/camel-nats/src/generated/resources/org/apache/camel/component/nats/nats.json
@@ -30,6 +30,13 @@
     "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
     "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": {
+    "CamelNatsMessageTimestamp": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The timestamp of a consumed message." },
+    "CamelNatsSID": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SID of a consumed message." },
+    "CamelNatsReplyTo": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ReplyTo of a consumed message (may be null)." },
+    "CamelNatsSubject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Subject of a consumed message." },
+    "CamelNatsQueueName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Queue name of a consumed message (may be null)." }
+  },
   "properties": {
     "topic": { "kind": "path", "displayName": "Topic", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nats.NatsConfiguration", "configurationField": "configuration", "description": "The name of topic we want to use" },
     "connectionTimeout": { "kind": "parameter", "displayName": "Connection Timeout", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2000, "configurationClass": "org.apache.camel.component.nats.NatsConfiguration", "configurationField": "configuration", "description": "Timeout for connection attempts. (in milliseconds)" },
diff --git a/components/camel-nats/src/main/docs/nats-component.adoc b/components/camel-nats/src/main/docs/nats-component.adoc
index 346e3a5..79e4bd2 100644
--- a/components/camel-nats/src/main/docs/nats-component.adoc
+++ b/components/camel-nats/src/main/docs/nats-component.adoc
@@ -48,7 +48,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
 
 == Configuring servers
 
@@ -90,18 +92,6 @@ If you are using Camel Main or Spring Boot you can configure the server urls in
 camel.component.nats.servers=scott:tiger@someserver:4222,superman:123@someotherserver:42222
 ----
 
-== Headers
-
-[width="100%",options="header"]
-|=======================================================================
-|Name |Type |Description
-| CamelNatsSID | String | The SID of a consumed message.
-| CamelNatsReplyTo | String | The ReplyTo of a consumed message (may be null).
-| CamelNatsSubject | String | The Subject of a consumed message.
-| CamelNatsQueueName | String | The Queue name of a consumed message (may be null).
-| CamelNatsMessageTimestamp | long | The timestamp of a consumed message.
-|=======================================================================
-
 == Request/Reply support
 The producer supports request/reply where it can wait for an expected reply message.
 
diff --git a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConstants.java b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConstants.java
index 14511b0..5c0b98a 100644
--- a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConstants.java
+++ b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsConstants.java
@@ -16,12 +16,19 @@
  */
 package org.apache.camel.component.nats;
 
+import org.apache.camel.spi.Metadata;
+
 public interface NatsConstants {
 
+    @Metadata(description = "The timestamp of a consumed message.", javaType = "long")
     String NATS_MESSAGE_TIMESTAMP = "CamelNatsMessageTimestamp";
+    @Metadata(description = "The SID of a consumed message.", javaType = "String")
     String NATS_SID = "CamelNatsSID";
+    @Metadata(description = "The ReplyTo of a consumed message (may be null).", javaType = "String")
     String NATS_REPLY_TO = "CamelNatsReplyTo";
+    @Metadata(description = "The Subject of a consumed message.", javaType = "String")
     String NATS_SUBJECT = "CamelNatsSubject";
+    @Metadata(description = "The Queue name of a consumed message (may be null).", javaType = "String")
     String NATS_QUEUE_NAME = "CamelNatsQueueName";
     String NATS_REQUEST_TIMEOUT_THREAD_PROFILE_NAME = "CamelNatsRequestTimeoutExecutor";
 }
diff --git a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsEndpoint.java b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsEndpoint.java
index b0e589f..7cc24f5 100644
--- a/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsEndpoint.java
+++ b/components/camel-nats/src/main/java/org/apache/camel/component/nats/NatsEndpoint.java
@@ -40,7 +40,8 @@ import org.apache.camel.support.DefaultEndpoint;
 /**
  * Send and receive messages from <a href="http://nats.io/">NATS</a> messaging system.
  */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "nats", title = "Nats", syntax = "nats:topic", category = { Category.MESSAGING })
+@UriEndpoint(firstVersion = "2.17.0", scheme = "nats", title = "Nats", syntax = "nats:topic", category = { Category.MESSAGING },
+             headersClass = NatsConstants.class)
 public class NatsEndpoint extends DefaultEndpoint implements MultipleConsumersSupport, HeaderFilterStrategyAware {
 
     @UriParam

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

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 a32b83c04b7b24f55133ef31091f3866a83d9af5
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 16:00:32 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-olingo4
---
 .../resources/org/apache/camel/component/olingo4/olingo4.json         | 3 +++
 .../camel-olingo4-component/src/main/docs/olingo4-component.adoc      | 4 +++-
 .../main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java | 2 +-
 .../main/java/org/apache/camel/component/olingo4/Olingo4Producer.java | 3 +--
 .../org/apache/camel/component/olingo4/internal/Olingo4Constants.java | 4 ++++
 5 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/components/camel-olingo4/camel-olingo4-component/src/generated/resources/org/apache/camel/component/olingo4/olingo4.json b/components/camel-olingo4/camel-olingo4-component/src/generated/resources/org/apache/camel/component/olingo4/olingo4.json
index dcc0aae..f155c15 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/generated/resources/org/apache/camel/component/olingo4/olingo4.json
+++ b/components/camel-olingo4/camel-olingo4-component/src/generated/resources/org/apache/camel/component/olingo4/olingo4.json
@@ -40,6 +40,9 @@
     "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.olingo4.Olingo4Configuration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters" },
     "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": {
+    "CamelOlingo4.responseHttpHeaders": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The response Http headers" }
+  },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.olingo4.internal.Olingo4ApiName", "enum": [ "DEFAULT" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.olingo4.Olingo4Configuration", "configurationField": "configuration", "description": "What kind of operation to perform" },
     "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.olingo4.Olingo4Configuration", "configurationField": "configuration", "description": "What sub operation to use for the selected operation" },
diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc b/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
index 2f9a5ab..3a729f7 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
+++ b/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-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
 
 == Endpoint HTTP Headers
 
diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java
index bf7c6b2..3036f16 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java
+++ b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Endpoint.java
@@ -46,7 +46,7 @@ import org.apache.camel.support.component.ApiMethodPropertiesHelper;
  */
 @UriEndpoint(firstVersion = "2.19.0", scheme = "olingo4", title = "Olingo4", syntax = "olingo4:apiName/methodName",
              apiSyntax = "apiName/methodName",
-             category = { Category.CLOUD })
+             category = { Category.CLOUD }, headersClass = Olingo4Constants.class)
 public class Olingo4Endpoint extends AbstractApiEndpoint<Olingo4ApiName, Olingo4Configuration> {
 
     protected static final String RESOURCE_PATH_PROPERTY = "resourcePath";
diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Producer.java b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Producer.java
index 00b753f..7123d7d 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Producer.java
+++ b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Producer.java
@@ -70,8 +70,7 @@ public class Olingo4Producer extends AbstractApiProducer<Olingo4ApiName, Olingo4
                 exchange.getOut().setHeaders(exchange.getIn().getHeaders());
 
                 // Add http response headers
-                exchange.getOut().setHeader(Olingo4Constants.PROPERTY_PREFIX + Olingo4Constants.RESPONSE_HTTP_HEADERS,
-                        responseHeaders);
+                exchange.getOut().setHeader(Olingo4Constants.FULL_RESPONSE_HTTP_HEADERS, responseHeaders);
 
                 interceptResult(response, exchange);
 
diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/internal/Olingo4Constants.java b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/internal/Olingo4Constants.java
index 700b897..34e552f 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/internal/Olingo4Constants.java
+++ b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/internal/Olingo4Constants.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.olingo4.internal;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Constants for Olingo4 component.
  */
@@ -28,4 +30,6 @@ public interface Olingo4Constants {
     String THREAD_PROFILE_NAME = "CamelOlingo4";
 
     String RESPONSE_HTTP_HEADERS = "responseHttpHeaders";
+    @Metadata(label = "producer", description = "The response Http headers", javaType = "Map<String, String>")
+    String FULL_RESPONSE_HTTP_HEADERS = PROPERTY_PREFIX + RESPONSE_HTTP_HEADERS;
 }

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

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 94222bca9a4b170599e9fa78195bfce6d1e2ab87
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 12:40:54 2022 +0200

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

diff --git a/components/camel-netty/src/generated/resources/org/apache/camel/component/netty/netty.json b/components/camel-netty/src/generated/resources/org/apache/camel/component/netty/netty.json
index 4cbe2b2..519936f 100644
--- a/components/camel-netty/src/generated/resources/org/apache/camel/component/netty/netty.json
+++ b/components/camel-netty/src/generated/resources/org/apache/camel/component/netty/netty.json
@@ -96,6 +96,19 @@
     "trustStoreResource": { "kind": "property", "displayName": "Trust Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you [...]
     "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": {
+    "CamelNettyCloseChannelWhenComplete": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates whether the channel should be closed after complete." },
+    "CamelNettyChannelHandlerContext": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "io.netty.channel.ChannelHandlerContext", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The channel handler context." },
+    "CamelNettyRemoteAddress": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "java.net.SocketAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The remote address." },
+    "CamelNettyLocalAddress": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "java.net.SocketAddress", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The local address." },
+    "CamelNettySSLSession": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "javax.net.ssl.SSLSession", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SSL session." },
+    "CamelNettySSLClientCertSubjectName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SSL client certificate subject name." },
+    "CamelNettySSLClientCertIssuerName": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SSL client certificate issuer name." },
+    "CamelNettySSLClientCertSerialNumber": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SSL client certificate serial number." },
+    "CamelNettySSLClientCertNotBefore": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "java.util.Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SSL client certificate not before." },
+    "CamelNettySSLClientCertNotAfter": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "java.util.Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SSL client certificate not after." },
+    "CamelNettyRequestTimeout": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The read timeout." }
+  },
   "properties": {
     "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "tcp", "udp" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The protocol to use which can be tcp or udp." },
     "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.netty.NettyConfiguration", "configurationField": "configuration", "description": "The hostname. For the consumer the hostname is localhost or 0.0.0.0. For the producer the hostname is the remote host to conne [...]
diff --git a/components/camel-netty/src/main/docs/netty-component.adoc b/components/camel-netty/src/main/docs/netty-component.adoc
index 340c90b..aacaa9c 100644
--- a/components/camel-netty/src/main/docs/netty-component.adoc
+++ b/components/camel-netty/src/main/docs/netty-component.adoc
@@ -65,7 +65,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
 
 
 == Registry based Options
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
index 68c8ded..bdd18bd 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
@@ -16,22 +16,34 @@
  */
 package org.apache.camel.component.netty;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Netty constants
  */
 public final class NettyConstants {
-
+    @Metadata(description = "Indicates whether the channel should be closed after complete.", javaType = "Boolean")
     public static final String NETTY_CLOSE_CHANNEL_WHEN_COMPLETE = "CamelNettyCloseChannelWhenComplete";
+    @Metadata(description = "The channel handler context.", javaType = "io.netty.channel.ChannelHandlerContext")
     public static final String NETTY_CHANNEL_HANDLER_CONTEXT = "CamelNettyChannelHandlerContext";
     public static final String NETTY_MESSAGE_EVENT = "CamelNettyMessageEvent";
+    @Metadata(description = "The remote address.", javaType = "java.net.SocketAddress")
     public static final String NETTY_REMOTE_ADDRESS = "CamelNettyRemoteAddress";
+    @Metadata(description = "The local address.", javaType = "java.net.SocketAddress")
     public static final String NETTY_LOCAL_ADDRESS = "CamelNettyLocalAddress";
+    @Metadata(description = "The SSL session.", javaType = "javax.net.ssl.SSLSession")
     public static final String NETTY_SSL_SESSION = "CamelNettySSLSession";
+    @Metadata(description = "The SSL client certificate subject name.", javaType = "String")
     public static final String NETTY_SSL_CLIENT_CERT_SUBJECT_NAME = "CamelNettySSLClientCertSubjectName";
+    @Metadata(description = "The SSL client certificate issuer name.", javaType = "String")
     public static final String NETTY_SSL_CLIENT_CERT_ISSUER_NAME = "CamelNettySSLClientCertIssuerName";
+    @Metadata(description = "The SSL client certificate serial number.", javaType = "String")
     public static final String NETTY_SSL_CLIENT_CERT_SERIAL_NO = "CamelNettySSLClientCertSerialNumber";
+    @Metadata(description = "The SSL client certificate not before.", javaType = "java.util.Date")
     public static final String NETTY_SSL_CLIENT_CERT_NOT_BEFORE = "CamelNettySSLClientCertNotBefore";
+    @Metadata(description = "The SSL client certificate not after.", javaType = "java.util.Date")
     public static final String NETTY_SSL_CLIENT_CERT_NOT_AFTER = "CamelNettySSLClientCertNotAfter";
+    @Metadata(description = "The read timeout.", javaType = "Long")
     public static final String NETTY_REQUEST_TIMEOUT = "CamelNettyRequestTimeout";
     public static final String NETTY_CHANNEL = "CamelNettyChannel";
     public static final String NETTY_CLIENT_CONTINUE = "CamelClientContinue";
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
index 0b5163a..595290c 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
@@ -42,7 +42,7 @@ import org.apache.camel.util.ObjectHelper;
  * Socket level networking using TCP or UDP with Netty 4.x.
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "netty", title = "Netty", syntax = "netty:protocol://host:port",
-             category = { Category.NETWORKING, Category.TCP, Category.UDP })
+             category = { Category.NETWORKING, Category.TCP, Category.UDP }, headersClass = NettyConstants.class)
 public class NettyEndpoint extends DefaultEndpoint implements AsyncEndpoint {
     @UriParam
     private NettyConfiguration configuration;

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

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 1d2d7d007f6744a39cd7da4fef5075a74c7dae41
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 15:22:00 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-nitrite
---
 .../apache/camel/component/nitrite/nitrite.json    |  6 ++++++
 .../src/main/docs/nitrite-component.adoc           | 25 +++-------------------
 .../camel/component/nitrite/NitriteConstants.java  |  8 +++++++
 .../camel/component/nitrite/NitriteEndpoint.java   |  2 +-
 4 files changed, 18 insertions(+), 23 deletions(-)

diff --git a/components/camel-nitrite/src/generated/resources/org/apache/camel/component/nitrite/nitrite.json b/components/camel-nitrite/src/generated/resources/org/apache/camel/component/nitrite/nitrite.json
index 3a5ca16..00b4399 100644
--- a/components/camel-nitrite/src/generated/resources/org/apache/camel/component/nitrite/nitrite.json
+++ b/components/camel-nitrite/src/generated/resources/org/apache/camel/component/nitrite/nitrite.json
@@ -26,6 +26,12 @@
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
   },
+  "headers": {
+    "CamelNitriteChangeTimestamp": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Event timestamp in Epoch millis." },
+    "CamelNitriteChangeType": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "org.dizitart.no2.event.ChangeType", "enum": [ "INSERT", "UPDATE", "REMOVE", "DROP", "CLOSE" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of event." },
+    "CamelNitriteOperation": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "org.apache.camel.component.nitrite.AbstractNitriteOperation", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Operation to invoke on Collection or Repository. Defaults to UpsertOperation if not specified." },
+    "CamelNitriteWriteResult": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.dizitart.no2.WriteResult", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Result of data modifying operation." }
+  },
   "properties": {
     "database": { "kind": "path", "displayName": "Database", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to database file. Will be created if not exists." },
     "collection": { "kind": "parameter", "displayName": "Collection", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of Nitrite collection. Cannot be used in combination with repositoryClass option." },
diff --git a/components/camel-nitrite/src/main/docs/nitrite-component.adoc b/components/camel-nitrite/src/main/docs/nitrite-component.adoc
index c7c9cce..19b0e96 100644
--- a/components/camel-nitrite/src/main/docs/nitrite-component.adoc
+++ b/components/camel-nitrite/src/main/docs/nitrite-component.adoc
@@ -42,28 +42,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
-
-== Message headers
-
-=== Consumer headers
-
-The following headers are available when consuming from Nitrite.
-[width="100%",cols="2m,2m,1m,5",options="header"]
-|===
-| Header constant | Header value | Type | Description
-| NitriteConstants.CHANGE_TIMESTAMP | "CamelNitriteChangeTimestamp" | Long | Event timestamp in Epoch millis
-| NitriteConstants.CHANGE_TYPE | "CamelNitriteChangeType" | org.dizitart.no2.event.ChangeType | Type of event
-|===
-
-=== Producer headers
-
-The following headers are available when producing to Nitrite.
-[width="100%",cols="2m,2m,1m,5",options="header"]
-|===
-| Header constant | Header value | Type | Description
-| NitriteConstants.OPERATION | "CamelNitriteOperation" | AbstractNitriteOperation | Operation to invoke on Collection or Repository. Defaults to `UpsertOperation` if not specified
-| NitriteConstants.WRITE_RESULT | "CamelNitriteWriteResult" | org.dizitart.no2.WriteResult | Result of data modifying operation
-|===
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Producer operations
 The following Operations are available to specify as NitriteConstants.OPERATION when producing to Nitrite.
diff --git a/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteConstants.java b/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteConstants.java
index a9db3eb..7a6916f 100644
--- a/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteConstants.java
+++ b/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteConstants.java
@@ -16,10 +16,18 @@
  */
 package org.apache.camel.component.nitrite;
 
+import org.apache.camel.spi.Metadata;
+
 public final class NitriteConstants {
+    @Metadata(label = "consumer", description = "Event timestamp in Epoch millis.", javaType = "long")
     public static final String CHANGE_TIMESTAMP = "CamelNitriteChangeTimestamp";
+    @Metadata(label = "consumer", description = "Type of event.", javaType = "org.dizitart.no2.event.ChangeType")
     public static final String CHANGE_TYPE = "CamelNitriteChangeType";
+    @Metadata(label = "producer",
+              description = "Operation to invoke on Collection or Repository. Defaults to `UpsertOperation` if not specified.",
+              javaType = "org.apache.camel.component.nitrite.AbstractNitriteOperation")
     public static final String OPERATION = "CamelNitriteOperation";
+    @Metadata(description = "Result of data modifying operation.", javaType = "org.dizitart.no2.WriteResult")
     public static final String WRITE_RESULT = "CamelNitriteWriteResult";
 
     private NitriteConstants() {
diff --git a/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteEndpoint.java b/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteEndpoint.java
index e5cb92b..007e5eb 100644
--- a/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteEndpoint.java
+++ b/components/camel-nitrite/src/main/java/org/apache/camel/component/nitrite/NitriteEndpoint.java
@@ -32,7 +32,7 @@ import org.dizitart.no2.PersistentCollection;
  * Access Nitrite databases.
  */
 @UriEndpoint(firstVersion = "3.0.0", scheme = "nitrite", title = "Nitrite", syntax = "nitrite:database",
-             category = { Category.DATABASE, Category.NOSQL })
+             category = { Category.DATABASE, Category.NOSQL }, headersClass = NitriteConstants.class)
 public class NitriteEndpoint extends DefaultEndpoint {
     @UriPath(label = "common", description = "Path to database file. Will be created if not exists.")
     @Metadata(required = true)

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

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 329adbb918842878e8b93fa8e352b427298a2c4c
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Apr 1 15:45:45 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-olingo2
---
 .../resources/org/apache/camel/component/olingo2/olingo2.json        | 3 +++
 .../camel-olingo2-component/src/main/docs/olingo2-component.adoc     | 3 +++
 .../java/org/apache/camel/component/olingo2/Olingo2Endpoint.java     | 2 +-
 .../java/org/apache/camel/component/olingo2/Olingo2Producer.java     | 4 +---
 .../apache/camel/component/olingo2/internal/Olingo2Constants.java    | 5 +++++
 5 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/components/camel-olingo2/camel-olingo2-component/src/generated/resources/org/apache/camel/component/olingo2/olingo2.json b/components/camel-olingo2/camel-olingo2-component/src/generated/resources/org/apache/camel/component/olingo2/olingo2.json
index 34950fd..1514125 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/generated/resources/org/apache/camel/component/olingo2/olingo2.json
+++ b/components/camel-olingo2/camel-olingo2-component/src/generated/resources/org/apache/camel/component/olingo2/olingo2.json
@@ -42,6 +42,9 @@
     "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.olingo2.Olingo2Configuration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters" },
     "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": {
+    "CamelOlingo2.responseHttpHeaders": { "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The response Http headers" }
+  },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.olingo2.internal.Olingo2ApiName", "enum": [ "DEFAULT" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.olingo2.Olingo2Configuration", "configurationField": "configuration", "description": "What kind of operation to perform" },
     "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.olingo2.Olingo2Configuration", "configurationField": "configuration", "description": "What sub operation to use for the selected operation" },
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc b/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
index 2d18a58..269012a 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/docs/olingo2-component.adoc
@@ -60,6 +60,9 @@ include::partial$component-endpoint-options.adoc[]
 
 // endpoint options: END
 
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 == Endpoint HTTP Headers
 
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
index 63e5fba..628b7d1 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
@@ -46,7 +46,7 @@ import org.apache.camel.support.component.ApiMethodPropertiesHelper;
  */
 @UriEndpoint(firstVersion = "2.14.0", scheme = "olingo2", title = "Olingo2", syntax = "olingo2:apiName/methodName",
              apiSyntax = "apiName/methodName",
-             category = { Category.CLOUD })
+             category = { Category.CLOUD }, headersClass = Olingo2Constants.class)
 public class Olingo2Endpoint extends AbstractApiEndpoint<Olingo2ApiName, Olingo2Configuration> {
 
     protected static final String RESOURCE_PATH_PROPERTY = "resourcePath";
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Producer.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Producer.java
index f5d7e4c..f2d4fab 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Producer.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Producer.java
@@ -38,8 +38,6 @@ public class Olingo2Producer extends AbstractApiProducer<Olingo2ApiName, Olingo2
 
     private static final Logger LOG = LoggerFactory.getLogger(Olingo2Producer.class);
 
-    private static final String RESPONSE_HTTP_HEADERS = "responseHttpHeaders";
-
     private Olingo2Index resultIndex;
 
     public Olingo2Producer(Olingo2Endpoint endpoint) {
@@ -72,7 +70,7 @@ public class Olingo2Producer extends AbstractApiProducer<Olingo2ApiName, Olingo2
                 exchange.getOut().setHeaders(exchange.getIn().getHeaders());
 
                 // Add http response headers
-                exchange.getOut().setHeader(Olingo2Constants.PROPERTY_PREFIX + RESPONSE_HTTP_HEADERS, responseHeaders);
+                exchange.getOut().setHeader(Olingo2Constants.RESPONSE_HTTP_HEADERS, responseHeaders);
 
                 interceptResult(response, exchange);
 
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/internal/Olingo2Constants.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/internal/Olingo2Constants.java
index 28bac27..61b4342 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/internal/Olingo2Constants.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/internal/Olingo2Constants.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.olingo2.internal;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Constants for Olingo2 component.
  */
@@ -26,4 +28,7 @@ public interface Olingo2Constants {
 
     // thread profile name for this component
     String THREAD_PROFILE_NAME = "CamelOlingo2";
+
+    @Metadata(label = "producer", description = "The response Http headers", javaType = "Map<String, String>")
+    String RESPONSE_HTTP_HEADERS = PROPERTY_PREFIX + "responseHttpHeaders";
 }