This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit f59b178bd07bed8c1ed41ecc403aa0cebb0f57e2 Author: Raffaele Marcello <marcelloraffa...@gmail.com> AuthorDate: Sat Feb 13 16:56:07 2021 +0100 CAMEL-15964 create camel-google-storage component --- .../catalog/docs/google-storage-component.adoc | 22 ++-- components/camel-google-storage/ReadMe.md | 2 +- .../component/google/storage/google-storage.json | 20 ++-- .../src/main/docs/google-storage-component.adoc | 22 ++-- .../GoogleCloudStorageComponentConfiguration.java | 32 ++--- .../dsl/GoogleStorageComponentBuilderFactory.java | 69 +++++------ .../GoogleCloudStorageEndpointBuilderFactory.java | 133 +++++++-------------- .../ROOT/pages/google-storage-component.adoc | 22 ++-- 8 files changed, 125 insertions(+), 197 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc index b6cdfc5..7754e9a 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/google-storage-component.adoc @@ -49,7 +49,7 @@ export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json" or directly through the component endpoint [source,text] -------------------------------------------------------- -from("google-storage://myCamelBucket?serviceAccountCredentials=/home/user/Downloads/my-key.json") +from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-key.json") -------------------------------------------------------- @@ -74,16 +74,16 @@ The Google Storage component supports 13 options, which are listed below. | Name | Description | Default | Type | *autoCreateBucket* (common) | Setting the autocreation of the bucket bucketName. | true | boolean | *configuration* (common) | The component configuration | | GoogleCloudStorageComponentConfiguration -| *objectName* (common) | objectName | | String | *serviceAccountKey* (common) | Service account key | | String | *storageClient* (common) | Set strage client | | Storage | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean -| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...] +| *deleteAfterRead* (consumer) | Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. | true | boolean | *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. | | String -| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close the S3Object stream [...] -| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean +| *includeBody* (consumer) | If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream will be put raw into the body and the headers will be set with the object metadata. | true | boolean +| *moveAfterRead* (consumer) | Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *lazyStartProducer* (producer) | 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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] -| *operation* (producer) | set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations +| *objectName* (producer) | Object name | | String +| *operation* (producer) | Set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations | *autowiredEnabled* (advanced) | 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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean |=== // component options: END @@ -114,20 +114,20 @@ with the following path and query parameters: |=== | Name | Description | Default | Type | *autoCreateBucket* (common) | Setting the autocreation of the bucket bucketName. | true | boolean -| *objectName* (common) | objectName | | String | *serviceAccountKey* (common) | Service account key | | String | *storageClient* (common) | Set strage client | | Storage | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean -| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...] +| *deleteAfterRead* (consumer) | Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. | true | boolean | *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. | | String -| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close the S3Object stream [...] -| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean +| *includeBody* (consumer) | If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream will be put raw into the body and the headers will be set with the object metadata. | true | boolean +| *moveAfterRead* (consumer) | Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. | | PollingConsumerPollStrategy | *lazyStartProducer* (producer) | 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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] -| *operation* (producer) | set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations +| *objectName* (producer) | Object name | | String +| *operation* (producer) | Set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations | *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. | | int | *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. | | int | *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. | | int diff --git a/components/camel-google-storage/ReadMe.md b/components/camel-google-storage/ReadMe.md index ee5f91c..bbd2bed 100644 --- a/components/camel-google-storage/ReadMe.md +++ b/components/camel-google-storage/ReadMe.md @@ -31,7 +31,7 @@ or for windows: or directly through the component endpoint -`from("google-storage://myCamelBucket?serviceAccountCredentials=/home/user/Downloads/my-key.json")` +`from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-key.json")` Running tests against Storage instance: diff --git a/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json b/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json index 2e1d205..a139f6c 100644 --- a/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json +++ b/components/camel-google-storage/src/generated/resources/org/apache/camel/component/google/storage/google-storage.json @@ -24,35 +24,35 @@ "componentProperties": { "autoCreateBucket": { "kind": "property", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the bucket bucketName." }, "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" }, - "objectName": { "kind": "property", "displayName": "Object Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "objectName" }, "serviceAccountKey": { "kind": "property", "displayName": "Service Account Key", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Service account key" }, "storageClient": { "kind": "property", "displayName": "Storage Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.cloud.storage.Storage", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Set strage client" }, "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...] - "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Delete objects from S3 after they have been retrieved. The delete [...] + "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Delete objects from the bucket after they have been retrieved. Th [...] "destinationBucket": { "kind": "property", "displayName": "Destination Bucket", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Define the destination bucket where an object must be moved when moveAfterRe [...] - "includeBody": { "kind": "property", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "If it is true, the S3Object exchange will be consumed and put into the bod [...] - "moveAfterRead": { "kind": "property", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Move objects from S3 bucket to a different bucket after they have be [...] + "includeBody": { "kind": "property", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "If it is true, the Object exchange will be consumed and put into the body [...] + "moveAfterRead": { "kind": "property", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Move objects from the origin bucket to a different bucket after they [...] "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 [...] - "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "createDownloadLink" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.Googl [...] + "objectName": { "kind": "property", "displayName": "Object Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Object name" }, + "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "createDownloadLink" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.Googl [...] "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 [...] }, "properties": { "bucketName": { "kind": "path", "displayName": "Bucket Name", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Bucket name" }, "autoCreateBucket": { "kind": "parameter", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the bucket bucketName." }, - "objectName": { "kind": "parameter", "displayName": "Object Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "objectName" }, "serviceAccountKey": { "kind": "parameter", "displayName": "Service Account Key", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Service account key" }, "storageClient": { "kind": "parameter", "displayName": "Storage Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.cloud.storage.Storage", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Set strage client" }, "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...] - "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Delete objects from S3 after they have been retrieved. The delet [...] + "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Delete objects from the bucket after they have been retrieved. T [...] "destinationBucket": { "kind": "parameter", "displayName": "Destination Bucket", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Define the destination bucket where an object must be moved when moveAfterR [...] - "includeBody": { "kind": "parameter", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "If it is true, the S3Object exchange will be consumed and put into the bo [...] - "moveAfterRead": { "kind": "parameter", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Move objects from S3 bucket to a different bucket after they have b [...] + "includeBody": { "kind": "parameter", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "If it is true, the Object exchange will be consumed and put into the body [...] + "moveAfterRead": { "kind": "parameter", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Move objects from the origin bucket to a different bucket after the [...] "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...] "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation [...] "lazyStartProducer": { "kind": "parameter", "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 sta [...] - "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "createDownloadLink" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.Goog [...] + "objectName": { "kind": "parameter", "displayName": "Object Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration", "configurationField": "configuration", "description": "Object name" }, + "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "createDownloadLink" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.storage.Goog [...] "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." }, "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." }, "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...] diff --git a/components/camel-google-storage/src/main/docs/google-storage-component.adoc b/components/camel-google-storage/src/main/docs/google-storage-component.adoc index b6cdfc5..7754e9a 100644 --- a/components/camel-google-storage/src/main/docs/google-storage-component.adoc +++ b/components/camel-google-storage/src/main/docs/google-storage-component.adoc @@ -49,7 +49,7 @@ export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json" or directly through the component endpoint [source,text] -------------------------------------------------------- -from("google-storage://myCamelBucket?serviceAccountCredentials=/home/user/Downloads/my-key.json") +from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-key.json") -------------------------------------------------------- @@ -74,16 +74,16 @@ The Google Storage component supports 13 options, which are listed below. | Name | Description | Default | Type | *autoCreateBucket* (common) | Setting the autocreation of the bucket bucketName. | true | boolean | *configuration* (common) | The component configuration | | GoogleCloudStorageComponentConfiguration -| *objectName* (common) | objectName | | String | *serviceAccountKey* (common) | Service account key | | String | *storageClient* (common) | Set strage client | | Storage | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean -| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...] +| *deleteAfterRead* (consumer) | Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. | true | boolean | *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. | | String -| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close the S3Object stream [...] -| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean +| *includeBody* (consumer) | If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream will be put raw into the body and the headers will be set with the object metadata. | true | boolean +| *moveAfterRead* (consumer) | Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *lazyStartProducer* (producer) | 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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] -| *operation* (producer) | set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations +| *objectName* (producer) | Object name | | String +| *operation* (producer) | Set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations | *autowiredEnabled* (advanced) | 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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean |=== // component options: END @@ -114,20 +114,20 @@ with the following path and query parameters: |=== | Name | Description | Default | Type | *autoCreateBucket* (common) | Setting the autocreation of the bucket bucketName. | true | boolean -| *objectName* (common) | objectName | | String | *serviceAccountKey* (common) | Service account key | | String | *storageClient* (common) | Set strage client | | Storage | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean -| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...] +| *deleteAfterRead* (consumer) | Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. | true | boolean | *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. | | String -| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close the S3Object stream [...] -| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean +| *includeBody* (consumer) | If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream will be put raw into the body and the headers will be set with the object metadata. | true | boolean +| *moveAfterRead* (consumer) | Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. | | PollingConsumerPollStrategy | *lazyStartProducer* (producer) | 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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] -| *operation* (producer) | set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations +| *objectName* (producer) | Object name | | String +| *operation* (producer) | Set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations | *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. | | int | *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. | | int | *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. | | int diff --git a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java index 49e8f8b..c77e5b3 100644 --- a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java +++ b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageComponentConfiguration.java @@ -17,14 +17,11 @@ public class GoogleCloudStorageComponentConfiguration implements Cloneable { @UriParam(label = "common", description = "Service account key") private String serviceAccountKey; - //@UriParam(label = "common", description = "ProjectId") - //private String projectId; - @UriParam(label = "producer", enums = "copyObject,listObjects,deleteObject,deleteBucket,listBuckets,getObject,createDownloadLink") private GoogleCloudStorageComponentOperations operation; - @UriParam + @UriParam(label = "producer", description = "Object name") private String objectName; @UriParam(label = "common", defaultValue = "true") @@ -87,7 +84,7 @@ public class GoogleCloudStorageComponentConfiguration implements Cloneable { } /** - * objectName + * The bjectName (the file insisde the bucket) */ public void setObjectName(String objectName) { this.objectName = objectName; @@ -111,7 +108,7 @@ public class GoogleCloudStorageComponentConfiguration implements Cloneable { } /** - * set the operation for the producer + * Set the operation for the producer * * @param operation */ @@ -135,9 +132,9 @@ public class GoogleCloudStorageComponentConfiguration implements Cloneable { } /** - * Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the - * destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. - * If a rollback occurs, the object is not moved. + * Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the + * operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange + * is committed. If a rollback occurs, the object is not moved. */ public void setMoveAfterRead(boolean moveAfterRead) { this.moveAfterRead = moveAfterRead; @@ -194,25 +191,18 @@ public class GoogleCloudStorageComponentConfiguration implements Cloneable { } /** - * Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. - * If a rollback occurs, the object is not deleted. + * Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is + * committed. If a rollback occurs, the object is not deleted. * <p/> - * If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you - * need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the - * {@link AWS2S3Constants#BUCKET_NAME} and {@link AWS2S3Constants#KEY} headers, or only the - * {@link AWS2S3Constants#KEY} header. + * If this option is false, then the same objects will be retrieve over and over again on the polls. */ public void setDeleteAfterRead(boolean deleteAfterRead) { this.deleteAfterRead = deleteAfterRead; } /** - * If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object - * stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is - * strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will - * be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close - * the S3Object stream. However setting autocloseBody to true when includeBody is false it will schedule to close - * the S3Object stream automatically on exchange completion. + * If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream + * will be put raw into the body and the headers will be set with the object metadata. */ public void setIncludeBody(boolean includeBody) { this.includeBody = includeBody; diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java index e717385..4bb5f79 100644 --- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java +++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleStorageComponentBuilderFactory.java @@ -85,21 +85,6 @@ public interface GoogleStorageComponentBuilderFactory { return this; } /** - * objectName. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param objectName the value to set - * @return the dsl builder - */ - default GoogleStorageComponentBuilder objectName( - java.lang.String objectName) { - doSetProperty("objectName", objectName); - return this; - } - /** * Service account key. * * The option is a: <code>java.lang.String</code> type. @@ -153,14 +138,10 @@ public interface GoogleStorageComponentBuilderFactory { return this; } /** - * Delete objects from S3 after they have been retrieved. The delete is - * only performed if the Exchange is committed. If a rollback occurs, - * the object is not deleted. If this option is false, then the same - * objects will be retrieve over and over again on the polls. Therefore - * you need to use the Idempotent Consumer EIP in the route to filter - * out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME - * and AWS2S3Constants#KEY headers, or only the AWS2S3Constants#KEY - * header. + * Delete objects from the bucket after they have been retrieved. The + * delete is only performed if the Exchange is committed. If a rollback + * occurs, the object is not deleted. If this option is false, then the + * same objects will be retrieve over and over again on the polls. * * The option is a: <code>boolean</code> type. * @@ -192,16 +173,9 @@ public interface GoogleStorageComponentBuilderFactory { return this; } /** - * If it is true, the S3Object exchange will be consumed and put into - * the body and closed. If false the S3Object stream will be put raw - * into the body and the headers will be set with the S3 object - * metadata. This option is strongly related to autocloseBody option. In - * case of setting includeBody to true because the S3Object stream will - * be consumed then it will also be closed in case of includeBody false - * then it will be up to the caller to close the S3Object stream. - * However setting autocloseBody to true when includeBody is false it - * will schedule to close the S3Object stream automatically on exchange - * completion. + * If it is true, the Object exchange will be consumed and put into the + * body and closed. If false the Object stream will be put raw into the + * body and the headers will be set with the object metadata. * * The option is a: <code>boolean</code> type. * @@ -216,11 +190,11 @@ public interface GoogleStorageComponentBuilderFactory { return this; } /** - * Move objects from S3 bucket to a different bucket after they have - * been retrieved. To accomplish the operation the destinationBucket - * option must be set. The copy bucket operation is only performed if - * the Exchange is committed. If a rollback occurs, the object is not - * moved. + * Move objects from the origin bucket to a different bucket after they + * have been retrieved. To accomplish the operation the + * destinationBucket option must be set. The copy bucket operation is + * only performed if the Exchange is committed. If a rollback occurs, + * the object is not moved. * * The option is a: <code>boolean</code> type. * @@ -260,7 +234,22 @@ public interface GoogleStorageComponentBuilderFactory { return this; } /** - * set the operation for the producer. + * Object name. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: producer + * + * @param objectName the value to set + * @return the dsl builder + */ + default GoogleStorageComponentBuilder objectName( + java.lang.String objectName) { + doSetProperty("objectName", objectName); + return this; + } + /** + * Set the operation for the producer. * * The option is a: * <code>org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations</code> type. @@ -322,7 +311,6 @@ public interface GoogleStorageComponentBuilderFactory { switch (name) { case "autoCreateBucket": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setAutoCreateBucket((boolean) value); return true; case "configuration": ((GoogleCloudStorageComponent) component).setConfiguration((org.apache.camel.component.google.storage.GoogleCloudStorageComponentConfiguration) value); return true; - case "objectName": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setObjectName((java.lang.String) value); return true; case "serviceAccountKey": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setServiceAccountKey((java.lang.String) value); return true; case "storageClient": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setStorageClient((com.google.cloud.storage.Storage) value); return true; case "bridgeErrorHandler": ((GoogleCloudStorageComponent) component).setBridgeErrorHandler((boolean) value); return true; @@ -331,6 +319,7 @@ public interface GoogleStorageComponentBuilderFactory { case "includeBody": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setIncludeBody((boolean) value); return true; case "moveAfterRead": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setMoveAfterRead((boolean) value); return true; case "lazyStartProducer": ((GoogleCloudStorageComponent) component).setLazyStartProducer((boolean) value); return true; + case "objectName": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setObjectName((java.lang.String) value); return true; case "operation": getOrCreateConfiguration((GoogleCloudStorageComponent) component).setOperation((org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations) value); return true; case "autowiredEnabled": ((GoogleCloudStorageComponent) component).setAutowiredEnabled((boolean) value); return true; default: return false; diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java index 42ceb8d..87fe200d 100644 --- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java +++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java @@ -81,21 +81,6 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * objectName. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param objectName the value to set - * @return the dsl builder - */ - default GoogleCloudStorageEndpointConsumerBuilder objectName( - String objectName) { - doSetProperty("objectName", objectName); - return this; - } - /** * Service account key. * * The option is a: <code>java.lang.String</code> type. @@ -188,14 +173,10 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * Delete objects from S3 after they have been retrieved. The delete is - * only performed if the Exchange is committed. If a rollback occurs, - * the object is not deleted. If this option is false, then the same - * objects will be retrieve over and over again on the polls. Therefore - * you need to use the Idempotent Consumer EIP in the route to filter - * out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME - * and AWS2S3Constants#KEY headers, or only the AWS2S3Constants#KEY - * header. + * Delete objects from the bucket after they have been retrieved. The + * delete is only performed if the Exchange is committed. If a rollback + * occurs, the object is not deleted. If this option is false, then the + * same objects will be retrieve over and over again on the polls. * * The option is a: <code>boolean</code> type. * @@ -211,14 +192,10 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * Delete objects from S3 after they have been retrieved. The delete is - * only performed if the Exchange is committed. If a rollback occurs, - * the object is not deleted. If this option is false, then the same - * objects will be retrieve over and over again on the polls. Therefore - * you need to use the Idempotent Consumer EIP in the route to filter - * out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME - * and AWS2S3Constants#KEY headers, or only the AWS2S3Constants#KEY - * header. + * Delete objects from the bucket after they have been retrieved. The + * delete is only performed if the Exchange is committed. If a rollback + * occurs, the object is not deleted. If this option is false, then the + * same objects will be retrieve over and over again on the polls. * * The option will be converted to a <code>boolean</code> * type. @@ -251,16 +228,9 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * If it is true, the S3Object exchange will be consumed and put into - * the body and closed. If false the S3Object stream will be put raw - * into the body and the headers will be set with the S3 object - * metadata. This option is strongly related to autocloseBody option. In - * case of setting includeBody to true because the S3Object stream will - * be consumed then it will also be closed in case of includeBody false - * then it will be up to the caller to close the S3Object stream. - * However setting autocloseBody to true when includeBody is false it - * will schedule to close the S3Object stream automatically on exchange - * completion. + * If it is true, the Object exchange will be consumed and put into the + * body and closed. If false the Object stream will be put raw into the + * body and the headers will be set with the object metadata. * * The option is a: <code>boolean</code> type. * @@ -276,16 +246,9 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * If it is true, the S3Object exchange will be consumed and put into - * the body and closed. If false the S3Object stream will be put raw - * into the body and the headers will be set with the S3 object - * metadata. This option is strongly related to autocloseBody option. In - * case of setting includeBody to true because the S3Object stream will - * be consumed then it will also be closed in case of includeBody false - * then it will be up to the caller to close the S3Object stream. - * However setting autocloseBody to true when includeBody is false it - * will schedule to close the S3Object stream automatically on exchange - * completion. + * If it is true, the Object exchange will be consumed and put into the + * body and closed. If false the Object stream will be put raw into the + * body and the headers will be set with the object metadata. * * The option will be converted to a <code>boolean</code> * type. @@ -302,11 +265,11 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * Move objects from S3 bucket to a different bucket after they have - * been retrieved. To accomplish the operation the destinationBucket - * option must be set. The copy bucket operation is only performed if - * the Exchange is committed. If a rollback occurs, the object is not - * moved. + * Move objects from the origin bucket to a different bucket after they + * have been retrieved. To accomplish the operation the + * destinationBucket option must be set. The copy bucket operation is + * only performed if the Exchange is committed. If a rollback occurs, + * the object is not moved. * * The option is a: <code>boolean</code> type. * @@ -322,11 +285,11 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * Move objects from S3 bucket to a different bucket after they have - * been retrieved. To accomplish the operation the destinationBucket - * option must be set. The copy bucket operation is only performed if - * the Exchange is committed. If a rollback occurs, the object is not - * moved. + * Move objects from the origin bucket to a different bucket after they + * have been retrieved. To accomplish the operation the + * destinationBucket option must be set. The copy bucket operation is + * only performed if the Exchange is committed. If a rollback occurs, + * the object is not moved. * * The option will be converted to a <code>boolean</code> * type. @@ -1027,21 +990,6 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * objectName. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param objectName the value to set - * @return the dsl builder - */ - default GoogleCloudStorageEndpointProducerBuilder objectName( - String objectName) { - doSetProperty("objectName", objectName); - return this; - } - /** * Service account key. * * The option is a: <code>java.lang.String</code> type. @@ -1138,7 +1086,22 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * set the operation for the producer. + * Object name. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: producer + * + * @param objectName the value to set + * @return the dsl builder + */ + default GoogleCloudStorageEndpointProducerBuilder objectName( + String objectName) { + doSetProperty("objectName", objectName); + return this; + } + /** + * Set the operation for the producer. * * The option is a: * <code>org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations</code> type. @@ -1154,7 +1117,7 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * set the operation for the producer. + * Set the operation for the producer. * * The option will be converted to a * <code>org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations</code> type. @@ -1226,20 +1189,6 @@ public interface GoogleCloudStorageEndpointBuilderFactory { return this; } /** - * objectName. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param objectName the value to set - * @return the dsl builder - */ - default GoogleCloudStorageEndpointBuilder objectName(String objectName) { - doSetProperty("objectName", objectName); - return this; - } - /** * Service account key. * * The option is a: <code>java.lang.String</code> type. diff --git a/docs/components/modules/ROOT/pages/google-storage-component.adoc b/docs/components/modules/ROOT/pages/google-storage-component.adoc index 96c2165..9bc1d1b 100644 --- a/docs/components/modules/ROOT/pages/google-storage-component.adoc +++ b/docs/components/modules/ROOT/pages/google-storage-component.adoc @@ -51,7 +51,7 @@ export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json" or directly through the component endpoint [source,text] -------------------------------------------------------- -from("google-storage://myCamelBucket?serviceAccountCredentials=/home/user/Downloads/my-key.json") +from("google-storage://myCamelBucket?serviceAccountKey=/home/user/Downloads/my-key.json") -------------------------------------------------------- @@ -76,16 +76,16 @@ The Google Storage component supports 13 options, which are listed below. | Name | Description | Default | Type | *autoCreateBucket* (common) | Setting the autocreation of the bucket bucketName. | true | boolean | *configuration* (common) | The component configuration | | GoogleCloudStorageComponentConfiguration -| *objectName* (common) | objectName | | String | *serviceAccountKey* (common) | Service account key | | String | *storageClient* (common) | Set strage client | | Storage | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean -| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...] +| *deleteAfterRead* (consumer) | Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. | true | boolean | *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. | | String -| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close the S3Object stream [...] -| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean +| *includeBody* (consumer) | If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream will be put raw into the body and the headers will be set with the object metadata. | true | boolean +| *moveAfterRead* (consumer) | Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *lazyStartProducer* (producer) | 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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] -| *operation* (producer) | set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations +| *objectName* (producer) | Object name | | String +| *operation* (producer) | Set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations | *autowiredEnabled* (advanced) | 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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean |=== // component options: END @@ -116,20 +116,20 @@ with the following path and query parameters: |=== | Name | Description | Default | Type | *autoCreateBucket* (common) | Setting the autocreation of the bucket bucketName. | true | boolean -| *objectName* (common) | objectName | | String | *serviceAccountKey* (common) | Service account key | | String | *storageClient* (common) | Set strage client | | Storage | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean -| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...] +| *deleteAfterRead* (consumer) | Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. | true | boolean | *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. | | String -| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed in case of includeBody false then it will be up to the caller to close the S3Object stream [...] -| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean +| *includeBody* (consumer) | If it is true, the Object exchange will be consumed and put into the body and closed. If false the Object stream will be put raw into the body and the headers will be set with the object metadata. | true | boolean +| *moveAfterRead* (consumer) | Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. | | PollingConsumerPollStrategy | *lazyStartProducer* (producer) | 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 starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] -| *operation* (producer) | set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations +| *objectName* (producer) | Object name | | String +| *operation* (producer) | Set the operation for the producer. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, createDownloadLink | | GoogleCloudStorageComponentOperations | *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. | | int | *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. | | int | *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. | | int