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());
+    }
 }

Reply via email to