Commit Graph

519 Commits

Author SHA1 Message Date
Andrew Gaul 91c47bfd92 JCLOUDS-801: Add portable multipart upload tests
Exercise both repeatable and non-repeatable payloads.  Tested against
AWS-S3, Azure, and legacy Swift.  Skipped on all other providers.
2015-01-09 21:59:25 -08:00
Ka-Hing Cheung b7ab8b18a0 support directory blobs
make the filesystem blob store distinguish between a/ and a. a/
must be a directory blob with no content and only metadata

on listing, only directories with md5 attribute is considered a
blob and returned
2015-01-09 16:28:16 -08:00
Andrew Gaul 77eaa2c1f9 Add container creation date to local blobstores 2015-01-09 14:10:33 -08:00
Jeremy Daggett d3c1e2eab4 Use AutoService to generate service loader metadata 2015-01-09 11:22:12 -08:00
Andrew Gaul d6d06b71f4 Handle listing with marker after the last key
Also handle zero maxResults.  Found with Ceph s3-tests and s3proxy.
2015-01-08 16:28:02 -08:00
Adrian Cole 8d0c7f9a6c JCLOUDS-534 Folded overly explicit use of HostAndPort, which is also incompatible with guava 16. 2014-10-29 17:01:26 -07:00
Adrian Cole 177fd6d37f Do not require Guava ByteSource in order to create a payload. 2014-10-29 10:20:39 -07:00
Adrian Cole 1702bddffa Revert "Replace uses of ByteArrayPayload"
This reverts commit bd5b6853ee.
2014-10-29 10:20:38 -07:00
Adrian Cole 2933a78a6b Revert "Prefer ByteSource payload"
This reverts commit 0e3d1475ab.
2014-10-25 10:29:22 -07:00
Adrian Cole 0a801d2ad2 Revert "JCLOUDS-652: Require JDK 7"
This reverts commit 5e8bd02c93.
2014-10-25 10:28:34 -07:00
Adrian Cole b9525a0877 JCLOUDS-40 unasync Fallback 2014-10-06 13:14:59 -07:00
Andrew Phillips ffc0df11c9 Restoring BlobStoreUtils.parseDirectoryFromPath
Removed in 56a2a8b but used in downstream repos, e.g. jclouds-karaf
2014-10-06 09:50:24 -04:00
Adrian Cole 99e217b720 Move off confusing test names. 2014-10-05 17:22:18 -07:00
Adrian Cole a4e3c1a2f8 JCLOUDS-40 Remove AsyncBlobStore 2014-10-05 13:17:54 -07:00
Adrian Cole 56a2a8bf4a JCLOUDS-40 Remove internal usage of AsyncBlobStore. 2014-10-05 08:49:54 -07:00
Adrian Cole dfb583b67a JCLOUDS-40 remove all implementations of AsyncBlobStore except Submission in preparation for complete removal. 2014-10-05 08:49:38 -07:00
Adrian Cole b6497556f6 JCLOUDS-150 add SubmissionAsyncBlobStore; unasync s3 and aws-s3 2014-10-03 13:18:29 -07:00
Andrew Gaul 0e3d1475ab Prefer ByteSource payload
Also use randomByteSource for test input.
2014-09-09 15:32:39 -07:00
Andrew Gaul bd5b6853ee Replace uses of ByteArrayPayload
Prefer ByteSourcePayload which offers a superset of its functionality.
Note that ByteArrayPayload implicitly set the contentLength while
users of ByteSourcePayload must do so explicitly.
2014-09-07 07:43:14 -07:00
Andrew Gaul 0b89b1fd10 Ensure that Content-MD5 has 128 bits
Update many tests Content-MD5 headers and ETag responses.
2014-09-04 16:57:48 -07:00
Andrew Gaul 34cfdbe266 Enforce Override annotation via Checkstyle
Also remove bogus inheritDoc on base and static methods.
2014-08-31 19:37:50 -07:00
Andrew Gaul 550018a68d Use randomByteSource to generate test data
This avoids buffering the entire bolus of data in-memory.
2014-08-27 15:59:36 -07:00
Andrew Gaul 60e3763999 Throw ContainerNotFoundException from removeBlob
This makes removeBlob consistent with all other user-facing methods.
2014-08-21 16:18:12 -07:00
Jeremy Daggett e711275fb1 Prefer isEmpty() for collections rather than size() 2014-08-20 11:07:48 -07:00
John Walker e5283df995 JCLOUDS-676: Fix reflection warnings / Clojure
JCLOUDS-676: Fix reflection warnings / Clojure

