Commit Graph

1651 Commits

Author SHA1 Message Date
Adrian Cole 671749d6b7 JCLOUDS-750 Allow abstract value types to be constructed from json using static factory methods. 2014-10-26 12:31:05 -07:00
Adrian Cole f3f8f0e010 JCLOUDS-264 Conditionally allow default http driver to support sending >2GB payloads without chunked encoding. 2014-10-25 10:29:09 -07:00
Adrian Cole 99d54c6631 Revert "JCLOUDS-264: Allow payloads greater than 2 GB"
This reverts commit 7e4cacf9ea.
2014-10-25 10:28:56 -07:00
Adrian Cole 0785d80827 Revert "Remove Java 6 litter"
This reverts commit a10bf3e9c5.
2014-10-25 10:28:46 -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 0339cd2fd0 JCLOUDS-653 revert guava 18. 2014-10-24 10:46:09 -07:00
Adrian Cole 3980cd791b Revert "JCLOUDS-653: Address Guava 18 deprecations"
This reverts commit 95cfc0d950.

Many conflicts due to duration between above commit and now
2014-10-24 10:45:58 -07:00
Andrew Gaul 489850d7db Fix GuiceAssistedInjectScoping error-prone warning 2014-10-12 15:47:30 -07:00
Adrian Cole d735a9fa21 JCLOUDS-40 clear remaining references to Async. 2014-10-12 09:05:35 -07:00
Adrian Cole b9525a0877 JCLOUDS-40 unasync Fallback 2014-10-06 13:14:59 -07:00
Adrian Cole 0a236f59ad JCLOUDS-153 remove IO Executor and usage of it. 2014-10-06 07:56:31 -07:00
Adrian Cole c349753624 JCLOUDS-152 remove RestContext and its dependencies. 2014-10-05 22:32:55 -07:00
Adrian Cole 99e217b720 Move off confusing test names. 2014-10-05 17:22:18 -07:00
Adrian Cole 1a54f0fb09 JCLOUDS-153 Remove deprecated ExecutorService and HttpAsyncClient accessors. 2014-10-05 16:16:28 -07:00
Andrew Gaul 2d70087bfa Add modernizer-maven-plugin to build
This plugin finds uses of legacy APIs:

https://github.com/andrewgaul/modernizer-maven-plugin
2014-09-22 21:57:55 -07:00
Andrew Gaul dc3011469b Prefer Charsets.UTF_8 over string literal
Found with modernizer-maven-plugin.
2014-09-20 18:31:24 -07:00
Jeremy Daggett 9f0b86ec1a JCLOUDS-719: Updgrade to Gson 2.3 2014-09-17 08:52:24 -07:00
Andrew Gaul ac22383648 Remove ByteArrayPayload
Callers should use ByteSourcePayload instead.
2014-09-07 07:43:14 -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 a4bc36dafa Add PayloadEnclosing.setPayload(ByteSource) 2014-09-06 22:27:22 -07:00
Andrew Gaul e1a5c521c5 Improve XML compatibility with trace-level logging
Some providers, notably Azure, include a byte-order mark in their XML
responses.  ParseSax.apply buffers these responses in a String when
users enable trace-level logging to include the response in any thrown
exceptions.  InputSource(InputStream) skips these byte-order marks
while InputSource(Reader) does not, yielding a SAXParseException.
2014-09-05 17:53:50 -07:00
Andrew Gaul 58438d7d1e Address Checkstyle violations 2014-09-04 17:24:27 -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 8613967820 Remove ByteStreams2.asByteSource
This method is dangerous since all ByteSource should provide a new
InputStream on every call to openStream while the method returns the
same InputStream for non-repeatable Payloads.
2014-09-04 16:55:55 -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 5399cb6877 Avoid unnecessary boxing
Found with FindBugs.
2014-08-30 14:30:47 -07:00
Andrew Gaul 1b824afbfc Remove redundant modifiers from interfaces 2014-08-26 17:34:13 -07:00
Andrew Gaul 74fb8f0183 Add whitespace after semicolons
Also correct some bad line-wrapping.
2014-08-26 11:06:00 -07:00
Andrew Gaul 614f5194ef JCLOUDS-653: Upgrade to Guava 18.0
Release notes:

https://code.google.com/p/guava-libraries/wiki/Release18
2014-08-25 17:47:23 -07:00
Jeremy Daggett e711275fb1 Prefer isEmpty() for collections rather than size() 2014-08-20 11:07:48 -07:00
Jeremy Daggett 744cd5d7eb Prefer Regions to Zones in OpenStack APIs 2014-08-13 09:58:53 -07:00
Andrew Gaul 9009bb5268 JCLOUDS-658: use xattr only on supported systems
Mac OS X HFS+ does not support UserDefinedFileAttributeView:

