Shri Javadekar
d57bbebe7e
Try iso8601SecondsDateParse if iso8601DateParse fails.
...
S3 compatible blobStores sometimes return date in the format:
"2014-07-23T20:53:17+0000" instead of the more common
"2014-07-23T18:09:39.944Z". This caused jclouds to barf with an
IllegalArgumentException.
This commit tries to parse both the formats for S3. The exception
is thrown if both fail.
Added unit tests for the same.
2014-07-26 22:19:54 -07:00
Andrew Gaul
5c8bdcdfbb
Remove ByteSources.asByteSource
...
This method breaks the contract of ByteSource which specifies that
openStream can produce multiple independent streams.
2014-07-24 13:02:13 -07: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
0df905a870
JCLOUDS-622: add Strings2.toString(InputSupplier)
...
We did not deprecate this in 1.7.x as previously thought.
2014-07-18 21:48:08 -07:00
Aled Sage
1fb286809e
JCLOUDS-549: Fix NPE in LoginCredentials.toString
...
- also deprecates LoginCredentails.get(Password|PrivateKey)
- use getOptionalPassword and getOptionalPrivateKey instead
2014-07-18 14:09:18 +01: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
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
de68449cde
JCLOUDS-622: Deprecate Strings2.toString
...
Guava 16 deprecated InputSupplier.
2014-07-10 23:32:41 -07:00
Andrew Gaul
1d218b1705
JCLOUDS-417: Test closing a stream w/o reading it
2014-07-10 20:59:10 -07:00
Tom Manville
afc0ca557d
JCLOUDS-417: Remove ConsumeOnCloseInputStream
...
ConsumeOnCloseInputStream can potentially perform a copy in finalize()
if the stream was not closed properly.
2014-07-10 20:59:09 -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
66307d9816
Use consistent stage for the two-stage injection
2014-07-07 23:36:53 -07:00
Andrew Gaul
3fdb6d2e91
Avoid extra copy with Splitter result
2014-07-07 23:36:22 -07:00
Christopher Dancy
3659a5f583
JCLOUDS-607: ComputeService.createNodesInGroup throws NPE on FloatingIPApi.create()
2014-07-07 19:46:54 -04:00
Andrew Gaul
f5244884a5
Avoid impossible UnsupportedEncodingException
2014-07-02 17:30:09 -07:00
Andrew Gaul
d43c3ea3e0
Handle short reads in BasePayloadSlicer
...
InputStream.read(byte[]) can return fewer bytes than requested.
Specifically ByteSource.concat(ByteSource...).openStream() will only
return as many bytes as the current ByteSource contains. Thus
ByteSources.repeatingArrayByteSource(byte[]).openStream() will return
short reads despite the byte[] input from its single logical
InputStream.
2014-07-02 15:13:20 -07:00
Ignasi Barrera
b9029ea7a6
JCLOUDS-617: Use the configured JCE provider in the Cipher payloads
2014-07-02 00:27:08 +02:00
Andrew Gaul
77eff6fffb
Close InputStream after use
...
Found with Kohsuke's file-leak-detector.
2014-06-30 18:26:55 -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
Andrew Gaul
5b5e713cba
Avoid unnecessary object creation
...
Prefer StringBuffer.append(string, index1, index2) over
StringBuffer.append(String.substring(index1, index2).
2014-06-24 13:15:18 -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
Jeremy Daggett
446671a2a7
Improve readability of expect test output
2014-06-11 15:35:45 -05: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
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
bae4377dca
Prefer File.delete over File.deleteOnExit
...
The former has deterministic behavior and avoids resource leaks.
2014-05-23 16:17:10 -07:00
Andrew Gaul
26b53e52b7
Use ByteSource methods to create test input
...
Also avoids excessive system calls due to unbuffered writes. Finally
migrate repeatingArrayByteSource to ByteSources.
2014-05-22 10:43:57 -07:00
Andrew Gaul
4c265d3168
Prefer Guava Hashing over MessageDigest
2014-05-22 09:40:06 -07:00
Andrew Gaul
644fbf2052
Prefer ByteStreams over ByteArrayOutputStream
2014-05-22 00:40:21 -07:00
Andrew Gaul
11b778bbb9
Add missing @Override annotations
2014-05-20 21:23:30 -07:00
Andrew Gaul
1f1f4f0a49
Override hashCode when equals overridden
...
Java 8 added a warning for this:
https://bugs.openjdk.java.net/browse/JDK-6563143
2014-05-20 21:22:43 -07:00
Andrew Gaul
62a6842748
Address CheckStyle violations
2014-05-17 00:49:40 -07:00
Andrew Gaul
baddf8fe80
Replace InputSupplierMap with Map<K, ByteSource>
...
A future version of Guava will remove InputSupplier.
2014-05-16 18:10:52 -07:00
Andrew Gaul
d9d8d421cb
Migrate InputSupplier callers to ByteSource
...
A future version of Guava will remove InputSupplier.
2014-05-16 18:08:19 -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
Andrew Gaul
67c2b5f6b9
Enable whitespace around Checkstyle rule
2014-05-08 18:31:47 -07:00
Andrew Gaul
2d88f5164e
Enforce that all commas have trailing whitespace
2014-05-08 18:28:08 -07:00
Andrew Gaul
3f22f6738d
JCLOUDS-534: Upgrade to Guava 17.0
...
Release notes:
https://code.google.com/p/guava-libraries/wiki/Release17
2014-05-06 17:23:37 -07:00
Andrew Gaul
82e9e9e42f
JCLOUDS-534: Upgrade to Guava 17.0-rc2
...
This commit accommodates changes to Predicates.and.toString and
PublicSuffixPatterns.EXACT. Release notes:
https://code.google.com/p/guava-libraries/wiki/Release17
2014-04-14 18:38:15 -07:00
Andrew Gaul
d0bd30cc15
Address several Guava InputSupplier deprecations
...
Many remain due to Payload implementing InputSupplier<InputStream>. Guava 18
will remove InputSupplier.
2014-04-12 12:02:26 -07:00
Andrew Gaul
7af18d4843
JCLOUDS-534: Address Guava 17 compatibility issues
...
Corrected with:
find -name \*.java | xargs sed -i 's/new Stopwatch();/Stopwatch.createUnstarted();/'
find -name \*.java | xargs sed -i 's/new Stopwatch().start();/Stopwatch.createStarted();/'
2014-04-11 14:24:12 -07:00
Pasi Niemi
85a1a8c1dd
JCLOUDS-516: Add ssh agent support via sch agentproxy
2014-03-27 09:04:34 +01:00
Shri Javadekar
655aa444d7
JCLOUDS-510 Delete objects in a container efficiently.
...
The existing approach for deleting objects in a container suffers
from a head-of-line blocking problem. This commit implements a better
scheme which does not have that problem. This scheme uses a counting
semaphore for making sure that a certain number of futures are
issued in parallel. As each of these futures is completed, one
permit of the semaphore is released.
Added unit tests for testing this new scheme.
2014-03-26 13:48:28 -07:00
Andrew Gaul
00847f9ffc
JCLOUDS-460: Add jitter to avoid thundering herd
...
When issuing many simultaneous requests to Synaptic Atmos I observed:
HTTP/1.1 failed with code 500, error: AtmosError
[code=1040, message=The server is busy. Please try again.]
Previously all clients slept for fixed intervals and thus retried
around the same time. This commit adds a random delay which should
better distribute load on the provider.
2014-03-03 22:30:22 -08:00
Andrew Gaul
d7e0b3b10c
Remove WriteTo
...
Guava helpers capture this functionality in a more idiomatic way.
2014-02-21 17:13:31 -08:00
Andrew Gaul
9a1aae8cfc
JCLOUDS-410: Remove StreamingPayload
...
Only two tests use this class. Callers should use ByteSourcePayload
or InputStreamPayload instead.
2014-02-19 21:27:31 -08:00
Andrew Gaul
c035bcd6b2
JCLOUDS-459: Limit maximum user threads
...
Previously jclouds could use an unlimited number of threads on its
user ExecutorService. While this ExecutorService will go away when we
complete deasyncafication, we should prevent jclouds from misbehaving
until that time.
2014-02-19 10:04:50 -08:00
Andrew Gaul
266d7f847b
Prefer ByteSource over deprecated InputSupplier
2014-02-18 22:35:10 -08:00