Also fixed a typo in a doc string
2014-08-17 12:03:30 -07:00
Andrew Gaul 20bc145284 JCLOUDS-650: ContainerNotFoundException on putBlob
Found with Ceph s3-tests and s3proxy.
2014-08-09 00:25:10 -07:00
Andrew Phillips e3d9851216 Up to 2.0.0-SNAPSHOT after the 1.8.0 release 2014-08-05 09:10:24 +02:00
Andrew Gaul 9c82ded343 Correct comment 2014-07-27 21:25:35 -07:00
Andrew Gaul 7f31cd6051 Handle possibly null message from IOException 2014-07-27 19:41:45 -07:00
Andrew Gaul 1e1eb5a092 Add deleteContainerIfEmpty to BlobStore
This matches how most blobstores operate: delete container is a single
operation, not a compound operation which recursively deletes blobs.
Azure is the only provider which allows deleting a non-empty
container.
2014-07-25 23:02:39 -07:00
Andrew Phillips 5732bdcd94 Escaping regex special chars (esp. '\') in delimiter matching
Uncovered by 370194b
2014-07-22 13:35:52 -04:00
Andrew Gaul f17c876d8d Replace const.txt file input with synthetic inputs
This commit replaces file resource-based test inputs with in-memory
equivalents.  This is more consistent and efficient than the previous
approach.  Also resized some test inputs to be partSize + 1 instead of
2 * partSize.  Tested against aws-s3, blobstore, core, cloudfiles-us,
and filesystem.
2014-07-19 18:35:25 -07:00
Andrew Gaul dd3dc9790e Close streams in integration tests
Also remove bogus delete workaround.  Previously unclosed
FileInputStream caused test failures on Windows which cannot delete
open files.  Found with Kohsuke's file-leak-detector.
2014-07-19 05:25:20 -07:00
Andrew Gaul fb60d76704 JCLOUDS-622: Remove most vestiges of InputSupplier
Guava 16 deprecated InputSupplier and a future release will remove it.
2014-07-16 16:07:59 -07:00
Andrew Gaul a8b106c2bb JCLOUDS-622: remove calls to InputSupplier methods
Guava 16 deprecated these methods and Guava 18 will remove them.
2014-07-15 03:09:58 -07:00
Andrew Gaul 75928795f3 Address Checkstyle violations 2014-07-15 03:07:29 -07:00
Andrew Gaul bdb5cbcbe7 Improve use of ByteSource with test resources
This commit ensures proper resource cleanup, simplifies
initialization, and paves the way for purely synthetic inputs in a
subsequent commit.
2014-07-11 09:10:51 -07:00
Andrew Gaul cf830af4d2 Remove unneeded InputSupplier helper
Also convert byte[] to HashCode.
2014-07-10 22:36:32 -07:00
Andrew Gaul f4eca0422d Enforce correct MD5 for local blobstores
Matches behavior of real blobstores.
2014-07-10 22:19:42 -07:00
Andrew Gaul 66dab8d96e JCLOUDS-410: Remove InputStreamSupplierPayload
ByteSourcePayload replaces this.  jclouds 1.7 deprecated
InputStreamSupplierPayload and Guava 16 deprecated InputSupplier
itself.
2014-07-10 20:43:08 -07:00
Andrew Gaul 8fa209b15e Use more specific testng asserts where possible
These asserts yield more informative error messages.  Found with:

grep -rI 'assertTrue(.* =='
grep -rI 'assertTrue(.* !='
grep -rI 'assertTrue(.*\.equals('
2014-06-24 13:54:01 -07:00
Chris Custine 309c053c77 JCLOUDS-584: HP Cloud Object Storage Fixes for 13.5 2014-06-24 12:01:51 -07:00
Andrew Gaul e799a7409c JCLOUDS-597: HashCode methods for Content-MD5
This works more naturally with Guava Hashing methods and immutability
provides better safety guarantees.  Also deprecate existing byte[]
methods.
2014-06-12 15:29:17 -07:00
Andrew Gaul 9cdd53b0b7 JCLOUDS-546: Remove Javadoc @author annotations
Annotations removed with:

find -name \*.java | xargs sed -i /@author/d

Empty Javadoc removed with multiple iterations of:

find -name \*.java | xargs sed -i -z 's/ \*\n \*\// \*\//'
find -name \*.java | xargs sed -i -z 's/ \* \n \*\// \*\//'
find -name \*.java | xargs sed -i -z 's/\/\*\*\n \*\/\n//'
2014-06-07 21:44:54 -07:00
Andrew Gaul da8517f295 Increase timeouts for signed URL tests
Clock skew between the client and blobstore can cause these tests to
spuriously fail.  This commit allows 5 seconds skew in either
direction.
2014-05-30 14:58:40 -07:00
Andrew Gaul 2342abd3c5 Address Checkstyle violations 2014-05-30 11:10:14 -07:00
Andrew Gaul 186f052022 Remove BlobBuilder and Payloads.calculateMD5
Callers should instead explicitly set contentMD5, usually with the
results from Guava Hashing.md5(). This narrows the API and removes a
strange IOException from callers.  Further it removes a dangerous
rebuffering of arbitrarily-large non-repeatable Payloads.
2014-05-28 12:54:18 -07:00
Andrew Gaul c6d4e6645c JCLOUDS-402: Allow Guava MediaType Content-Type
This promotes type-safety.  Keep the String interface for unknown
content types.
2014-05-28 11:45:00 -07:00
Andrew Gaul 70cf3e1f7c Make constants final classes instead of interfaces
This commit prohibits implementation of the empty interface and
instantiation of the class.  Refer to _Effective Java_ item 19 for
more background.
2014-05-16 09:45:52 -07:00
Andrew Gaul 8d51ad6f87 Prefer Guava HttpHeaders over JAX-RS
jclouds code contains more instances of the former and Guava has
additional constants like CONTENT_MD5.
2014-05-15 01:55:51 -07:00