https://bugs.openjdk.java.net/browse/JDK-8030048
2014-08-12 12:30:06 -07:00
Andrew Gaul f236e046e3 Merge identical tests 2014-08-11 12:45:28 -07:00
Andrew Gaul a10bf3e9c5 Remove Java 6 litter 2014-08-11 12:45:27 -07:00
Andrew Phillips a6412ad66b Addressing Checkstyle violation
Introduced in 7e4cacf
2014-08-09 09:12:43 -04:00
Andrew Gaul 7e4cacf9ea JCLOUDS-264: Allow payloads greater than 2 GB
Enabled by JDK 7.
2014-08-09 00:28:49 -07:00
Andrew Gaul 80a0256cc7 JCLOUDS-622: Remove last vestiges of InputSupplier
Guava 16 deprecated InputSupplier and a future release will remove it.
2014-08-08 15:40:33 -07:00
Andrew Gaul b219208d6c JCLOUDS-653: correct mock expectation 2014-08-08 15:21:58 -07:00
Andrew Gaul 95cfc0d950 JCLOUDS-653: Address Guava 18 deprecations
Mostly renaming Objects.toStringHelper to MoreObjects.toStringHelper.
2014-08-08 11:12:21 -07:00
Andrew Gaul f26431b3e7 JCLOUDS-653: Upgrade to Guava 18.0-rc1
Release notes:

https://code.google.com/p/guava-libraries/wiki/Release18
2014-08-08 11:08:09 -07:00
Andrew Gaul 59462747e7 Reset StringBuilder instead of creating new ones
This avoids unneeded garbage, especially during XML parsing.  Replaced
with:

