This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new f0756de1808 CAMEL-20998: Prioritize object name configuration over
headers
f0756de1808 is described below
commit f0756de18080806faacb002f5d76461fb1b44c85
Author: Brice Frisco <[email protected]>
AuthorDate: Fri Jul 19 17:16:22 2024 -0500
CAMEL-20998: Prioritize object name configuration over headers
---
.../google/storage/GoogleCloudStorageProducer.java | 4 ++--
.../google/storage/unit/ProducerStoreFileTest.java | 22 +++++++++++++++++++---
2 files changed, 21 insertions(+), 5 deletions(-)
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 dad163ac30e..75e5aca4b6b 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
@@ -354,9 +354,9 @@ public class GoogleCloudStorageProducer extends
DefaultProducer {
}
private String determineObjectName(Exchange exchange) {
- String key =
exchange.getIn().getHeader(GoogleCloudStorageConstants.OBJECT_NAME,
String.class);
+ String key = getConfiguration().getObjectName();
if (ObjectHelper.isEmpty(key)) {
- key = getConfiguration().getObjectName();
+ key =
exchange.getIn().getHeader(GoogleCloudStorageConstants.OBJECT_NAME,
String.class);
}
if (key == null) {
throw new IllegalArgumentException("Google Cloud Storage object
name header missing.");
diff --git
a/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerStoreFileTest.java
b/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerStoreFileTest.java
index 7a6f9a2821f..c1ada12826b 100644
---
a/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerStoreFileTest.java
+++
b/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerStoreFileTest.java
@@ -50,8 +50,10 @@ public class ProducerStoreFileTest extends
GoogleCloudStorageBaseTest {
return new RouteBuilder() {
public void configure() {
String endpoint =
"google-storage://myCamelBucket?autoCreateBucket=true";
+ String endpointWithObjectName =
"google-storage://myCamelBucket?autoCreateBucket=true&objectName=" + FILE_NAME;
from("direct:fromFile").to(endpoint);
+
from("direct:fromFileWithObjectNameInConfig").to(endpointWithObjectName);
}
};
}
@@ -99,20 +101,34 @@ public class ProducerStoreFileTest extends
GoogleCloudStorageBaseTest {
@Test
public void testStoreFromstream() {
- final String fileName = "FromStream.txt";
byte[] payload = "Hi, How are you ?".getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(payload);
Exchange storeFileExchange = template.request("direct:fromFile",
exchange -> {
-
exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, fileName);
+
exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, FILE_NAME);
exchange.getIn().setHeader(GoogleCloudStorageConstants.CONTENT_ENCODING,
"text/plain");
exchange.getIn().setBody(bais);
});
assertNotNull(storeFileExchange);
Blob fileBlob = storeFileExchange.getMessage().getBody(Blob.class);
assertNotNull(fileBlob);
- assertEquals(fileName, fileBlob.getName());
+ assertEquals(FILE_NAME, fileBlob.getName());
assertEquals(payload.length,
Integer.valueOf(fileBlob.getMetadata().get("Content-Length")));
byte[] blobContents = fileBlob.getContent();
assertTrue(Arrays.equals(payload, blobContents));
}
+
+ @Test
+ public void objectNameConfigurationPrioritizedOverHeader() {
+ byte[] payload = "Hi, How are you ?".getBytes();
+ ByteArrayInputStream bais = new ByteArrayInputStream(payload);
+ Exchange storeFileExchange =
template.request("direct:fromFileWithObjectNameInConfig", exchange -> {
+
exchange.getIn().setHeader(GoogleCloudStorageConstants.CONTENT_ENCODING,
"text/plain");
+
exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME,
"ShouldNotUseThisName.txt");
+ exchange.getIn().setBody(bais);
+ });
+ assertNotNull(storeFileExchange);
+ Blob fileBlob = storeFileExchange.getMessage().getBody(Blob.class);
+ assertNotNull(fileBlob);
+ assertEquals(FILE_NAME, fileBlob.getName());
+ }
}