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