find -name \*.java | xargs sed -i 's/^\( *[^ ]*\) = new StringBuilder();$/\1.setLength(0);/'
2014-08-06 11:22:49 -07:00
Andrew Gaul 9e9acf1f3e Address Checkstyle violations 2014-08-05 17:13:29 -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
Zack Shoylev 231a60675e Adds support for ImmutableMap in jclouds gson 2014-07-29 12:36:53 -05:00
Andrew Phillips eba727fef7 'iso8601DateParseWithOptionalTZ' -> 'iso8601DateOrSecondsDateParse' in DateService
Follow-up to d57bbebe
2014-07-28 12:20:49 -04:00
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
Andrew Gaul 1f08b692cd JCLOUDS-473: Close FileInputStream in Wire.copy
FileBackedOutputStream.asByteSource.getInput returns a FileInputStream
which we do not close.  We later call FileBackedOutputStream.reset
which removes the underlying File.  This fails on Windows which does
not support deleting an open file and leaks resources on other
platforms.  Eagerly close to address this issue.
2014-02-18 16:42:40 -08:00
Andrew Phillips 4c07702d29 JCLOUDS-432: Revert "JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51"
This reverts commit 8ff60020f8.
2014-02-10 10:01:02 -05:00
Andrew Phillips 02615adc4f JCLOUDS-427: Upgrading Guava 16.0 -> 16.0.1
Fixes Guava issue 1635.
2014-02-10 10:01:01 -05:00
Zack Shoylev 30a29cc73e Adds a top-level zone filter. New live tests iterate over all available zones to ensure jclouds is fully compatible. Sometimes we want to filter to specific zones on demand. 2014-02-07 10:37:49 -06:00
Andrew Gaul 241abea734 Store propagatable exceptions in a static field
Also include ResourceAlreadyExistsException.  References JCLOUDS-438.
2014-01-29 10:30:18 -08:00
Andrew Gaul 0098751f42 JCLOUDS-438: Map S3 code BucketAlreadyExists
Mapping to ResourceAlreadyExistsException allows external callers to
handle this situation specifically.
2014-01-28 21:21:46 -08:00
Andrew Phillips ea5128209a JCLOUDS-415: Upgrading Guava 15.0 -> 16.0 2014-01-28 07:57:35 -05:00
Andrew Phillips d77f96bed7 JCLOUDS-415: Preparing for Guava 16.0
Invokable.equals has changed from 15 to 16 so we need to implement the check differently ourselves.
2014-01-28 07:57:34 -05:00
Andrew Phillips 8ff60020f8 JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51
- Adding a version of TypeToken.where that replaces two parameters in one go
- Avoiding TypeToken type parameter replacement with wildcard bounds

Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
2014-01-23 23:28:00 -05:00
Andrew Phillips b59457a405 Fixing an error message about an unassignable backend 2014-01-23 09:09:47 -05:00
Andrew Gaul 9416416ff4 Address Checkstyle violations 2014-01-19 20:51:51 -08:00
Andrew Gaul d5fd82500c JCLOUDS-428: Address Java 8 compatibility nits
Tested with JDK 1.6.0_45, 1.7.0_45, and 1.8.0-ea-b123.
2014-01-19 20:37:45 -08:00
Ignasi Barrera 09a430744a Added OkHttp driver to support modern HTTP verbs 2014-01-13 10:47:39 +01:00
Andrew Gaul 3143e43a27 Remove erroneous deprecation of ByteSource method 2013-12-26 08:24:04 -08:00
Andrew Gaul c7b0f66544 Replace calls to Closeables.closeQuietly
Guava 16 removes this API.  Replace with Closeables2.closeQuietly.
References JCLOUDS-413 and JCLOUDS-415.
2013-12-21 12:30:59 -08:00
Andrew Gaul f9e98681b6 Address miscellaneous Guava deprecations
References JCLOUDS-415.
2013-12-20 14:05:44 -08:00
Andrew Bayer c1ee11d9bd Updating to 1.8.0-SNAPSHOT 2013-12-17 11:31:56 -08:00
Andrew Gaul 9d2e4759a3 JCLOUDS-410. Correctly override getInput
Payload.getInput must always call openStream to handle overridden
methods correctly.  Previously this caused errors in jclouds-chef in
BaseCipherPayload.
2013-12-17 08:02:03 -08:00
Andrew Gaul e48d4985ea JCLOUDS-410. Add support for ByteSource Payloads
Also deprecate byte[], File, InputSupplier<InputStream>, and String
Payloads.  Callers should instead provide a ByteSource via
ByteSource.wrap(byte[]) and Files.asByteSource(File)
2013-12-16 13:06:30 -08:00
Andrew Gaul f3dcd3fe86 JCLOUDS-410. Deprecate Payload.getInput
We plan to transition Payload to ByteSource in the next major release.
Unfortunately Payload.getInput masks its checked exception and
ByteSource.getInput is final so we cannot continue to mask the
exceptions.  Deprecation of getInput and addition openStream allows us
to transition callers from the former to the latter.
2013-12-16 13:02:37 -08:00
Andrew Gaul ac1f05ffac Remove unneeded calls to ByteSources.asByteSource 2013-12-15 22:57:32 -08:00
Andrew Gaul 8bf23069d9 Prefer Math.max over Ints.max to avoid varargs 2013-12-12 17:53:34 -08:00
Ignasi Barrera cec0981bb9 Properly set the request method in HTTPS connections 2013-12-12 12:30:06 -06:00
Andrew Gaul 828d8790c2 Enforce no unused imports via Checkstyle
Removed with:

mvn checkstyle:checkstyle --quiet -Dcheckstyle.output.file=/dev/stdout -Dcheckstyle.output.format=plain | tac | while read i; do echo $i | sed -n 's/\([^:]*\):\([^:]*\):.*/sed -i \2d \1/p' | bash; done
2013-12-11 17:27:43 -08:00
Eric Evans 15a3c04fb7 JCLOUDS-356 multipart uploads with InputStream payloads
This changeset introduces an alternative to PayloadSlicer,
IterablePayloadSlicer, with a method for returning a Payload iterator.

...swift.blobstore.strategy.internal.SequentialMultipartUploadStrategy
has been updated to to use a payload iterator.
2013-12-11 16:34:19 +01:00
Everett Toews c40dc996d9 JCLOUDS-400: Allow the HeaderParam annotation to be used in a Caller.
This allows jclouds to factor out common headers into the Caller so they don't
have to be repeated in the Callee.

