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 2015/06/30 17:29:09 UTC

[7/9] camel git commit: CAMEL-8920 Camel-JClouds: Add new operations to Blobstore component, add removeBlobs operation

CAMEL-8920 Camel-JClouds: Add new operations to Blobstore component, add removeBlobs operation


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ccb77a4d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ccb77a4d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ccb77a4d

Branch: refs/heads/master
Commit: ccb77a4d4aa0fba39d4a781c4fb0fa0edff061a5
Parents: 116ef33
Author: Andrea Cosentino <an...@gmail.com>
Authored: Tue Jun 30 17:27:38 2015 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Tue Jun 30 17:27:38 2015 +0200

----------------------------------------------------------------------
 .../jclouds/JcloudsBlobStoreHelper.java         | 10 ++++++++++
 .../jclouds/JcloudsBlobStoreProducer.java       | 20 +++++++++++++++++++-
 .../component/jclouds/JcloudsConstants.java     |  2 ++
 3 files changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ccb77a4d/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreHelper.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreHelper.java
index 3ce1d57..6ec6c7e 100644
--- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreHelper.java
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreHelper.java
@@ -18,15 +18,18 @@ package org.apache.camel.component.jclouds;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.List;
 
 import javax.ws.rs.core.MediaType;
 
 import com.google.common.base.Strings;
+
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.domain.Blob;
 import org.jclouds.blobstore.util.BlobStoreUtils;
 import org.jclouds.domain.Location;
 import org.jclouds.io.Payload;
+
 import static org.jclouds.blobstore.options.PutOptions.Builder.multipart;
 
 public final class JcloudsBlobStoreHelper {
@@ -136,4 +139,11 @@ public final class JcloudsBlobStoreHelper {
         boolean result = blobStore.containerExists(container);
         return result;
     }
+    
+    /**
+     * Delete a list of {@link BlobStore} blob
+     */
+    public static void removeBlobs(BlobStore blobStore, String container, List blobNames) throws IOException {
+        blobStore.removeBlobs(container, blobNames);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/ccb77a4d/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducer.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducer.java
index 94574dd..b5735c5 100644
--- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducer.java
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsBlobStoreProducer.java
@@ -16,8 +16,11 @@
  */
 package org.apache.camel.component.jclouds;
 
-import org.apache.camel.Exchange;
+import java.util.ArrayList;
+import java.util.List;
 
+import org.apache.camel.Exchange;
+import org.apache.camel.util.ObjectHelper;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.io.Payload;
 import org.slf4j.Logger;
@@ -49,6 +52,7 @@ public class JcloudsBlobStoreProducer extends JcloudsProducer {
         String container = getContainerName(exchange);
         String blobName = getBlobName(exchange);
         String operation = getOperation(exchange);
+        List blobNames = getBlobNameList(exchange);
 
         if (LOG.isTraceEnabled()) {
             LOG.trace("Processing {} operation on '{}'", operation, container + "/" + blobName);
@@ -65,6 +69,8 @@ public class JcloudsBlobStoreProducer extends JcloudsProducer {
             JcloudsBlobStoreHelper.deleteContainer(blobStore, container);
         } else if (JcloudsConstants.CONTAINER_EXISTS.equals(operation)) {
             exchange.getOut().setBody(JcloudsBlobStoreHelper.containerExists(blobStore, container));
+        } else if (JcloudsConstants.REMOVE_BLOBS.equals(operation)) {
+            JcloudsBlobStoreHelper.removeBlobs(blobStore, container, blobNames);
         } else {
             Payload body = exchange.getIn().getBody(Payload.class);
             JcloudsBlobStoreHelper.writeBlob(blobStore, container, blobName, body);
@@ -116,4 +122,16 @@ public class JcloudsBlobStoreProducer extends JcloudsProducer {
         }
         return operation;
     }
+    
+    /**
+     * Retrieves the Blob name list from the exchange headers.
+     */
+    public List getBlobNameList(Exchange exchange) {
+        List blobNames = new ArrayList<>();
+
+        if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(JcloudsConstants.BLOB_NAME_LIST))) {
+            blobNames = (List) exchange.getIn().getHeader(JcloudsConstants.BLOB_NAME_LIST);
+        }
+        return blobNames;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/ccb77a4d/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConstants.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConstants.java
index 8819e54..b574fed 100644
--- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConstants.java
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConstants.java
@@ -22,6 +22,7 @@ public final class JcloudsConstants {
     public static final String COMPUTE = "compute";
     public static final String BLOB_NAME = "CamelJcloudsBlobName";
     public static final String CONTAINER_NAME = "CamelJcloudsContainerName";
+    public static final String BLOB_NAME_LIST = "CamelJcloudsBlobNameList";
 
     public static final String NODE_STATE = "CamelJcloudsNodeState";
 
@@ -30,6 +31,7 @@ public final class JcloudsConstants {
     public static final String GET = "CamelJcloudsGet";
     public static final String COUNT_BLOBS = "CamelJcloudsCountBlobs";
     public static final String REMOVE_BLOB = "CamelJcloudsRemoveBlob";
+    public static final String REMOVE_BLOBS = "CamelJcloudsRemoveBlobs";
     public static final String CLEAR_CONTAINER = "CamelJcloudsClearContainer";
     public static final String DELETE_CONTAINER = "CamelJcloudsDeleteContainer";
     public static final String CONTAINER_EXISTS = "CamelJcloudsExistsContainer";