You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2025/01/30 10:06:48 UTC
(camel) branch CAMEL-21682 created (now c53b60032fa)
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a change to branch CAMEL-21682
in repository https://gitbox.apache.org/repos/asf/camel.git
at c53b60032fa CAMEL-21682 - Camel-Google-Storage: Introducing Override Bucket Header in Producer operations
This branch includes the following new commits:
new c53b60032fa CAMEL-21682 - Camel-Google-Storage: Introducing Override Bucket Header in Producer operations
The 1 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) 01/01: CAMEL-21682 - Camel-Google-Storage: Introducing Override Bucket Header in Producer operations
Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch CAMEL-21682
in repository https://gitbox.apache.org/repos/asf/camel.git
commit c53b60032fae5a13c0e52ea4da7bb6c7f5b7329b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Jan 30 11:05:30 2025 +0100
CAMEL-21682 - Camel-Google-Storage: Introducing Override Bucket Header in Producer operations
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../camel/catalog/components/google-storage.json | 3 ++-
.../component/google/storage/google-storage.json | 3 ++-
.../google/storage/GoogleCloudStorageConstants.java | 3 +++
.../google/storage/GoogleCloudStorageProducer.java | 21 ++++++++++++---------
.../GoogleCloudStorageEndpointBuilderFactory.java | 15 +++++++++++++++
5 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
index 114f1a7eeda..cb01131ea11 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
@@ -73,7 +73,8 @@
"CamelGoogleCloudStorageMetageneration": { "index": 23, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The metageneration of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_METAGENERATION" },
"CamelGoogleCloudStorageStorageClass": { "index": 24, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "com.google.cloud.storage.StorageClass", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_STORAGE_CLASS" },
"CamelGoogleCloudStorageCreateTime": { "index": 25, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The creation time of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CREATE_TIME" },
- "CamelGoogleCloudStorageLastUpdate": { "index": 26, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The last update of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE" }
+ "CamelGoogleCloudStorageLastUpdate": { "index": 26, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The last update of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE" },
+ "CamelGoogleCloudStorageOverrideBucketName": { "index": 27, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Name to override which this object will be stored or which will be used for the current operation or in which this object is contained.", "constantName": "org.apache.camel.component.google.storage.GoogleCloudSt [...]
},
"properties": {
"bucketName": { "index": 0, "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.GoogleCloudStorageConfiguration", "configurationField": "configuration", "description": "Bucket name or ARN" },
diff --git a/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json b/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
index 114f1a7eeda..cb01131ea11 100644
--- a/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
+++ b/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
@@ -73,7 +73,8 @@
"CamelGoogleCloudStorageMetageneration": { "index": 23, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The metageneration of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_METAGENERATION" },
"CamelGoogleCloudStorageStorageClass": { "index": 24, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "com.google.cloud.storage.StorageClass", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The storage class of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_STORAGE_CLASS" },
"CamelGoogleCloudStorageCreateTime": { "index": 25, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The creation time of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CREATE_TIME" },
- "CamelGoogleCloudStorageLastUpdate": { "index": 26, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The last update of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE" }
+ "CamelGoogleCloudStorageLastUpdate": { "index": 26, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The last update of the object", "constantName": "org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE" },
+ "CamelGoogleCloudStorageOverrideBucketName": { "index": 27, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The bucket Name to override which this object will be stored or which will be used for the current operation or in which this object is contained.", "constantName": "org.apache.camel.component.google.storage.GoogleCloudSt [...]
},
"properties": {
"bucketName": { "index": 0, "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.GoogleCloudStorageConfiguration", "configurationField": "configuration", "description": "Bucket name or ARN" },
diff --git a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
index 8a848e04b5d..2a51ac788a7 100644
--- a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
+++ b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
@@ -95,6 +95,9 @@ public final class GoogleCloudStorageConstants {
public static final String METADATA_CREATE_TIME = "CamelGoogleCloudStorageCreateTime";
@Metadata(label = "consumer", description = "The last update of the object", javaType = "Date")
public static final String METADATA_LAST_UPDATE = "CamelGoogleCloudStorageLastUpdate";
+ @Metadata(description = "The bucket Name to override which this object will be stored or which will be used for the current operation or in which this object is contained.",
+ javaType = "String")
+ public static final String OVERRIDE_BUCKET_NAME = "CamelGoogleCloudStorageOverrideBucketName";
/**
* Prevent instantiation.
diff --git a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
index 34feb757a39..37edefd76f6 100644
--- a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
+++ b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
@@ -91,7 +91,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void processFile(Storage storage, Exchange exchange) throws IOException, InvalidPayloadException {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
final String objectName = determineObjectName(exchange);
Map<String, String> objectMetadata = determineMetadata(exchange);
@@ -219,7 +219,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void createDownloadLink(Storage storage, Exchange exchange) {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
final String objectName = determineObjectName(exchange);
Long expirationMillis
= exchange.getIn().getHeader(GoogleCloudStorageConstants.DOWNLOAD_LINK_EXPIRATION_TIME, 300000L, Long.class);
@@ -240,7 +240,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void copyObject(Storage storage, Exchange exchange) {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
final String objectName = determineObjectName(exchange);
final String destinationObjectName = exchange.getIn()
.getHeader(GoogleCloudStorageConstants.DESTINATION_OBJECT_NAME, String.class);
@@ -278,7 +278,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void deleteObject(Storage storage, Exchange exchange) {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
final String objectName = determineObjectName(exchange);
BlobId blobId = BlobId.of(bucketName, objectName);
@@ -289,7 +289,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void deleteBucket(Storage storage, Exchange exchange) {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
for (Blob blob : storage.list(bucketName).iterateAll()) {
storage.delete(blob.getBlobId());
@@ -312,7 +312,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void getObject(Storage storage, Exchange exchange) {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
final String objectName = determineObjectName(exchange);
Blob blob = storage.get(BlobId.of(bucketName, objectName));
@@ -341,7 +341,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
}
private void listObjects(Storage storage, Exchange exchange) {
- final String bucketName = determineBucketName();
+ final String bucketName = determineBucketName(exchange);
String prefix = exchange.getMessage().getHeader(GoogleCloudStorageConstants.PREFIX_NAME, String.class);
List<Blob> bloblist;
if (ObjectHelper.isEmpty(prefix)) {
@@ -372,8 +372,11 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
return key;
}
- private String determineBucketName() {
- String bucketName = getConfiguration().getBucketName();
+ private String determineBucketName(Exchange exchange) {
+ String bucketName = exchange.getMessage().getHeader(GoogleCloudStorageConstants.OVERRIDE_BUCKET_NAME, String.class);
+ if (ObjectHelper.isEmpty(bucketName)) {
+ bucketName = getConfiguration().getBucketName();
+ }
if (bucketName == null) {
throw new IllegalArgumentException("Bucket name is missing or not configured.");
}
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
index 6d9af374c6d..f3b7b5a44c5 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
@@ -1828,6 +1828,21 @@ public interface GoogleCloudStorageEndpointBuilderFactory {
public String googleCloudStorageLastUpdate() {
return "CamelGoogleCloudStorageLastUpdate";
}
+ /**
+ * The bucket Name to override which this object will be stored or which
+ * will be used for the current operation or in which this object is
+ * contained.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: common
+ *
+ * @return the name of the header {@code
+ * GoogleCloudStorageOverrideBucketName}.
+ */
+ public String googleCloudStorageOverrideBucketName() {
+ return "CamelGoogleCloudStorageOverrideBucketName";
+ }
}
static GoogleCloudStorageEndpointBuilder endpointBuilder(String componentName, String path) {
class GoogleCloudStorageEndpointBuilderImpl extends AbstractEndpointBuilder implements GoogleCloudStorageEndpointBuilder, AdvancedGoogleCloudStorageEndpointBuilder {