The Produces/Consumes annotations (Content-Type/Accept headers) will also
propagate from the Caller to the Callee.
2013-12-11 13:24:07 +01:00
Andrew Gaul 4cef85d1cd Address Checkstyle violations in tests 2013-12-09 14:40:07 -08:00
Ignacio Mulas 6d7bde9676 PATCH HTTP request implementation 2013-11-13 23:23:40 +01:00
Andrew Phillips 4500dbe2ef JCLOUDS-352: Drops support for "-incubating" release versions 2013-11-06 22:31:54 -05:00
Andrew Phillips 29d574ffb2 Fixing typos in test name 2013-11-06 22:31:31 -05:00
Andrew Gaul 6c5effcdb1 Address error-prone empty statement warnings 2013-11-05 16:22:44 -08:00
Andrew Gaul 17ce72794c Enable RedundantModifier for Checkstyle 2013-10-31 10:23:30 -07:00
Niraj Tolia 53146fb7bb [JCLOUD 301]: Make increased use of Invokable params cache
This patch moves the Invokable Parameter cache to Reflection2 and adds
a convenience method for it to allow it to be shared by multiple
callers. The subsequent ability of S3Utils to use this cache results
in a ~40% improvement in performance for generating signed GETs and
PUTs for S3. This commit also converts a few others calls to
Invokable.getParameters() but the observed benefit from those was
small in microbenchmarks.
2013-10-14 17:44:03 -07:00
Andrew Gaul 04c9c6afd2 JCLOUDS-339. Handle zero-length objects in Atmos
Atmos does not return a location header when writing zero-length
objects, which normally throws an HttpResponseException: no uri in
headers or content.
2013-10-08 22:14:37 -07:00
Shri Javadekar af245d67fe JCLOUDS-334. Return correct status while creating containers in Swift.
BlobStore.createContainerInLocation is supposed to return True if the
container was newly created and False if the container already
existed. This commit makes that happen for Swift blobstores.
2013-10-07 21:48:57 -07:00
Andrew Gaul f1fc63ab76 Add whitespace around keywords and braces 2013-09-30 09:39:29 -07:00
Andrew Gaul 06b8cd7ac5 JCLOUDS-305. Disable S3 virtual host buckets for generic S3
Not all S3-compatible providers support virtual host buckets and thus
we should disable this feature by default.  Continue to enable virtual
host buckets for AWS-S3 which supports this although this feature
suffers from DNS settling issues.  Ran ran integration tests against
AWS-S3 and Scality using its S3 API.
2013-09-27 16:22:42 -07:00
Niraj Tolia 73464c3877 [JCLOUDS-302] Remove unnecessary String construction in HttpUtils 2013-09-27 16:15:20 -07:00
Adrian Cole 9f12b6309d JCLOUDS-303. unwrap should permit subtypes 2013-09-27 15:58:25 -07:00
Niraj Tolia e8ef5c0665 [JCLOUDS-301] Reduce reflection overhead of Invokable.getParameters()
By caching the results from Invokable.getParameters(), this commit
improves request signing performance (GETs and PUTs) for S3 by >
3X. These performance problems were seen in production and diagnosed
using the YourKit profiler.
2013-09-27 07:49:09 -07:00
Andrew Gaul 3e5aa78521 Upgrade to Guava 15.0
Release notes:

https://code.google.com/p/guava-libraries/wiki/Release15
2013-09-09 10:54:43 -07:00
Andrew Gaul 310a898bc3 Upgrade to Guava 15.0-rc1
Release notes:

https://code.google.com/p/guava-libraries/wiki/Release15
2013-09-04 19:56:00 -07:00
Andrew Gaul d8490f872d Enable some Xlint warnings
Also address a handful of warnings.
2013-09-04 19:45:44 -07:00
Andrew Gaul 5261f760b7 Support Integer.MAX_VALUE size PUTs
Previously jclouds enforced Integer.MAX_VALUE - 1 size.  Tested
against Atmos Online.
2013-08-28 13:52:06 -07:00
Diwaker Gupta 12f29fd8a9 JCLOUDS-217: Only decode strings that are actually encoded.
* Update HttpRequestTests to account for change in urlDecode.
* Related to JCLOUDS-200
2013-08-27 22:03:48 -04:00
Diwaker Gupta 622aec5566 Modify Strings2.urlDecode to input a string.
This is consistent with urlEncode.  Also consistently use urlDecoder in
DecodingMultimap for values.
2013-08-22 20:43:32 -04:00
Ignasi Barrera d8fe0c9c21 Added method to generate the AuthorizationException with only a message 2013-08-07 00:09:04 +02:00
Ignasi Barrera 4621176516 Generalized the Arg0ToPagedIterable to propagate all args
Generalized the Arg0ToPagedIterable to allow to propagating
all arguments. This will help building PagedIterables for
api methods that require more than one argument to be invoked.
2013-07-25 10:31:09 +02:00
Andrew Gaul ac58a70e32 Do not eagerly check for existence in FilePayload
This is a TOCTOU violation and FilePayload.getInput already propagates
this.  This commit allows external callers like jclouds-cli to
introspect on the exception type, returning a more friendly error
message in some situations.
2013-07-15 23:34:12 -07:00
Diwaker Gupta d52f460562 Introduce StripExpectHeader filter and a property to control it.
Some providers (specifically HP Cloud and Google Cloud Storage) do not
properly support Expect: 100-continue headers. JDK7 is stricter in its
handling of the Expect header than JDK6 -- in particular, it expects
servers to properly respond to an expect header and times out only if a
prior timeout did not exist on the underlying HTTP connection. As a
result, JDK7 tests against these providers hang and fail.

