Commit Graph

1348 Commits

Author SHA1 Message Date
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