Commit Graph

342 Commits

Author SHA1 Message Date
Mickael LANOE 6455fd8518 Parse out of order ListBucket response elements
Currently, jclouds assumes that the <ID> must occur before the
<DisplayName> tag. If the XML body does not adhere to this order, the
parser throws a NullPointerException.

Scaleway is a cloud provider that does not adhere to this order and
returns the <DisplayName> tag before the <ID> tag. The patch changes the
parser to not depend on the order of the tags.

See commit 04feb8f848 for a similar fix
2023-12-10 00:21:47 +09:00
Andrew Gaul 65e16c97f5 Annotate test methods as singleThreaded
Newer versions of testng deprecate sequential.
2022-08-03 21:24:12 +09:00
Andrew Gaul 36f351cd18 Next development version 2.6.0-SNAPSHOT 2022-03-26 18:30:06 +09:00
ramahin 5fad7fa895 JCLOUDS-1599 - Add support for GLACIER_IR storage class 2022-03-09 09:06:13 +09:00
Andrew Gaul 468b126dd8 JCLOUDS-1594: Allow overriding S3 signer
Previously s3 always used v2 and aws-s3 always used v4.  Now s3
defaults to v2 and can override to v4.  Note that this does not change
BlobRequestSigner.
2022-01-12 22:24:45 +09:00
Andrew Gaul dbd8eb1dab JCLOUDS-1589: Upgrade to log4j 2.16.0
This addresses a critical CVE:

https://logging.apache.org/log4j/2.x/security.html
2021-12-16 23:56:09 +09:00
Andrew Gaul e8e78689e6 Next development version 2.4.0-SNAPSHOT 2021-09-19 08:58:25 +09:00
Andrew Gaul 720e92c54a Prefer case-insenstive header comparisons
Follows up to #116.
2021-07-29 20:01:27 +09:00
didixith 779bc2db19
JCLOUDS-1516: specify host name when creating bucket 2021-07-10 11:35:16 +09:00
Andrew Gaul 7ad7890ad0 Next development version 2.4.0-SNAPSHOT 2021-04-14 23:07:54 +09:00
Timur Alperovich 04feb8f848 Parse out of order ListBuckets response elements
Currently, jclouds assumes that the ListBuckets response follows a
specific order: the <Owner> tag, followed by the <Buckets> tag. Within
the <Owner> tag, jclouds further assumes that the <ID> must occur before
the <DisplayName> tag. If the XML body does not adhere to this order,
the parser throws a NullPointerException.

