You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2017/11/25 05:17:03 UTC

[01/11] jclouds git commit: Allow lastModified to be null

Repository: jclouds
Updated Branches:
  refs/heads/2.0.x f4ecb785d -> b7b67a0f6


Allow lastModified to be null

Follow on to ec932321bde5662d8ecbef7cf5428a6017b07dd0


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

Branch: refs/heads/2.0.x
Commit: d31dc9414987a712d2be25e38458e96d9e440c53
Parents: f4ecb78
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Mar 12 16:49:08 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 18:41:49 2017 -0800

----------------------------------------------------------------------
 .../java/org/jclouds/s3/domain/ListMultipartUploadResponse.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d31dc941/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java b/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
index 8830317..58edc56 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
@@ -21,6 +21,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Date;
 
+import org.jclouds.javax.annotation.Nullable;
+
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.Beta;
 import org.jclouds.javax.annotation.Nullable;
@@ -33,7 +35,7 @@ public abstract class ListMultipartUploadResponse {
    public abstract String eTag();
    public abstract long size();
 
-   public static ListMultipartUploadResponse create(int partNumber, Date lastModified, String eTag, long size) {
+   public static ListMultipartUploadResponse create(int partNumber, @Nullable Date lastModified, String eTag, long size) {
       checkArgument(partNumber > 0, "partNumber must be greater than zero, was: %s", partNumber);
       checkNotNull(eTag, "eTag");
       if (lastModified != null) {


[07/11] jclouds git commit: Add mtime support to Atmos directory listing

Posted by ga...@apache.org.
Add mtime support to Atmos directory listing


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

Branch: refs/heads/2.0.x
Commit: b95809046adc899f786ba03f9217758100d821ca
Parents: 28a70b7
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Oct 29 17:26:34 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:35 2017 -0800

----------------------------------------------------------------------
 .../DirectoryEntryListToResourceMetadataList.java   |  2 +-
 .../org/jclouds/atmos/domain/DirectoryEntry.java    | 15 +++++++++++++++
 .../atmos/xml/ListDirectoryResponseHandler.java     | 16 +++++++++++++++-
 3 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9580904/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
index f04100f..b14dd85 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
@@ -59,7 +59,7 @@ public class DirectoryEntryListToResourceMetadataList implements
                                  .get(), null, null, null, null, ImmutableMap.<String, String>of());
                      else {
                         BlobMetadataImpl metadata = new BlobMetadataImpl(from.getObjectID(), from.getObjectName(), defaultLocation.get(),
-                                 null, null, null, null, ImmutableMap.<String, String>of(), null,
+                                 null, null, null, from.getModifiedTime(), ImmutableMap.<String, String>of(), null,
                                  null, new BaseMutableContentMetadata());
                         MutableBlobMetadataImpl mutable = new MutableBlobMetadataImpl(metadata);
                         mutable.setSize(from.getSize());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9580904/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java b/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
index b657973..40c2cdb 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
@@ -16,6 +16,10 @@
  */
 package org.jclouds.atmos.domain;
 
+import java.util.Date;
+
+import org.jclouds.javax.annotation.Nullable;
+
 import com.google.common.base.Objects;
 
 /**
@@ -26,12 +30,19 @@ public class DirectoryEntry implements Comparable<DirectoryEntry> {
    private final FileType type;
    private final String objname;
    private final long size;
+   @Nullable private final Date modifiedTime;
 
+   @Deprecated
    public DirectoryEntry(String objectid, FileType type, String objname, long size) {
+      this(objectid, type, objname, size, null);
+   }
+
+   public DirectoryEntry(String objectid, FileType type, String objname, long size, Date modifiedTime) {
       this.objectid = objectid;
       this.objname = objname;
       this.type = type;
       this.size = size;
+      this.modifiedTime = modifiedTime != null ? (Date) modifiedTime.clone() : null;
    }
 
    public String getObjectID() {
@@ -50,6 +61,10 @@ public class DirectoryEntry implements Comparable<DirectoryEntry> {
       return size;
    }
 
+   public Date getModifiedTime() {
+      return modifiedTime != null ? (Date) modifiedTime.clone() : null;
+   }
+
    public int compareTo(DirectoryEntry o) {
       if (getObjectName() == null)
          return -1;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9580904/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java b/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
index ffe1a4a..3109708 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
@@ -16,10 +16,14 @@
  */
 package org.jclouds.atmos.xml;
 
+import java.util.Date;
 import java.util.Set;
 
+import javax.inject.Inject;
+
 import org.jclouds.atmos.domain.DirectoryEntry;
 import org.jclouds.atmos.domain.FileType;
+import org.jclouds.date.DateService;
 import org.jclouds.http.functions.ParseSax;
 
 import com.google.common.collect.Sets;
@@ -37,12 +41,20 @@ public class ListDirectoryResponseHandler extends ParseSax.HandlerWithResult<Set
    private FileType currentType;
    private String currentFileName;
    private long currentSize;
+   private Date currentModificationTime;
 
    // metadata parsing
    private String currentName;
 
    private StringBuilder currentText = new StringBuilder();
 
+   private final DateService dateService;
+
+   @Inject
+   ListDirectoryResponseHandler(DateService dateService) {
+      this.dateService = dateService;
+   }
+
    public Set<DirectoryEntry> getResult() {
       return entries;
    }
@@ -61,9 +73,11 @@ public class ListDirectoryResponseHandler extends ParseSax.HandlerWithResult<Set
       } else if (qName.equals("Value")) {
          if (currentName.equals("size")) {
             currentSize = Long.parseLong(currentText.toString().trim());
+         } else if (currentName.equals("mtime")) {
+            currentModificationTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
          }
       } else if (qName.equals("DirectoryEntry")) {
-         entries.add(new DirectoryEntry(currentObjectId, currentType, currentFileName, currentSize));
+         entries.add(new DirectoryEntry(currentObjectId, currentType, currentFileName, currentSize, currentModificationTime));
       }
       currentText.setLength(0);
    }


[08/11] jclouds git commit: Implement partial prefix support for Atmos

Posted by ga...@apache.org.
Implement partial prefix support for Atmos

Atmos only supports listing by directories while other blobstores
allow listing via arbitrary prefixes.  Allow requests which list
directories via both prefix and delimiter = "/" to succeed instead of
failing all requests.  Also change a test which specified recursive to
instead be delimiter = "/".  Fixes gaul/s3proxy#244.


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

Branch: refs/heads/2.0.x
Commit: c61e8bc28b75687375c503de080498633e999856
Parents: b958090
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Oct 30 12:44:25 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:35 2017 -0800

----------------------------------------------------------------------
 .../java/org/jclouds/atmos/blobstore/AtmosBlobStore.java    | 9 ++++++++-
 .../integration/AtmosContainerIntegrationLiveTest.java      | 7 +------
 .../integration/internal/BaseContainerIntegrationTest.java  | 2 +-
 3 files changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/c61e8bc2/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
index 1550932..ca84fe8 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
@@ -220,8 +220,15 @@ public class AtmosBlobStore extends BaseBlobStore {
    @Override
    public PageSet<? extends StorageMetadata> list(String container,
             org.jclouds.blobstore.options.ListContainerOptions options) {
-      checkArgument(Strings.isNullOrEmpty(options.getPrefix()), "does not support prefixes");
+      // TODO: recursive?
+      if (!Strings.nullToEmpty(options.getDelimiter()).equals("/") && !Strings.isNullOrEmpty(options.getPrefix())) {
+         throw new IllegalArgumentException("Atmos can only list via prefix if delimiter is / and the prefix matches an existing directory");
+      }
       container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options);
+      if (!Strings.isNullOrEmpty(options.getPrefix())) {
+         // this only works when the prefix exactly matches a directory, the common usage
+         container += "/" + options.getPrefix();
+      }
       ListOptions nativeOptions = container2ContainerListOptions.apply(options);
       // until includeMeta() option works for namespace interface
       PageSet<? extends StorageMetadata> list = container2ResourceList.apply(sync.listDirectory(container,

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c61e8bc2/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
index c29f80c..4814918 100644
--- a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
+++ b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
@@ -58,16 +58,11 @@ public class AtmosContainerIntegrationLiveTest extends BaseContainerIntegrationT
 
    @Override
    public void testContainerListWithPrefix() {
-      throw new SkipException("Prefix option has not been plumbed down to Atmos");
+      throw new SkipException("Atmos can only list prefix which matches an existing directory");
    }
 
    @Override
    public void testDelimiterList() {
       throw new SkipException("Delimiter support is not yet implemented");
    }
-
-   @Override
-   public void testListContainerPrefix() throws InterruptedException {
-      throw new SkipException("Prefix support is not yet implemented");
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/c61e8bc2/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
index e6cb0ae..554c75a 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
@@ -310,7 +310,7 @@ public class BaseContainerIntegrationTest extends BaseBlobStoreIntegrationTest {
          add15UnderRoot(containerName);
          awaitConsistency();
          PageSet<? extends StorageMetadata> container = view.getBlobStore().list(
-               containerName, new ListContainerOptions().recursive().prefix(prefix));
+               containerName, new ListContainerOptions().prefix(prefix).delimiter("/"));
          assert container.getNextMarker() == null;
          assertEquals(container.size(), 10);
       } finally {


[10/11] jclouds git commit: JCLOUDS-1358: Fix zero byte InputStream test input

Posted by ga...@apache.org.
JCLOUDS-1358: Fix zero byte InputStream test input

Do not use ByteSource.empty() since it is backed by a
ByteArrayInputStream which supports reset.


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

Branch: refs/heads/2.0.x
Commit: 9a302453e01c3dfbd2279b3fa7e49d9a83b11ff3
Parents: 63e6450
Author: Andrew Gaul <ga...@apache.org>
Authored: Tue Nov 21 10:49:53 2017 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 20:15:25 2017 -0800

----------------------------------------------------------------------
 .../integration/internal/BaseBlobIntegrationTest.java       | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/9a302453/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
----------------------------------------------------------------------
diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
index 23defff..e03b226 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
@@ -626,14 +626,19 @@ public class BaseBlobIntegrationTest extends BaseBlobStoreIntegrationTest {
    @Test(groups = { "integration", "live" })
    public void testPutZeroLengthByteSource() throws Exception {
       long length = 0;
-      Payload payload = new ByteSourcePayload(ByteSource.empty());
+      // do not use ByteSource.empty() since it is backed by a
+      // ByteArrayInputStream which supports reset
+      ByteSource byteSource = TestUtils.randomByteSource().slice(0, length);
+      Payload payload = new ByteSourcePayload(byteSource);
       testPut(payload, null, payload, length, new PutOptions());
    }
 
    @Test(groups = { "integration", "live" })
    public void testPutZeroLengthInputStream() throws Exception {
       long length = 0;
-      ByteSource byteSource = ByteSource.empty();
+      // do not use ByteSource.empty() since it is backed by a
+      // ByteArrayInputStream which supports reset
+      ByteSource byteSource = TestUtils.randomByteSource().slice(0, length);
       Payload payload = new InputStreamPayload(byteSource.openStream());
       testPut(payload, null, payload, length, new PutOptions());
    }


[02/11] jclouds git commit: Handle empty prefix on Atmos

Posted by ga...@apache.org.
Handle empty prefix on Atmos


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

Branch: refs/heads/2.0.x
Commit: 17c8e315467bf31fa8e0c11e71cc6cdc1b60bd1d
Parents: 57dceaf
Author: Andrew Gaul <ga...@apache.org>
Authored: Sat Oct 28 11:06:25 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:34 2017 -0800

----------------------------------------------------------------------
 .../src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java | 3 +++
 .../blobstore/functions/BlobStoreListOptionsToListOptions.java    | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/17c8e315/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
index a75fee2..1550932 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.atmos.blobstore;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.jclouds.atmos.options.PutOptions.Builder.publicRead;
 
@@ -58,6 +59,7 @@ import org.jclouds.http.options.GetOptions;
 import org.jclouds.io.Payload;
 import org.jclouds.io.PayloadSlicer;
 
+import com.google.common.base.Strings;
 import com.google.common.base.Supplier;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
@@ -218,6 +220,7 @@ public class AtmosBlobStore extends BaseBlobStore {
    @Override
    public PageSet<? extends StorageMetadata> list(String container,
             org.jclouds.blobstore.options.ListContainerOptions options) {
+      checkArgument(Strings.isNullOrEmpty(options.getPrefix()), "does not support prefixes");
       container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options);
       ListOptions nativeOptions = container2ContainerListOptions.apply(options);
       // until includeMeta() option works for namespace interface

http://git-wip-us.apache.org/repos/asf/jclouds/blob/17c8e315/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
index b6a1e9d..13882f9 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
@@ -23,6 +23,7 @@ import javax.inject.Singleton;
 import org.jclouds.blobstore.options.ListContainerOptions;
 
 import com.google.common.base.Function;
+import com.google.common.base.Strings;
 
 @Singleton
 public class BlobStoreListOptionsToListOptions implements
@@ -31,7 +32,7 @@ public class BlobStoreListOptionsToListOptions implements
    public org.jclouds.atmos.options.ListOptions apply(ListContainerOptions from) {
       checkNotNull(from, "set options to instance NONE instead of passing null");
       org.jclouds.atmos.options.ListOptions httpOptions = new org.jclouds.atmos.options.ListOptions();
-      if (from.getMarker() != null) {
+      if (!Strings.isNullOrEmpty(from.getMarker())) {
          httpOptions.token(from.getMarker());
       }
       if (from.getMaxResults() != null) {


[03/11] jclouds git commit: Allow empty delimiters with openstack-swift

Posted by ga...@apache.org.
Allow empty delimiters with openstack-swift


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

Branch: refs/heads/2.0.x
Commit: 57dceaf56f11692de2362029e1d127b0e68419ba
Parents: 4765590
Author: Andrew Gaul <ga...@apache.org>
Authored: Thu Sep 7 12:28:41 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:34 2017 -0800

----------------------------------------------------------------------
 .../swift/v1/blobstore/functions/ToListContainerOptions.java      | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/57dceaf5/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/functions/ToListContainerOptions.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/functions/ToListContainerOptions.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/functions/ToListContainerOptions.java
index 918a992..de06d14 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/functions/ToListContainerOptions.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/functions/ToListContainerOptions.java
@@ -21,6 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import org.jclouds.blobstore.options.ListContainerOptions;
 
 import com.google.common.base.Function;
+import com.google.common.base.Strings;
 
 public class ToListContainerOptions implements
       Function<ListContainerOptions, org.jclouds.openstack.swift.v1.options.ListContainerOptions> {
@@ -45,7 +46,7 @@ public class ToListContainerOptions implements
       } else if (!from.isRecursive()) {
          options.delimiter('/');
       }
-      if (from.getDelimiter() != null) {
+      if (!Strings.isNullOrEmpty(from.getDelimiter())) {
          if (from.getDelimiter().length() != 1) {
             throw new IllegalArgumentException("Delimiter must be a single character");
          }


[04/11] jclouds git commit: Remove duplicate Nullable import

Posted by ga...@apache.org.
Remove duplicate Nullable import


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

Branch: refs/heads/2.0.x
Commit: 4765590bc93e51bc5a52eb65fca8715bffbc7f44
Parents: d31dc94
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Aug 6 18:38:52 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:34 2017 -0800

----------------------------------------------------------------------
 .../java/org/jclouds/s3/domain/ListMultipartUploadResponse.java    | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/4765590b/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java b/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
index 58edc56..debea17 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/ListMultipartUploadResponse.java
@@ -21,8 +21,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Date;
 
-import org.jclouds.javax.annotation.Nullable;
-
 import com.google.auto.value.AutoValue;
 import com.google.common.annotations.Beta;
 import org.jclouds.javax.annotation.Nullable;


[05/11] jclouds git commit: Enable passing Atmos tests

Posted by ga...@apache.org.
Enable passing Atmos tests

Also clarify why we skip certain tests with SkipException.


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

Branch: refs/heads/2.0.x
Commit: 28a70b7fb4cad07aa11d3bb4efef5c7f7881daee
Parents: 48a8400
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Oct 29 13:43:10 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:35 2017 -0800

----------------------------------------------------------------------
 .../AtmosContainerIntegrationLiveTest.java      |  5 +++
 .../integration/AtmosIntegrationLiveTest.java   | 44 ++------------------
 2 files changed, 8 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/28a70b7f/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
index 8561ecd..c29f80c 100644
--- a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
+++ b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
@@ -65,4 +65,9 @@ public class AtmosContainerIntegrationLiveTest extends BaseContainerIntegrationT
    public void testDelimiterList() {
       throw new SkipException("Delimiter support is not yet implemented");
    }
+
+   @Override
+   public void testListContainerPrefix() throws InterruptedException {
+      throw new SkipException("Prefix support is not yet implemented");
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/28a70b7f/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java
index 4f6e991..6ccdad2 100644
--- a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java
+++ b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java
@@ -42,39 +42,8 @@ public class AtmosIntegrationLiveTest extends BaseBlobIntegrationTest {
    }
 
    @Override
-   @Test(enabled = false)
-   public void testGetIfMatch() {
-      // no etag support
-   }
-
-   @Override
-   @Test(enabled = false)
-   public void testGetIfModifiedSince() {
-      // not supported
-   }
-
-   @Override
-   @Test(enabled = false)
-   public void testGetIfNoneMatch() {
-      // no etag support
-   }
-
-   @Override
-   @Test(enabled = false)
-   public void testGetIfUnmodifiedSince() {
-      // not supported
-   }
-
-   @Override
-   @Test(enabled = false)
-   public void testGetRange() {
-      // TODO this should work
-   }
-
-   @Override
-   @Test(enabled = false)
    public void testGetTwoRanges() {
-      // not supported
+      throw new SkipException("Atmos MIME-encodes multiple ranges");
    }
 
    // not supported
@@ -122,16 +91,9 @@ public class AtmosIntegrationLiveTest extends BaseBlobIntegrationTest {
       throw new SkipException("Expiration not yet implemented");
    }
 
-   @Test(enabled = false)
-   // problem with the stub and md5, live is fine
+   @Override
    public void testMetadata() {
-      // TODO
-   }
-
-   @Test(enabled = false)
-   // problem with the stub and md5, live is fine
-   public void testPutObject() throws Exception {
-      // TODO
+      throw new SkipException("Atmos cannot overwrite blob when Content-MD5 is set");
    }
 
    @Override


[09/11] jclouds git commit: Address Checkstyle violation

Posted by ga...@apache.org.
Address Checkstyle violation


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

Branch: refs/heads/2.0.x
Commit: 63e64505b2e897479c95d1982037fed82824d991
Parents: c61e8bc
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Oct 30 18:14:52 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:35 2017 -0800

----------------------------------------------------------------------
 .../src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java   | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/63e64505/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
index ca84fe8..83079b3 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
@@ -16,7 +16,6 @@
  */
 package org.jclouds.atmos.blobstore;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.jclouds.atmos.options.PutOptions.Builder.publicRead;
 


[11/11] jclouds git commit: JCLOUDS-1358: Handle 0-byte input with v4 signature

Posted by ga...@apache.org.
JCLOUDS-1358: Handle 0-byte input with v4 signature

Previously this failed due to use of mark and reset on the
InputStream.


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

Branch: refs/heads/2.0.x
Commit: b7b67a0f6ab5d4dd0266abc3a3d59961c29e0267
Parents: 9a30245
Author: Andrew Gaul <ga...@apache.org>
Authored: Tue Nov 21 11:36:11 2017 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 20:15:25 2017 -0800

----------------------------------------------------------------------
 .../org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java  | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/b7b67a0f/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java
index 258c3a7..2a1a290 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java
@@ -169,8 +169,7 @@ public class Aws4SignerForAuthorizationHeader extends Aws4SignerBase {
 
    protected String getPayloadHash(HttpRequest request) {
       Payload payload = request.getPayload();
-      if (payload == null) {
-         // when payload is null.
+      if (payload == null || "0".equals(getContentLength(request))) {
          return getEmptyPayloadContentHash();
       }
       return calculatePayloadContentHash(payload);


[06/11] jclouds git commit: Add parent to system metadata

Posted by ga...@apache.org.
Add parent to system metadata

Previously this caused spurious test failures.


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

Branch: refs/heads/2.0.x
Commit: 48a8400c3fb6302bea0121e5c5f476bbb0c56d1a
Parents: 17c8e31
Author: Andrew Gaul <ga...@apache.org>
Authored: Sat Oct 28 11:06:38 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 24 19:25:35 2017 -0800

----------------------------------------------------------------------
 .../org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java   | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/48a8400c/apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java b/apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
index 615e68f..3615e56 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
@@ -38,6 +38,7 @@ import com.google.common.collect.Maps;
 public class ParseUserMetadataFromHeaders implements Function<HttpResponse, UserMetadata> {
    private static final Set<String> SYS_KEYS = ImmutableSet.of(
          "atime", "ctime", "gid", "itime", "mtime", "nlink",
+         "parent",
          "policyname", "size", "uid", "content-md5", "objectid", "objname", "type");
 
    public UserMetadata apply(HttpResponse from) {