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 2021/02/17 06:24:45 UTC
[camel] 16/31: CAMEL-15964 create camel-google-storage component
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 f1f6b4653d2a45d2260cbafa3c445c59c4a2884a
Author: Raffaele Marcello <ma...@gmail.com>
AuthorDate: Sun Feb 14 20:05:42 2021 +0100
CAMEL-15964 create camel-google-storage component
---
.../google/storage/GoogleCloudStorageProducer.java | 4 +-
.../integration/ComplexIntegrationTest.java | 132 +++++++++++++++++++
.../integration/ConsumerIntegrationTest.java | 93 --------------
.../integration/ProducerIntegrationTest.java | 141 ---------------------
.../storage/localstorage/FakeStorageRpc.java | 9 +-
.../storage/localstorage/LocalStorageHelper.java | 10 +-
.../google/storage/unit/ConsumerLocalTest.java | 54 +++-----
.../google/storage/unit/ProducerLocalTest.java | 3 -
8 files changed, 164 insertions(+), 282 deletions(-)
diff --git a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
index b835aea..af4d477 100644
--- a/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
+++ b/components/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
@@ -98,7 +98,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
private void processFile(Storage storage, Exchange exchange) throws IOException, InvalidPayloadException {
final String bucketName = determineBucketName(exchange);
final String objectName = determineObjectName(exchange);
- //LOG.info("processFile, bucketName={}, objectName={}", bucketName, objectName);
+
Map<String, String> objectMetadata = determineMetadata(exchange);
File filePayload = null;
@@ -327,7 +327,7 @@ public class GoogleCloudStorageProducer extends DefaultProducer {
key = getConfiguration().getObjectName();
}
if (key == null) {
- throw new IllegalArgumentException("Google Cloud Storage onject name header missing.");
+ throw new IllegalArgumentException("Google Cloud Storage object name header missing.");
}
return key;
}
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ComplexIntegrationTest.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ComplexIntegrationTest.java
new file mode 100644
index 0000000..9470afc
--- /dev/null
+++ b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ComplexIntegrationTest.java
@@ -0,0 +1,132 @@
+package org.apache.camel.component.google.storage.integration;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import com.google.cloud.storage.Blob;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.google.storage.GoogleCloudStorageConstants;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+public class ComplexIntegrationTest extends CamelTestSupport {
+
+ @EndpointInject
+ private ProducerTemplate template;
+
+ @EndpointInject("mock:bucket1")
+ private MockEndpoint mockBucket1;
+
+ @EndpointInject("mock:bucket2")
+ private MockEndpoint mockBucket2;
+
+ @EndpointInject("mock:processed")
+ private MockEndpoint mockProcessed;
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ final int numberOfObjects = 3;
+ //final String serviceAccountKeyFile = "somefile.json";
+ final String serviceAccountKeyFile = System.getenv("GOOGLE_APPLICATION_CREDENTIALS");
+ final String bucket1 = "camel_test_bucket1";
+ final String bucket2 = "camel_test_bucket2";
+ final String bucket3 = "camel_test_processed_bucket";
+ final String bucket4 = "camel_test_bucket4";
+
+ //upload 3 file into bucket1
+ byte[] payload = "Camel rocks!".getBytes();
+ ByteArrayInputStream bais = new ByteArrayInputStream(payload);
+ from("timer:timer1?repeatCount=" + numberOfObjects)
+ .process(exchange -> {
+ String filename = "file_" + ((int) (Math.random() * 10000)) + ".txt";
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, filename);
+ exchange.getIn().setBody(bais);
+ })
+ .to("google-storage://" + bucket1 + "?serviceAccountKey=" + serviceAccountKeyFile)
+ .log("upload file object:${header.CamelGoogleCloudStorageObjectName}, body:${body}")
+ .to("mock:bucket1");
+
+ //poll from bucket1, moving processed into bucket_processed and deleting original
+ from("google-storage://" + bucket1 + "?serviceAccountKey=" + serviceAccountKeyFile
+ + "&moveAfterRead=true"
+ + "&destinationBucket=" + bucket3
+ + "&autoCreateBucket=true"
+ + "&deleteAfterRead=true"
+ + "&includeBody=true")
+ .log("consuming: ${header.CamelGoogleCloudStorageBucketName}/${header.CamelGoogleCloudStorageObjectName}")
+ .to("direct:processed")
+ .to("mock:processed");
+
+ //upload these files to bucket2
+ from("direct:processed")
+ .to("google-storage://" + bucket2 + "?serviceAccountKey=" + serviceAccountKeyFile)
+ .log("uploaded file object:${header.CamelGoogleCloudStorageObjectName}, body:${body}")
+ .process(exchange -> {
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.DOWNLOAD_LINK_EXPIRATION_TIME, 86400000L); //1 day
+ })
+ .to("google-storage://" + bucket2 + "?serviceAccountKey=" + serviceAccountKeyFile
+ + "&operation=createDownloadLink")
+ .log("URL for ${header.CamelGoogleCloudStorageBucketName}/${header.CamelGoogleCloudStorageObjectName} =${body}")
+ .to("mock:bucket2");
+ ;
+
+ //list all buckets
+ from("timer:timer1?repeatCount=1&fixedRate=true&period=10000")
+ .to("google-storage://" + bucket2 + "?serviceAccountKey=" + serviceAccountKeyFile
+ + "&operation=listBuckets")
+ .log("list buckets:${body}");
+
+ //list all object of the bucket2 and send result to direct:moreinfo and direct:copy
+ from("timer:timer1?repeatCount=1&fixedRate=true&period=10000")
+ .to("google-storage://" + bucket2 + "?serviceAccountKey=" + serviceAccountKeyFile
+ + "&operation=listObjects")
+ .log("list " + bucket2 + " objects body:${body}")
+ .split(bodyAs(List.class))
+ .log("splitted: ${body}")
+ .multicast().to("direct:moreinfo", "direct:copy");
+
+ from("direct:moreinfo")
+ .process(exchange -> {
+ Blob blob = exchange.getIn().getBody(Blob.class);
+ String fileName = blob.getName();
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, fileName);
+ })
+ .to("google-storage://" + bucket2 + "?serviceAccountKey=" + serviceAccountKeyFile
+ + "&operation=getObject")
+ .log("get object bucket:${header.CamelGoogleCloudStorageBucketName} object:${header.CamelGoogleCloudStorageObjectName}, body:${body}");
+
+ //copy object
+ from("direct:copy")
+ .process(exchange -> {
+ Blob blob = exchange.getIn().getBody(Blob.class);
+ String fileName = blob.getName();
+ String copyFileName = "copy_" + fileName;
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, fileName);
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.DESTINATION_BUCKET_NAME, bucket4);
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.DESTINATION_OBJECT_NAME, copyFileName);
+ })
+ .to("google-storage://" + bucket2 + "?serviceAccountKey=" + serviceAccountKeyFile
+ + "&operation=copyObject")
+ .log("${body}");
+
+ }
+ };
+ }
+
+ @Test
+ public void sendIn() throws Exception {
+ mockBucket1.expectedMessageCount(3);
+ mockBucket2.expectedMessageCount(3);
+ mockProcessed.expectedMessageCount(3);
+
+ Thread.sleep(10000);
+ assertMockEndpointsSatisfied();
+ }
+
+}
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ConsumerIntegrationTest.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ConsumerIntegrationTest.java
deleted file mode 100644
index 5d19daf..0000000
--- a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ConsumerIntegrationTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.apache.camel.component.google.storage.integration;
-
-import org.apache.camel.EndpointInject;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.google.storage.GoogleCloudStorageConstants;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-public class ConsumerIntegrationTest extends CamelTestSupport {
-
- @EndpointInject
- private ProducerTemplate template;
-
- @EndpointInject("mock:result")
- private MockEndpoint result;
-
- @EndpointInject("mock:consumedObjects")
- private MockEndpoint consumedObjects;
-
- private final String bucketName = "rafa_test_bucket";
- final String serviceAccountKey = "C:\\Users\\rmarc\\Desktop\\LABS\\GCP_Storage\\FunctionExampleProject-c59c4a999d8a.json";
-
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- @Override
- public void configure() throws Exception {
-
- String endpoint = String.format("google-storage://%s?serviceAccountKey=%s&autoCreateBucket=true", bucketName,
- serviceAccountKey);
- //String endpoint = String.format("google-storage://%s?autoCreateBucket=true", bucketName);
-
- from("direct:putObject")
- .startupOrder(1)
- .to(endpoint)
- .to("mock:result");
-
- from("google-storage://myCamelBucket?"
- + "moveAfterRead=true"
- + "&destinationBucket=camelDestinationBucket"
- + "&autoCreateBucket=true"
- + "&deleteAfterRead=true"
- + "&includeBody=true")
- .startupOrder(2)
- .log("consuming: ${header.CamelGoogleCloudStorageBucketName}/${header.CamelGoogleCloudStorageObjectName}, body=${body}")
- .to("mock:consumedObjects");
-
- }
- };
- }
-
- @Test
- public void sendIn() throws Exception {
- result.expectedMessageCount(3);
- consumedObjects.expectedMessageCount(3);
-
- //upload a files
-
- template.send("direct:putObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "test.txt");
- exchange.getIn().setBody("Test");
- });
-
- template.send("direct:putObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "test1.txt");
- exchange.getIn().setBody("Test1");
- });
-
- template.send("direct:putObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "test2.txt");
- exchange.getIn().setBody("Test2");
- });
- /*
- Exchange listBucketsExchange = template.request("direct:listBucket", exchange -> {
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION, GoogleCloudStorageComponentOperations.listBuckets);
- });
- List<Bucket> bucketsList = listBucketsExchange.getMessage().getBody(List.class);
- LOG.info("bucketsList {}", bucketsList );
-
-
- Exchange listObjectsExchange = template.request("direct:listObjects", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION, GoogleCloudStorageComponentOperations.listObjects);
- });
- LOG.info("listObjectsExchange.body={}", listObjectsExchange.getMessage().getBody());
- */
- Thread.sleep(10000);
- assertMockEndpointsSatisfied();
- }
-
-}
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ProducerIntegrationTest.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ProducerIntegrationTest.java
deleted file mode 100644
index 2c76f0b..0000000
--- a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/integration/ProducerIntegrationTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package org.apache.camel.component.google.storage.integration;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import com.google.cloud.storage.Blob;
-import com.google.cloud.storage.Bucket;
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.google.storage.GoogleCloudStorageComponentOperations;
-import org.apache.camel.component.google.storage.GoogleCloudStorageConstants;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class ProducerIntegrationTest extends CamelTestSupport {
-
- private static final Logger LOG = LoggerFactory.getLogger(ProducerIntegrationTest.class);
-
- @EndpointInject
- private ProducerTemplate template;
-
- @EndpointInject("mock:result")
- private MockEndpoint result;
-
- private final String bucketName = "rafa_test_bucket";
- final String serviceAccountKey = "C:\\Users\\rmarc\\Desktop\\LABS\\GCP_Storage\\FunctionExampleProject-c59c4a999d8a.json";
-
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- public void configure() {
-
- String endpoint = String.format("google-storage://%s?serviceAccountKey=%s&autoCreateBucket=true", bucketName,
- serviceAccountKey);
- //String endpoint = String.format("google-storage://%s?autoCreateBucket=true", bucketName);
-
- from("direct:addObject").to(endpoint);
- from("direct:getObject").to(endpoint);
- from("direct:listBucket").log("-> ${body}").to(endpoint).log("--> ${body}");
- from("direct:listObjects").to(endpoint).log("--> ${body}");
- from("direct:downloadLink").to(endpoint);
- from("direct:deleteObject").to(endpoint);
- from("direct:deleteBucket").to(endpoint).to("mock:result");
-
- }
- };
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void sendIn() throws Exception {
- LOG.info("start sending something");
- result.expectedMessageCount(1);
-
- final String FILENAME_1 = "just_a_file.txt";
-
- //upload a file
- byte[] payload = "Hi, How are you ?".getBytes();
- ByteArrayInputStream bais = new ByteArrayInputStream(payload);
- Exchange addObjectExchange = template.request("direct:addObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, FILENAME_1);
- exchange.getIn().setHeader(GoogleCloudStorageConstants.CONTENT_ENCODING, "text/plain");
- exchange.getIn().setBody(bais);
- });
- Blob addObject = addObjectExchange.getMessage().getBody(Blob.class);
- LOG.info("addObject {}", addObject);
- assertNotNull(addObject);
- assertEquals(FILENAME_1, addObject.getName());
-
- Exchange listBucketsExchange = template.request("direct:listBucket", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
- GoogleCloudStorageComponentOperations.listBuckets);
- });
- List<Bucket> bucketsList = listBucketsExchange.getMessage().getBody(List.class);
- LOG.info("bucketsList {}", bucketsList);
- assertEquals(1, bucketsList.size());
-
- Exchange listObjectsExchange = template.request("direct:listObjects", exchange -> {
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
- GoogleCloudStorageComponentOperations.listObjects);
- });
- LOG.info("listObjectsExchange.body={}", listObjectsExchange.getMessage().getBody());
- List<Blob> resp = listObjectsExchange.getMessage().getBody(List.class);
- assertEquals(1, resp.size());
- assertEquals(FILENAME_1, resp.get(0).getName());
- /*
- Exchange getObjectExchange = template.request("direct:getObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
- GoogleCloudStorageComponentOperations.getObject);
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, FILENAME_1);
- });
- Blob getObject = getObjectExchange.getMessage().getBody(Blob.class);
- LOG.info("getObject: {}", getObject);
- assertNotNull(getObject);
- assertEquals(FILENAME_1, getObject.getName());
-
- /*
- //sign url
- Exchange downloadLinkExchange = template.request( "direct:downloadLink", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION, GoogleCloudStorageComponentOperations.createDownloadLink);
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "readme.txt" );
- exchange.getIn().setHeader(GoogleCloudStorageConstants.DOWNLOAD_LINK_EXPIRATION_TIME, 86400000L); //1 day
- });
- URL downloadLink = downloadLinkExchange.getMessage().getBody(URL.class);
- LOG.info("downloadLink {}", downloadLink );
- assertNotNull( downloadLink );
- */
- /*
- Exchange deleteObjectExchange = template.send("direct:deleteObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
- GoogleCloudStorageComponentOperations.deleteObject);
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, FILENAME_1);
- });
-
- boolean deleteObject = deleteObjectExchange.getMessage().getBody(Boolean.class).booleanValue();
- LOG.info("deleteObject {}", deleteObject);
- assertTrue(deleteObject);
-
- Exchange deleteBucketExchange = template.send("direct:deleteBucket", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
- GoogleCloudStorageComponentOperations.deleteBucket);
- });
- boolean deleteBucket = deleteBucketExchange.getMessage().getBody(Boolean.class).booleanValue();
- LOG.info("deleteBucket {}", deleteBucket);
- assertTrue(deleteBucket);
-
- assertMockEndpointsSatisfied();
- */
- }
-
-}
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/FakeStorageRpc.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/FakeStorageRpc.java
index 9a7cda6..b2908e1 100644
--- a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/FakeStorageRpc.java
+++ b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/FakeStorageRpc.java
@@ -28,6 +28,7 @@ import com.google.cloud.storage.testing.StorageRpcTestBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+//this class has been extended from
//https://github.com/googleapis/java-storage-nio/blob/master/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java
/**
* A bare-bones in-memory implementation of StorageRpc, meant for testing.
@@ -43,13 +44,13 @@ import org.slf4j.LoggerFactory;
* <li>object delete
* <li>list the contents of a bucket
* <li>generations
+ * <li>NOW SUPPORTED bucket create
+ * <li>NOW SUPPORTED bucket get
+ * <li>NOW SUPPORTED bucket delete
+ * <li>NOW SUPPORTED list all buckets
* </ul>
* <li>Unsupported
* <ul>
- * <li>bucket create
- * <li>bucket get
- * <li>bucket delete
- * <li>list all buckets
* <li>file attributes
* <li>patch
* <li>continueRewrite
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/LocalStorageHelper.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/LocalStorageHelper.java
index 9d1e827..fb28518 100644
--- a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/LocalStorageHelper.java
+++ b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/localstorage/LocalStorageHelper.java
@@ -4,6 +4,8 @@ import com.google.cloud.spi.ServiceRpcFactory;
import com.google.cloud.storage.StorageOptions;
import com.google.cloud.storage.spi.v1.StorageRpc;
+//this class has been extended from
+//https://github.com/googleapis/java-storage-nio/blob/master/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/LocalStorageHelper.java
/**
* Utility to create an in-memory storage configuration for testing. Storage options can be obtained via the
* {@link #getOptions()} method. Returned options will point to FakeStorageRpc.
@@ -18,13 +20,13 @@ import com.google.cloud.storage.spi.v1.StorageRpc;
* <li>object get
* <li>object delete
* <li>list the contents of a bucket
+ * <li>bucket create (now supported)
+ * <li>bucket get (now supported)
+ * <li>bucket delete (now supported)
+ * <li>list all buckets (now supported)
* </ul>
* <li>Unsupported operations
* <ul>
- * <li>bucket create
- * <li>bucket get
- * <li>bucket delete
- * <li>list all buckets
* <li>generations
* <li>file attributes
* <li>patch
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ConsumerLocalTest.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ConsumerLocalTest.java
index b6b3c4f..184fedd 100644
--- a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ConsumerLocalTest.java
+++ b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ConsumerLocalTest.java
@@ -42,7 +42,7 @@ public class ConsumerLocalTest extends GoogleCloudStorageBaseTest {
+ "&deleteAfterRead=true"
+ "&includeBody=true")
.startupOrder(2)
- .log("consuming: ${header.CamelGoogleCloudStorageBucketName}/${header.CamelGoogleCloudStorageObjectName}, body=${body}")
+ //.log("consuming: ${header.CamelGoogleCloudStorageBucketName}/${header.CamelGoogleCloudStorageObjectName}, body=${body}")
.to("mock:consumedObjects");
}
@@ -51,41 +51,25 @@ public class ConsumerLocalTest extends GoogleCloudStorageBaseTest {
@Test
public void sendIn() throws Exception {
- result.expectedMessageCount(3);
- consumedObjects.expectedMessageCount(3);
-
- //upload a files
-
- template.send("direct:putObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "test.txt");
- exchange.getIn().setBody("Test");
- });
-
- template.send("direct:putObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "test1.txt");
- exchange.getIn().setBody("Test1");
- });
-
- template.send("direct:putObject", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, "test2.txt");
- exchange.getIn().setBody("Test2");
- });
- /*
- Exchange listBucketsExchange = template.request("direct:listBucket", exchange -> {
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION, GoogleCloudStorageComponentOperations.listBuckets);
- });
- List<Bucket> bucketsList = listBucketsExchange.getMessage().getBody(List.class);
- LOG.info("bucketsList {}", bucketsList );
-
-
- Exchange listObjectsExchange = template.request("direct:listObjects", exchange -> {
- exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION, GoogleCloudStorageComponentOperations.listObjects);
- });
- LOG.info("listObjectsExchange.body={}", listObjectsExchange.getMessage().getBody());
- */
- Thread.sleep(10000);
+
+ final int NUMBER_OF_FILES = 3;
+
+ result.expectedMessageCount(NUMBER_OF_FILES);
+ consumedObjects.expectedMessageCount(NUMBER_OF_FILES);
+
+ for (int i = 0; i < NUMBER_OF_FILES; i++) {
+ final String filename = String.format("file_%s.txt", i);
+ final String body = String.format("body_%s", i);
+ //upload a file
+ template.send("direct:putObject", exchange -> {
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, filename);
+ exchange.getIn().setBody(body);
+ });
+ }
+
+ Thread.sleep(5000);
assertMockEndpointsSatisfied();
+
}
}
diff --git a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
index 591c633..1c0d731 100644
--- a/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
+++ b/components/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
@@ -69,7 +69,6 @@ public class ProducerLocalTest extends GoogleCloudStorageBaseTest {
assertEquals(FILENAME_1, addObject.getName());
Exchange listBucketsExchange = template.request("direct:listBucket", exchange -> {
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
GoogleCloudStorageComponentOperations.listBuckets);
});
@@ -78,7 +77,6 @@ public class ProducerLocalTest extends GoogleCloudStorageBaseTest {
assertEquals(1, bucketsList.size());
Exchange listObjectsExchange = template.request("direct:listObjects", exchange -> {
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
GoogleCloudStorageComponentOperations.listObjects);
});
@@ -90,7 +88,6 @@ public class ProducerLocalTest extends GoogleCloudStorageBaseTest {
Exchange getObjectExchange = template.request("direct:getObject", exchange -> {
exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
GoogleCloudStorageComponentOperations.getObject);
- // exchange.getIn().setHeader(GoogleCloudStorageConstants.BUCKET_NAME, "myBucket"); not needed
exchange.getIn().setHeader(GoogleCloudStorageConstants.OBJECT_NAME, FILENAME_1);
});
Blob getObject = getObjectExchange.getMessage().getBody(Blob.class);