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";