This commit introduces a new filter -- appropriate called
StripExpectHeader -- that is controlled by the property
jclouds.strip-expect-header. The property defaults to false to preserve
existing behavior but allows applications to tweak Expect header
handling.

Tested by running HPCS live tests with JDK7 -- previously most of these
tests would fail with timeouts.

Closes JCLOUDS-181
2013-07-11 15:04:05 -07:00
zack-shoylev 1178f47cd7 Upgrade to gson 2.2.4
https://issues.apache.org/jira/browse/JCLOUDS-117
2013-07-11 13:52:32 -07:00
Andrew Gaul 60e9062894 Checkstyle fixes 2013-07-09 14:09:44 -07:00
JoshVote 8db0218cf7 JCLOUDS-126 - Support and tests for region selection in swift-keystone BlobStore 2013-07-03 13:44:46 -07:00
Andrew Bayer 5f524ee6c9 JCLOUDS-101 - Add SecurityGroupExtension for compute
- Adds the SecurityGroupExtension to compute, with tests and stub
support.
- Gets everything else to actually build against this.
- Unifies on compute's IpPermission/IpProtocol, eliminating EC2's.
- Converters from EC2/Nova/CloudStack SecurityGroup (and rules, for
the latter two) to the compute SecurityGroup (and rules, etc).
- EC2SecurityGroupExtension and tests.
- AWSEC2SecurityGroupExtension and tests - depends on JCLOUDS-99.
2013-06-26 14:59:01 -07:00
Andrew Gaul 1a6be0eb67 Do not repeat array type in initializers 2013-06-18 21:02:50 -07:00
Anton Panasenko ff3405c967 JCLOUDS-127: Added a method to check if the context is open
- Added isOpen in Context interface
- Refactoring Closer class:
  - method close can only call once
  - method close is threadsafe
  - added method getState
