Repository: jclouds Updated Branches: refs/heads/master 0b89b1fd1 -> a1049449f
Reset xattr on overwrite in filesystem provider Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a1049449 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a1049449 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a1049449 Branch: refs/heads/master Commit: a1049449f421c29e6dbe68499fdc7bead7cdf65a Parents: 0b89b1f Author: Andrew Gaul <[email protected]> Authored: Sun Aug 31 13:04:32 2014 -0700 Committer: Andrew Gaul <[email protected]> Committed: Thu Sep 4 17:22:26 2014 -0700 ---------------------------------------------------------------------- .../internal/FilesystemStorageStrategyImpl.java | 1 + .../FilesystemStorageStrategyImplTest.java | 33 ++++++++++++++++++++ 2 files changed, 34 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1049449/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java ---------------------------------------------------------------------- diff --git a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java index ea975e8..04b3172 100644 --- a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java +++ b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java @@ -276,6 +276,7 @@ public class FilesystemStorageStrategyImpl implements LocalStorageStrategy { try { Files.createParentDirs(outputFile); his = new HashingInputStream(Hashing.md5(), payload.openStream()); + outputFile.delete(); Files.asByteSink(outputFile).writeFrom(his); HashCode actualHashCode = his.hash(); HashCode expectedHashCode = payload.getContentMetadata().getContentMD5AsHashCode(); http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1049449/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java ---------------------------------------------------------------------- diff --git a/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java b/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java index aaa4b78..c24458e 100644 --- a/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java +++ b/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java @@ -16,6 +16,8 @@ */ package org.jclouds.filesystem.strategy.internal; +import static org.jclouds.utils.TestUtils.isMacOSX; +import static org.jclouds.utils.TestUtils.randomByteSource; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; @@ -43,8 +45,10 @@ import org.jclouds.io.payloads.InputStreamPayload; import org.jclouds.util.Throwables2; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; +import org.testng.SkipException; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.google.common.io.ByteSource; @@ -526,6 +530,35 @@ public class FilesystemStorageStrategyImplTest { } } + public void testOverwriteBlobMetadata() throws Exception { + if (isMacOSX()) { + throw new SkipException("blob metadata not supported on Mac OS X"); + } + String blobKey = TestUtils.createRandomBlobKey("writePayload-", ".img"); + + // write blob + Blob blob = new BlobBuilderImpl() + .name(blobKey) + .payload(randomByteSource().slice(0, 1024)) + .userMetadata(ImmutableMap.of("key1", "value1")) + .build(); + storageStrategy.putBlob(CONTAINER_NAME, blob); + + blob = storageStrategy.getBlob(CONTAINER_NAME, blobKey); + assertEquals(blob.getMetadata().getUserMetadata().get("key1"), "value1"); + + // overwrite blob + blob = new BlobBuilderImpl() + .name(blobKey) + .payload(randomByteSource().slice(0, 1024)) + // no metadata + .build(); + storageStrategy.putBlob(CONTAINER_NAME, blob); + + blob = storageStrategy.getBlob(CONTAINER_NAME, blobKey); + assertFalse(blob.getMetadata().getUserMetadata().containsKey("key1")); + } + // ---------------------------------------------------------- Private methods /**