DigitalOcean spaces does not adhere to this order and returns the
<DisplayName> tag before the <ID> tag. The patch changes the parser to
not depend on the order of the tags.
2021-04-04 20:06:26 +09:00
Jean-Noël Rouvignac 0b89ee0825
S3 APIs: Remove the dependency to com.jamesmurty.utils:java-xmlbuilder (#98)
XMLBuilder is a very nice fluent API for building XML documents.
However, it is only used by a tiny portion of jclouds: the s3 api. The
use of the XMLBuilder class requires a dependency to
com.jamesmurty.utils:java-xmlbuilder jar and a transitive
dependency to the net.iharder:base64 jar (superseded by
java.util.Base64 in java 8). They are 18kb each approximately and they
not OSGi compatible. They are not huge, but they represent more API
surface and more things to change when trying to use jclouds in an OSGi
context (they need to be replaced by OSGi compatible bundles like
org.apache.servicemix.bundles.java-xmlbuilder).

This commit replaces the use of XMLBuilder by a direct use of the
javax.xml and org.w3c.dom APIs.

I hope retesting will be minimal, and most of this code is covered by
unit tests.
2021-03-01 15:01:10 +01:00
Jean-Noël Rouvignac f6f3f99024
Avoid using the guice injector int ests which triggers an NPE 2021-03-01 11:49:24 +01:00
korlov42 44ff69d144 JCLOUDS-1551: Update version of OkHttp 3.14.9 2021-02-12 18:57:46 +09:00
Jean-Noël Rouvignac 647af7e365
Simplify S3 code that uses java-xml-builder (#93)
* animal sniffer should be on java18, just like `<jdk.version>`

* Only use XMLBuilder's elem() and text() methods to have similar looking code

* Remove unnecessary call to XMLBuilder's up() because the returned value is never used

* Simplify code

* Deduplicate code

* Make the code more explicit by returning the rootBuilder
2021-01-21 21:54:44 +09:00
gurkerl83 32f6c4d50f Remove the OSGi configuration from each module. The approach of defining OSGi configuration through common properties and serving them to the bundle plugin gets no longer used; instead, OSGi configuration gets defined in each module's dedicated bnd file. 2020-10-26 19:58:41 +09:00
gurkerl83 7a9cd345a6 Onboard bnd-configuration files, one per module 2020-10-26 19:58:41 +09:00
Sam Ottenhoff 8762fbaf8e JCLOUDS-1473 add INTELLIGENT_TIERING enum 2020-06-25 09:11:33 +09:00
Ignasi Barrera f5b29c7028 Next development version 2.3.0-SNAPSHOT 2019-10-21 10:32:43 +02:00
Ignasi Barrera 7221844fac Apache jclouds 2.2.0-rc1 release 2019-10-21 10:32:43 +02:00
Andrew Gaul a1c9ce8217 JCLOUDS-1494: Add S3 Deep Archive tier
Also test Glacier tier now that Amazon allows creating objects with
this storage class.
2019-04-06 18:46:14 +09:00
Andrew Gaul a4855eb9fd JCLOUDS-1489: expect S3 put archive to succeed 2019-02-07 20:03:14 -08:00
David Currie 7ebf12bf38 JCLOUDS-1447: URL encode x-amz-copy-source
The x-amz-copy-source header on S3 CopyObject should be URL encoded (as
a path). This is not universally true of all headers though (for example
the = in x-amz-copy-source-range) therefore introducing a new parameter
on @Headers to indicate whether URL encoding should take place.
2018-09-12 08:01:43 -07:00
Jesse Glick 019ccb7431
Pinning down JCLOUDS-1401 fix behavior with a unit test which is able to distinguish URI.query from URI.rawQuery. 2018-07-11 09:35:34 -07:00
Jesse Glick 9a65be789e
Live test demonstrating effectiveness of JCLOUDS-1401 fix. 2018-07-11 09:35:34 -07:00
Jesse Glick 34d272ac80
Allow S3ClientLiveTest (and AWSS3ClientLiveTest) to use a session token. 2018-07-11 09:35:34 -07:00
Jesse Glick f770455ff9
[JCLOUDS-1401] Properly URL-encode the CanonicalQueryString when it contains funny characters. 2018-07-11 09:35:34 -07:00
Andrew Gaul ea6b616faa JCLOUDS-1399: Support S3 One Zone-IA storage class
Also improve test coverage of storage classes.
2018-04-04 21:44:28 -07:00
Andrew Gaul 90fac3b683 JCLOUDS-1271: Remove BlobStore.signRemoveBlob
Most providers never supported this functionality and the portable
abstraction should not have included it.
2018-03-09 20:52:12 -08:00
andreaturli d17487b223 fix typo in project.version
- from 2.2.0-SNAPSHOST to 2.2.0-SNAPSHOT
2018-02-21 16:45:43 +01:00
andreaturli a5db565581 Next development version 2.2.0-SNAPSHOST 2018-02-16 11:23:12 +01:00
andreaturli 9273bd56ad Apache jclouds 2.1.0-rc3 release 2018-02-16 11:20:21 +01:00
andreaturli 50ae6828f5 [JCLOUDS-1382] improve usage of Neutron capabilities from Nova
- move Neutron FloatingIP API from extension to feature
- introduce FloatingIpForServer as abstract domain object to represents Nova and Neutron objects
- manage floating ip cache and its invalidation
2018-02-15 18:08:53 +01:00
Andrew Gaul 5ca4827d1b JCLOUDS-1370: Add CannedAccessPolicy constants
Also use CaseFormat instead of extra logic.
2018-01-09 13:06:47 -08:00
Andrew Gaul 9b59d099d1 JCLOUDS-1358: Handle 0-byte input with v4 signature
Previously this failed due to use of mark and reset on the
InputStream.
2017-11-21 11:36:11 -08:00
Andrew Gaul 73c3b6024c Add exception cause 2017-11-20 10:49:55 -08:00
Andrew Gaul b93270aef2 JCLOUDS-1337: only set fs tier when non-null
Fixes regression from 61d4be8746.
2017-10-20 20:51:50 -07:00
Andrew Gaul 89053d9a8b JCLOUDS-1337: S3 putBlob portable storage tiers
Also promote hacky and limited storage class support from aws-s3
provider to s3 api.
2017-10-12 11:16:48 -07:00
Andrew Gaul 6cf0a63186 Remove stray Javadoc /** 2017-09-27 09:45:35 -07:00
Andrew Gaul 6bb9c927bb JCLOUDS-1101: Use correct HttpException
Importing javax.xml.ws.http.HTTPException causes Java 9 issues.
2017-08-30 09:50:58 -07:00
Andrew Gaul 517323fbd5 JCLOUDS-1225: Address Guava 18 MoreExecutors changes
Fixed with:

find -name \*.java | xargs sed -i 's/sameThreadExecutor/newDirectExecutorService/g'
2017-08-22 17:14:22 -07:00
Andrew Gaul a493e2ca2f JCLOUDS-1225: Address Guava 18 Objects changes
Fixed with:

find -name \*.java | xargs sed -i 's/Objects.[Tt]oStringHelper/More&/g'
find -name \*.java | xargs sed -i 's/Objects.firstNonNull/More&/g'
find -name \*.java | xargs sed -i 's/^\(import com.google.common.base.\)\(Objects.*\)/\1More\2\n\1\2/g'
find -name \*.java | xargs java -jar google-java-format-1.3-all-deps.jar -i --fix-imports-only --skip-sorting-imports
2017-08-22 17:12:53 -07:00
Chaithanya Ganta e331a000d1 JCLOUDS-1322: Remove Expect header for requests with empty body
Signed-off-by: Chaithanya Ganta <ganta@adobe.com>
2017-08-21 21:05:02 -07:00
Andrew Gaul 3e1e9cbab6 Remove duplicate Nullable import 2017-08-06 18:38:52 -07:00
Andrew Gaul 3ed99ad74b Allow lastModified to be null
Follow on to ec932321bd
2017-08-06 17:38:36 -07:00
Stephen Tomkinson 89ae3b4fa6 Add logic from JCLOUDS-1261 to the other 2 types of Aws4 signer. 2017-05-10 10:09:22 -07:00
Stephen Tomkinson 15d27da739 Resolves JCLOUDS-1261 by ensuring non-standard port numbers are in the host header that's used for the AWSv4 auth calculations. 2017-05-10 00:00:14 -07:00
Andrew Gaul 2e7de9f850 JCLOUDS-1271: Deprecate signRemoveBlob
URL signing should always use authentication parameters instead of
headers yet no provider supports DELETEs with the former.
2017-04-19 18:08:52 -07:00
Andrew Gaul db00f679ef JCLOUDS-255: Consistently use query string auth
Fixes regressions introduced in
7a110b31ba.
2017-04-19 00:54:33 -07:00
Andrew Gaul 7a110b31ba JCLOUDS-255: Support S3 signed URLs with expiry
Mostly code motion from AWSS3BlobRequestSigner to S3BlobRequestSigner
with some additional cleanups.
2017-04-18 18:51:22 -07:00