2013-06-18 00:31:51 +02:00
Andrew Bayer 32ea520f34 Add license headers to src/test/resources where possible, more fine-grained RAT exclusions 2013-06-12 16:45:29 -07:00
Andrew Gaul d113b0ba63 Remove Strings2.replaceAll(String, Pattern, String)
Replace with direct calls to
Pattern.matcher(String).replaceAll(String).
2013-06-03 14:41:27 -07:00
Andrew Gaul 64e9a4e4c6 Remove Strings2.replaceAll(String, char, String)
String.replace(String, String) serves this purpose better.
2013-06-03 14:41:18 -07:00
Ignasi Barrera 334bd36730 JCLOUDS-82: Added method to get the underlying Api from a View 2013-05-27 22:13:25 +02:00
Andrew Phillips 653c946ec2 JCLOUDS-75: Support '-incubating' release versions 2013-05-21 13:49:31 -04:00
adriancole ed2f18a1af JCLOUDS-31. updated to ASF headers via mvn com.mycila.maven-license-plugin:maven-license-plugin:format 2013-05-16 21:30:37 -07:00
adriancole fa10fc4838 JCLOUDS-31. remove malformed, duplicate, or unnecessary headers 2013-05-16 21:30:32 -07:00
Andrew Phillips 7cf8d611af JCLOUDS-52: Updating JcloudsVersion to search under org.apache.jclouds
Group ID changed from org.jclouds with JCLOUDS-15
2013-05-16 13:37:13 -04:00
Andrew Bayer 7923009eb5 JCLOUDS-37. Fix RAT violations in incubator-jclouds, master branch 2013-05-13 19:17:50 -07:00
Andrew Bayer 446ac67884 JCLOUDS-30. Switch to 2 space indents for POM files. 2013-05-13 12:04:43 -07:00
Andrew Bayer 259b04ff1c JCLOUDS-16. Switch groupId to org.apache.jclouds, change parent POM, remove old distributionManagement content, add ASF repos. 2013-05-13 12:04:42 -07:00
Andrew Gaul ddfb8e58a5 JCLOUDS-27: Allow repeatable Payload with InputSupplier input
This allows HTTP retries to work.  Also remove duplicated calls to
ByteStreams.slice.
2013-05-10 15:48:03 -07:00
Everett Toews 2bbd03939f Removed trystack-nova provider. 2013-04-26 10:54:49 -05:00
Andrew Gaul fff2fa6e05 Address Checkstyle violations
This commit requires temporarily disabling some checks.
2013-04-17 16:21:21 -07:00
Andrew Gaul 04fad88fd3 Remove duplicate Utils getters
Rename callers as required.
2013-04-12 16:24:37 -07:00
Andrew Gaul 4037585e42 Deprecate ExecutorService getters 2013-04-12 14:08:52 -07:00
adriancole fbe9f945e7 rename bindMappedApi -> bindSyncToAsyncApi 2013-04-10 08:57:32 -07:00
adriancole 7db3af1b1e renamed ignored exception to ignored 2013-04-10 08:15:57 -07:00
adriancole 5bc0678a1c naming convention and warning feedback from issue #1511 2013-04-10 08:13:13 -07:00
adriancole 61067d3683 Deprecated remaining code related to RestContext, RestApiMetadata, and RestClientModule for ApiContext, HttpApiMetadata, HttpApiModule 2013-04-09 22:07:43 -07:00
adriancole 053197fe61 deprecated all top-level Async apis and clients 2013-04-09 10:18:31 -07:00
adriancole 36dd831b84 moved all code off use of RestContext except CloudStackContext, which will use it until 1.7 2013-04-09 09:23:31 -07:00
adriancole 8771f75d50 added apiVersion field to BaseContextLiveTest so that CloudStack tests don't need to rely on as much injection 2013-04-09 09:23:30 -07:00
adriancole 4d0e6ae699 added type token means for buildApi() as it is in fact used 2013-04-09 09:23:26 -07:00
adriancole 8f68de0018 added temporary workaround for AutoCloseable which will be deleted in jclouds 1.7 2013-04-08 17:11:33 -07:00
adriancole 88871c9fe9 issue #1501: add Closeable annotation to all top-level apis 2013-04-08 16:13:09 -07:00
adriancole 4ced43566b issue #1501: allow Closeable, top-level apis to be used as opposed to RestContext 2013-04-08 15:14:59 -07:00
Ioannis Canellos a03d4183ae Add @Inject to the Compute class. 2013-04-05 01:51:43 +03:00
Adrian Cole 3e9c3dc6e6 Merge pull request #1490 from maginatics/do-slice-string-cast
Cast String Payloads to String
2013-04-03 17:56:45 -07:00
Adrian Cole 0f1675cc18 Merge pull request #1489 from maginatics/remove-input-suppliers
Remove InputSuppliers.of(String)
2013-04-03 17:55:25 -07:00
Adrian Cole 366a728b08 Merge pull request #1480 from maginatics/http-put-zero-content-length
Emit Content-Length: 0 for empty PUTs
2013-04-03 17:21:20 -07:00
Andrew Gaul be1da2501e Remove InputSuppliers.of(String)
Callers rarely want this functionality and should call
ByteStreams.newInputStreamSupplier when they do.
2013-04-03 15:52:43 -07:00
Andrew Gaul 10d29f5ef2 Cast String Payloads to String 2013-04-03 15:51:44 -07:00
Adrian Cole d938349229 Merge pull request #1488 from maginatics/remove-input-suppliers-of-input-stream
Remove InputSuppliers.of(InputStream)
2013-04-03 15:39:58 -07:00
Andrew Gaul 648e6c2a8a Remove InputSuppliers.of(InputStream)
This method breaks the contract of an InputSupplier since every call
to getInput returns the same InputStream instance.  This is
particularly dangerous when one of the callers mutates or closes the
InputStream which causes all others callers to fail.
2013-04-03 13:19:42 -07:00
Andrew Gaul 843ed57c8a Emit Content-Length: 0 for empty PUTs
HttpUrlConnection reverts Content-Length: 0 on PUT without
doOutput(true), similar to POST.  This commit allows Azure container
create to succeed.  Closes #1420.
2013-04-01 13:42:59 -07:00
Andrew Phillips db4e4af931 Not making methods of core Java classes accessible in Reflection2 2013-03-30 17:00:43 -04:00
Andrew Gaul eb2a9b6ed5 Correct HttpAsyncClient.put Javadoc 2013-03-27 12:44:29 -07:00
Everett Toews 870c7d8450 PaginatedCollection for Rackspace style pagination. 2013-03-25 14:22:32 -05:00
adriancole cd79a9d876 HttpUrlConnection reverts Content-Length=0 on POST unless doOutput is set to true 2013-03-24 20:58:29 -07:00
Adrian Cole 254aafb157 Merge pull request #1449 from zack-shoylev/windows-fix
Fixes running maven tests on windows.
2013-03-22 15:18:26 -07:00
zack-shoylev b19b4d701a Fixes running maven tests on windows. The tests and the private key
builder code were not all properly using
System.getProperty("line.separator") and were instead in some cases just
using "\n"

lineSeparator variable shortened
jclouds formatting applied

reverts and refixes formatting changes

This should fix some missing changes
2013-03-22 21:15:56 +00:00
Dies Koper 7a5cc9e2af add PROPERTY_PROXY_FOR_SOCKETS constant to allow ssh connections to bypass HTTP proxies 2013-03-19 18:16:05 +11:00
Andrew Gaul 9132c7880c Upgrade to Guava 14.0.1
Release notes:
https://code.google.com/p/guava-libraries/wiki/Release14
2013-03-15 21:20:23 -07:00
adriancole 6f9794dedb correct order of List<Byte> gson registration and filled missing test 2013-03-14 09:44:28 -07:00
Andrew Gaul 371db8d18f Address Xlint warnings 2013-03-13 22:23:19 -07:00
Adrian Cole 168121f9b3 Merge pull request #1422 from maginatics/filebackedoutputstream-reset
Call FileBackedOutputStream.reset on InputStream.close
2013-03-13 18:21:22 -07:00
adriancole ef2718629f make it possible to deserialize into ctors that have immutable collection parameters 2013-03-13 12:22:41 -07:00
adriancole 8932e9fd81 pass absent instead of null to ctor parameters of type Optional 2013-03-13 11:07:17 -07:00
Andrew Gaul 2d44332559 Call FileBackedOutputStream.reset on InputStream.close
This ensures that we delete temporary files created by Wire logging.
2013-03-13 10:43:41 -07:00
adriancole 92bfb8224f fix issue #1409: regression where we broke streaming payloads 2013-03-12 11:35:31 -07:00
Adrian Cole d3bb6d6e69 Merge pull request #1406 from maginatics/null-http-response
Annotate possibly null return value
2013-03-11 15:47:24 -07:00
Adrian Cole e1b3ded0d0 Merge pull request #1408 from maginatics/null-payload
Annotate possibly null return value
2013-03-11 15:46:23 -07:00
Andrew Gaul 395116ebf1 Annotate possibly null return value 2013-03-10 15:59:19 -07:00
Andrew Gaul 5a69e01cfd Annotate possibly null return value 2013-03-10 15:43:49 -07:00
Adrian Cole fb69ae0fa9 bump master to 1.7.0-SNAPSHOT 2013-03-08 23:02:40 -08:00
Everett Toews 5ad9867e27 Initial commit for the Rackspace DNS API. 2013-03-06 16:02:39 -06:00
Everett Toews bbede1bd0a Updated Javadoc for PagedIterable. Removed example that was out-of-date. Changed example to something that actually returns PagedIterable. 2013-03-06 11:51:41 -06:00
adriancole c31145e42e [maven-release-plugin] prepare for next development iteration 2013-03-04 06:13:59 -08:00
adriancole 0eb3ee8091 [maven-release-plugin] prepare release jclouds-1.6.0-alpha.4 2013-03-04 06:13:57 -08:00
adriancole 4f2c64681a do not send payload when method doesn't send payload 2013-03-03 17:22:23 -08:00
Adrian Cole 8e881bd5c2 remove default add of Expect 100 Continue header 2013-03-03 12:24:28 -08:00
Andrew Gaul ac60647057 Upgrade to Guava 14.0
Release notes:
https://code.google.com/p/guava-libraries/wiki/Release14
2013-02-26 10:07:53 -08:00
Adrian Cole d9c4cf2d39 consider @FormParam on @Delegate calls 2013-02-24 23:14:13 -08:00
Adrian Cole 1338daec50 added function to grab first arg during pagination 2013-02-24 12:34:00 -08:00
Adrian Cole 86d5d69128 Merge pull request #1344 from maginatics/findbugs
Address FindBugs complaints
2013-02-22 12:19:09 -08:00
Andrew Gaul ec4cdfda05 Address FindBugs complaints 2013-02-22 09:29:22 -08:00
Andrew Gaul 2b7d2ded4d Upgrade to Guava 14.0-rc3 2013-02-21 18:25:27 -08:00
adriancole ebf96596c5 @Delegate considers @PayloadParam 2013-02-21 11:44:03 -08:00
adriancole 67d74528db RedirectionRetryHandler ignored PROPERTY_MAX_REDIRECTS on backoff 2013-02-19 01:39:11 -08:00
adriancole 89fda8ee28 [maven-release-plugin] prepare for next development iteration 2013-02-04 17:30:46 -08:00
adriancole 2b0ad28f26 [maven-release-plugin] prepare release jclouds-1.6.0-alpha.2 2013-02-04 17:30:44 -08:00
adriancole 6c658f6450 fix issue #1297 put with zero length payload 2013-02-04 10:32:03 -08:00
adriancole 267069755e [maven-release-plugin] prepare for next development iteration 2013-02-02 08:41:53 -08:00
adriancole 7c924b312f [maven-release-plugin] prepare release jclouds-1.6.0-alpha.1 2013-02-02 08:41:51 -08:00
adriancole 865005afd9 fix issue #1289 bug in zero length put 2013-02-01 15:09:31 -08:00
adriancole ece2c962a0 worked around issue where GET can become POST 2013-01-31 17:43:49 -08:00
Adrian Cole 6a80aa4313 unwrap UncheckedExecutionException 2013-01-31 11:55:36 -08:00
adriancole fd3a5a3b9a decoupled InvokeHttpMethod, which allows circular dependencies in cloudstack to resolve 2013-01-30 12:51:17 -08:00
Adrian Cole 55a10d4c5d allow SelectJson to specify multiple field names, in case the server renamed something 2013-01-30 09:03:50 -08:00
adriancole 878313582a issue #1089 synchronous commands no longer spawn threads unless a timeout is specified 2013-01-29 04:08:42 -08:00
Dies Koper 17451c3e49 Core, compute: improved poll retry timeout comments 2013-01-28 16:15:47 +11:00
Andrew Phillips 2a1fc363e0 Moving the complex test for 93e2f24c62 into a separate file and allowing it to run in parallel with other tests 2013-01-24 23:13:14 -05:00
Andrew Phillips 4c5cef1be4 Updated implementation comment in Reflection2 2013-01-24 21:41:09 -05:00
Andrew Gaul fb93f774aa Remove unneeded Predicate
Inspired by:
https://code.google.com/p/guava-libraries/wiki/FunctionalExplained#Caveats
2013-01-24 16:55:01 -08:00
Adrian Cole 92c64bc856 Merge pull request #1230 from jclouds/use-system-line-sep-in-tests
Making core tests run on Windows
2013-01-24 08:20:19 -08:00
Andrew Phillips 66bab1342c Using checkArgument instead of throwing an IllegalArgException directly 2013-01-24 02:00:32 -05:00
Andrew Phillips 93e2f24c62 Ignoring synthetic methods to always return the nearest method with the most specific return type from Reflection2.method 2013-01-24 01:59:01 -05:00
Adrian Cole cafd3f9b08 Merge pull request #1232 from dkoper/master
makes fgcp live tests (at least most of them) pass again, and added @Named annotation on async api methods
2013-01-23 10:20:18 -08:00
Dies Koper 494adcaeda Fgcp: changed broken base64 logic and added unit tests 2013-01-23 18:29:40 +11:00
Andrew Phillips 5914436ae0 Making test assertions use the system line separator rather than always '\n' 2013-01-22 21:37:35 -05:00
adriancole 2aea1355a1 added ability to set field exclusion policies for json serialization 2013-01-22 17:12:08 -08:00
Andrew Gaul af963df92d Use Map.entrySet where possible
Improves run-time efficiency and addresses FindBugs warnings.
2013-01-21 23:59:42 -08:00
adriancole 847561ee00 ensure identity/credential properties are not needed when using credential supplier 2013-01-21 10:02:46 -08:00
Adrian Cole d5f7f8b07e refactored json internals to use Reflections2 2013-01-20 23:13:22 -08:00
Adrian Cole a625127fd2 added ability to look up constructors as Invokables 2013-01-20 23:13:22 -08:00
Everett Toews 242d3e07be The Connection API for Rackspace Cloud Load Balancers. 2013-01-20 19:51:06 -06:00
Andrew Gaul 70af02d9d9 Space optimize Strings2.toStringAndClose
Avoid creating a byte array before creating a String.  This reduces
peak memory usage when parsing large JSON responses such as listing a
container.
2013-01-19 22:57:01 -08:00
Adrian Cole 58a986997b removed all compile warnings in core except json package 2013-01-19 20:39:47 -08:00