jclouds.git
2 years agoJCLOUDS-1552: Do not attempt to parse empty payload (#82)
Tamas Cservenak [Mon, 21 Sep 2020 13:46:25 +0000 (15:46 +0200)] 
JCLOUDS-1552: Do not attempt to parse empty payload (#82)

2 years agoOptimize MultiBlobInputStream.read()
Andrew Gaul [Sat, 25 Jul 2020 07:39:04 +0000 (16:39 +0900)] 
Optimize MultiBlobInputStream.read()

Previously this allocated a byte array for every call.

2 years agoJCLOUDS-1367: Do not open open InputStream in copyBlob
Andrew Gaul [Sat, 25 Jul 2020 07:34:46 +0000 (16:34 +0900)] 
JCLOUDS-1367: Do not open open InputStream in copyBlob

This avoids an unneeded call to ByteStreams2.toByteArrayAndClose in
getBlob for range requests and elides a large memory allocation.

2 years agoStore transient Blob data with ByteArrayPayload
Andrew Gaul [Sat, 11 Jul 2020 19:53:37 +0000 (04:53 +0900)] 
Store transient Blob data with ByteArrayPayload

This avoids a race condition due to sharing the same Closer instance
and unbounded growth of its Closeable Deque.  References
gaul/s3proxy#303.

2 years agoJCLOUDS-1542 follow-up: check whether isAccessible() is already set (#79)
Jean-Noël Rouvignac [Sun, 5 Jul 2020 21:33:07 +0000 (23:33 +0200)] 
JCLOUDS-1542 follow-up: check whether isAccessible() is already set (#79)

AccessibleObject.canAccess() would be much much better,
but this API can only be used from Java 9 onward.

2 years agoJCLOUDS-1542 Java 11 warns of illegal reflective access (#76)
Jean-Noël Rouvignac [Fri, 26 Jun 2020 17:55:32 +0000 (19:55 +0200)] 
JCLOUDS-1542 Java 11 warns of illegal reflective access (#76)

With Java 11, an illegal reflective access is output for the google cloud storage blobstore.

    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by org.jclouds.reflect.Reflection2$1 (file:/.../jclouds-core.jar) to constructor java.lang.String(char[],int,int,java.lang.Void)
    WARNING: Please consider reporting this to the maintainers of org.jclouds.reflect.Reflection2$1
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release

Indeed, JClouds calls `setAccessible(true)` on the package protected constructor
     `java.lang.String(char[],int,int,java.lang.Void)`.
Investigating the code, it turns out it is looking for constructors annotated with any of:
* java.beans.ConstructorProperties
* org.jclouds.json.SerializedNames
* com.google.inject.Inject

But `String` being defined in `java.base` module, it is impossible
     that it will be annotated with any of these annotation.

This commit is complementary to JClouds commit db4e4af931ef19f582b85f02efb93e50f1c5d01c .

 

Reflection2.java:
Do not call `setAccessible(true)` on core java constructors and methods.

 

For reference, here is the stacktrace of this illegal access warning:

    java.lang.String.<init>(String.java:3208)
    java.lang.String.<init>(String.java:251)
    java.util.StringJoiner.compactElts(StringJoiner.java:250)
    java.util.StringJoiner.toString(StringJoiner.java:173)
    jdk.internal.module.IllegalAccessLogger.loudWarning(IllegalAccessLogger.java:339)
    jdk.internal.module.IllegalAccessLogger.log(IllegalAccessLogger.java:288)
    jdk.internal.module.IllegalAccessLogger.log(IllegalAccessLogger.java:261)
    jdk.internal.module.IllegalAccessLogger.logIfOpenedForIllegalAccess(IllegalAccessLogger.java:226)
    java.lang.reflect.AccessibleObject.logIfOpenedForIllegalAccess(AccessibleObject.java:366)
    java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:325)
    java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280)
    java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:189)
    java.lang.reflect.Constructor.setAccessible(Constructor.java:182)
    org.jclouds.reflect.Reflection2$1.load(Reflection2$1.java:157)
    org.jclouds.reflect.Reflection2$1.load(Reflection2$1.java:153)
    com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache$LoadingValueReference.java:3529)
    com.google.common.cache.LocalCache$Segment.loadSync(LocalCache$Segment.java:2278)
    com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache$Segment.java:2155)
    com.google.common.cache.LocalCache$Segment.get(LocalCache$Segment.java:2045)
    com.google.common.cache.LocalCache.get(LocalCache.java:3953)
    com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
    com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache$LocalLoadingCache.java:4960)
    org.jclouds.reflect.Reflection2.get(Reflection2.java:346)
    org.jclouds.reflect.Reflection2.constructors(Reflection2.java:100)
    org.jclouds.json.internal.NamingStrategies$AnnotationConstructorNamingStrategy.getDeserializer(NamingStrategies$AnnotationConstructorNamingStrategy.java:271)
    org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory.create(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:125)
    com.google.gson.Gson.getAdapter(Gson.java:458)
    org.jclouds.json.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)
    org.jclouds.json.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)
    org.jclouds.json.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
    com.google.gson.Gson.getAdapter(Gson.java:458)
    com.google.gson.Gson.toJson(Gson.java:696)
    com.google.gson.Gson.toJson(Gson.java:683)
    com.google.gson.Gson.toJson(Gson.java:638)
    com.google.gson.Gson.toJson(Gson.java:618)
    org.jclouds.json.internal.GsonWrapper.toJson(GsonWrapper.java:65)
    org.jclouds.oauth.v2.functions.ClaimsToAssertion.apply(ClaimsToAssertion.java:59)
    org.jclouds.oauth.v2.functions.ClaimsToAssertion.apply(ClaimsToAssertion.java:43)
    org.jclouds.rest.internal.RestAnnotationProcessor.getParamValue(RestAnnotationProcessor.java:829)
    org.jclouds.rest.internal.RestAnnotationProcessor.getFormParamKeyValues(RestAnnotationProcessor.java:847)
    org.jclouds.rest.internal.RestAnnotationProcessor.addFormParams(RestAnnotationProcessor.java:435)
    org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:258)
    org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:137)
    org.jclouds.rest.internal.InvokeHttpMethod.toCommand(InvokeHttpMethod.java:189)
    org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:85)
    org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74)
    org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45)
    org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
    org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
    com.sun.proxy.$Proxy49.authorize(Unknown Source)
    org.jclouds.oauth.v2.filters.JWTBearerTokenFlow$AuthorizeToken.load(JWTBearerTokenFlow$AuthorizeToken.java:84)
    org.jclouds.oauth.v2.filters.JWTBearerTokenFlow$AuthorizeToken.load(JWTBearerTokenFlow$AuthorizeToken.java:68)
    com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache$LoadingValueReference.java:3529)
    com.google.common.cache.LocalCache$Segment.loadSync(LocalCache$Segment.java:2278)
    com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache$Segment.java:2155)
    com.google.common.cache.LocalCache$Segment.get(LocalCache$Segment.java:2045)
    com.google.common.cache.LocalCache.get(LocalCache.java:3953)
    com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
    com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache$LocalLoadingCache.java:4960)
    com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache$LocalLoadingCache.java:4966)
    org.jclouds.oauth.v2.filters.JWTBearerTokenFlow.filter(JWTBearerTokenFlow.java:99)
    org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:90)
    org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:91)
    org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74)
    org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45)
    org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
    com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86)
    com.sun.proxy.$Proxy54.simpleUpload(Unknown Source)
    org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore.uploadMultipartPart(GoogleCloudStorageBlobStore.java:422)
    org.jclouds.blobstore.internal.BaseBlobStore$BlobUploader.call(BaseBlobStore.java:415)
    org.jclouds.blobstore.internal.BaseBlobStore$BlobUploader.call(BaseBlobStore.java:402)
    com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
    com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
    com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor$Worker.java:628)
    java.lang.Thread.run(Thread.java:834)

2 years agoJCLOUDS-1473 add INTELLIGENT_TIERING enum
Sam Ottenhoff [Wed, 24 Jun 2020 15:29:15 +0000 (11:29 -0400)] 
JCLOUDS-1473 add INTELLIGENT_TIERING enum

2 years agoDisable doclint during Jenkins build
Andrew Gaul [Wed, 24 Jun 2020 23:37:25 +0000 (08:37 +0900)] 
Disable doclint during Jenkins build

Now that we require Java 8 we do not need this workaround.

2 years agoJCLOUDS-1333: JCLOUDS-1334: JCLOUDS-1470: Require Java 8 and Guava 22
Andrew Gaul [Sun, 14 Jun 2020 02:40:04 +0000 (11:40 +0900)] 
JCLOUDS-1333: JCLOUDS-1334: JCLOUDS-1470: Require Java 8 and Guava 22

This allows compatibility with Guava 29.  Also unwind some older
workarounds.

2 years agoJCLOUDS-1491 Jclouds uses a deprecated version of Guava to support Azure storage
Jean-Noël Rouvignac [Tue, 2 Jun 2020 13:29:02 +0000 (15:29 +0200)] 
JCLOUDS-1491 Jclouds uses a deprecated version of Guava to support Azure storage

DnsNameValidator.java uses a deprecated guava APIs in code that is used
 to support Azure cloud storage. When forcing the use of more recent guava
 versions, the code fails with NoSuchFieldError.

However, CharMatcher.JAVA_LETTER_OR_DIGIT has been removed in guava 26.0,
 and CharMatcher.javaLetterOrDigit() should be used instead since guava
 19.0. Note that CharMatcher.javaLetterOrDigit() was immediately
 deprecated in Guava 26.0, and java.lang.Character.isLetterOrDigit(int)
 should be used instead.

This commit replaces the use of this deprecated API by
 java.lang.Character.isLetterOrDigit(int).
 It is no worse than the previous code.

(If I understand correctly, updating the guava version is a challenge due to
dependencies on Apache Karaf anyway)

2 years agoJCLOUDS-912: JCLOUDS-1547: GCS InputStream single-part upload
Andrew Gaul [Sat, 23 May 2020 04:25:24 +0000 (13:25 +0900)] 
JCLOUDS-912: JCLOUDS-1547: GCS InputStream single-part upload

Previously this provider worked around a RestAnnotationProcessor quirk
by using multi-part uploads for InputStream payloads.  Instead work
around the quirk another way which allows a single-part upload.  This
allows inclusion of the Content-MD5 header during object creation.
Backfill tests with both ByteSource and InputStream inputs.

2 years agoJCLOUDS-1546: Support GCS Archive storage class
Andrew Gaul [Mon, 4 May 2020 11:25:53 +0000 (20:25 +0900)] 
JCLOUDS-1546: Support GCS Archive storage class

Also change portable abstraction mapping for Tier.ARCHIVE.

2 years agoJCLOUDS-1543: remove unused imports from FetchBlobMetadataTest.java (#70)
roded [Wed, 22 Apr 2020 07:49:53 +0000 (10:49 +0300)] 
JCLOUDS-1543: remove unused imports from FetchBlobMetadataTest.java (#70)

Co-authored-by: Roded Bahat <roded.bahat@model9.io>
2 years agoFix toolchain setup on jenkins (#68)
Fritz Elfert [Wed, 22 Apr 2020 07:56:36 +0000 (09:56 +0200)] 
Fix toolchain setup on jenkins (#68)

2 years agoJCLOUDS-1543: change FetchBlobMetadata to retain original blob order
Roded Bahat [Tue, 14 Apr 2020 17:17:33 +0000 (20:17 +0300)] 
JCLOUDS-1543: change FetchBlobMetadata to retain original blob order

2 years agoEnable docs in travis build (#69)
Fritz Elfert [Fri, 17 Apr 2020 06:26:50 +0000 (08:26 +0200)] 
Enable docs in travis build (#69)

2 years agoFix javadoc generation on JDK >= 8 (#67)
Fritz Elfert [Thu, 16 Apr 2020 11:23:31 +0000 (13:23 +0200)] 
Fix javadoc generation on JDK >= 8 (#67)

2 years agoHash the content for fs MPU ETag if no xattr.
Timur Alperovich [Wed, 4 Mar 2020 20:14:21 +0000 (12:14 -0800)] 
Hash the content for fs MPU ETag if no xattr.

If there is no extended attribute support in the file system, the blobs
will not have their associated ETags available. In that case, the file
system blob store should rehash the content while producing the combined
blob and return the expected S3-style ETag.

2 years agoJCLOUDS-1541: Add Middle East (Bahrain) region to the AWS EC2 and S3 providers list
ikky888 [Sat, 4 Apr 2020 01:48:01 +0000 (09:48 +0800)] 
JCLOUDS-1541: Add Middle East (Bahrain) region to the AWS EC2 and S3 providers list

2 years agoFix BlobMetadata null size when using ApacheHCHttp module
Xavier BOURGOUIN [Thu, 16 Jan 2020 14:51:58 +0000 (15:51 +0100)] 
Fix BlobMetadata null size when using ApacheHCHttp module

JClouds is apparently exclusively using the Payload object from the HTTP
response to fill in the size of the BlobMetadata (when calling
blobStore.blobMetadata(...) ) - adapt this driver accordingly otherwise
we systematically get null size BlobMetadata out of it.

2 years agoJCLOUDS-1540 - Update Snakeyaml
Colm O hEigeartaigh [Tue, 3 Mar 2020 08:02:04 +0000 (08:02 +0000)] 
JCLOUDS-1540 - Update Snakeyaml

2 years agoJCLOUDS-1533 - Fix upload with SAS token when blob name contains slash (#61)
majaseremet [Mon, 17 Feb 2020 14:28:34 +0000 (15:28 +0100)] 
JCLOUDS-1533 - Fix upload with SAS token when blob name contains slash (#61)

2 years agoJCLOUDS-1538: fix typo in rfc1123SimpleDateFormat (#60)
Ian Springer [Fri, 24 Jan 2020 14:34:50 +0000 (09:34 -0500)] 
JCLOUDS-1538: fix typo in rfc1123SimpleDateFormat (#60)

2 years agoJCLOUDS-1532 - Update SSHJ + JSCH (#57)
Colm O hEigeartaigh [Tue, 3 Dec 2019 16:17:06 +0000 (16:17 +0000)] 
JCLOUDS-1532 - Update SSHJ + JSCH (#57)

2 years agoJCLOUDS-1529: Do not export org.jclouds.json.gson.internal (#56)
Markus Alexander Kuppe [Thu, 28 Nov 2019 09:34:16 +0000 (01:34 -0800)] 
JCLOUDS-1529: Do not export org.jclouds.json.gson.internal (#56)

Do not export packages matching org.jclouds.json.gson.internal*
because it causes a use constraint violation with OSGi between
jclouds-core and jclouds-gson.

https://issues.apache.org/jira/browse/JCLOUDS-1529

2 years agoJCLOUDS-1528 - Use TLS instead of SSL in SSLContext.getInstance (#55)
Colm O hEigeartaigh [Mon, 25 Nov 2019 13:54:48 +0000 (13:54 +0000)] 
JCLOUDS-1528 - Use TLS instead of SSL in SSLContext.getInstance (#55)

2 years agoDowngrade BouncyCastle to 1.60, which works with Oracle JDK 1.7 (#54)
Colm O hEigeartaigh [Mon, 18 Nov 2019 13:54:30 +0000 (13:54 +0000)] 
Downgrade BouncyCastle to 1.60, which works with Oracle JDK 1.7 (#54)

2 years agoJCLOUDS-1526 - Update BouncyCastle dependency (#53)
Colm O hEigeartaigh [Fri, 15 Nov 2019 15:03:40 +0000 (15:03 +0000)] 
JCLOUDS-1526 - Update BouncyCastle dependency (#53)

2 years agoJCLOUDS-1525 - Update xmlbuilder dependency (#52)
Colm O hEigeartaigh [Fri, 15 Nov 2019 15:03:28 +0000 (15:03 +0000)] 
JCLOUDS-1525 - Update xmlbuilder dependency (#52)

2 years agoFix TOCTOU issue when getting blob during removal
Andrew Gaul [Sat, 9 Nov 2019 02:25:24 +0000 (11:25 +0900)] 
Fix TOCTOU issue when getting blob during removal

Fixes gaul/s3proxy#318.

2 years agoFix infinite socket timeout when using ApacheHCHttpCommandExecutorServiceModule ...
Xavier BOURGOUIN [Wed, 23 Oct 2019 09:44:58 +0000 (11:44 +0200)] 
Fix infinite socket timeout when using ApacheHCHttpCommandExecutorServiceModule (#51)

Because the Java type BasicHttpParams wasn't matching the one returned
by provider "newBasicHttpParams" (which is returning a HttpParams type), it was configuring the Apache HTTP client with default settings (including connection and socket timeout), ignoring the ones of JClouds which were must safer in this regard (JCloudsones are currently 60sec for both, while Apache HC ones are -1, so infinite). It also prevented to override those default/infinite timeout settings with JClouds ones.

2 years agoNext development version 2.3.0-SNAPSHOT
Ignasi Barrera [Sun, 13 Oct 2019 08:54:33 +0000 (10:54 +0200)] 
Next development version 2.3.0-SNAPSHOT

2 years agoApache jclouds 2.2.0-rc1 release
Ignasi Barrera [Sun, 13 Oct 2019 08:51:16 +0000 (10:51 +0200)] 
Apache jclouds 2.2.0-rc1 release

2 years agoJCLOUDS-1520: change UntrustedSSLContextSupplier to return the same SSLContext (#49)
roded [Wed, 16 Oct 2019 07:48:47 +0000 (10:48 +0300)] 
JCLOUDS-1520: change UntrustedSSLContextSupplier to return the same SSLContext (#49)

Using the same SSLContext prevents consistent cache misses on the JVM's KeepAliveCache
when attempting to reuse TLS connections.

2 years agoAdd TravisCI file for pull requests (#50)
Ignasi Barrera [Mon, 14 Oct 2019 08:25:06 +0000 (10:25 +0200)] 
Add TravisCI file for pull requests (#50)

* Add TravisCI file for pull requests

* Fix env var config

* Oracle JDK not available in the default travis env

* Add license header

* Do not use Maven toolchains

* Less verbose build

* Further reduce output

2 years agoEtag is not supported in OSX
Ignasi Barrera [Sun, 13 Oct 2019 08:32:30 +0000 (10:32 +0200)] 
Etag is not supported in OSX

2 years agoFix null content-length header on HEAD requests
Xavier BOURGOUIN [Thu, 10 Oct 2019 15:40:29 +0000 (17:40 +0200)] 
Fix null content-length header on HEAD requests

https://issues.apache.org/jira/projects/JCLOUDS/issues/JCLOUDS-1505

3 years agoUpdate README copyright dates
Andrew Phillips [Sun, 1 Sep 2019 17:39:34 +0000 (13:39 -0400)] 
Update README copyright dates

3 years agoAdd OS disk type in template options (#46)
Simone Locci [Wed, 18 Sep 2019 14:34:34 +0000 (16:34 +0200)] 
Add OS disk type in template options (#46)

* Add OS disk type in template options

* Fix review and code style

3 years agoAdd azure disk sku (#45)
Simone Locci [Tue, 17 Sep 2019 15:48:32 +0000 (17:48 +0200)] 
Add azure disk sku (#45)

* Add azure disk SKU

* Add tests

* Fix review adding a disk type enum

* Fix review using storage account type enum

3 years agoJCLOUDS-1512 - Use SecureRandom in Sha512Crypt
Colm O hEigeartaigh [Thu, 22 Aug 2019 09:12:40 +0000 (10:12 +0100)] 
JCLOUDS-1512 - Use SecureRandom in Sha512Crypt

3 years agoJCLOUDS-1510: ParseSax use charset constant for all String creations
Roded Bahat [Mon, 12 Aug 2019 15:46:56 +0000 (18:46 +0300)] 
JCLOUDS-1510: ParseSax use charset constant for all String creations

This commit prevents the convertStreamToStringAndParse method from
failing XML validation on environments in which the default charset is
not compatible with UTF-8.

3 years agoAdd tag support to azure disks
Simone Locci [Tue, 6 Aug 2019 15:34:19 +0000 (17:34 +0200)] 
Add tag support to azure disks

3 years agoJCLOUDS-1509: read AWS response data with the UTF-8 charset explicitly
Roded Bahat [Thu, 8 Aug 2019 12:32:25 +0000 (15:32 +0300)] 
JCLOUDS-1509: read AWS response data with the UTF-8 charset explicitly

AWS response data is encoded in UTF-8. Creating a String from said data
using the JVM's default charset results in incorrect encoding on
environments in which the JVM's default charset is not UTF-8.

https://issues.apache.org/jira/browse/JCLOUDS-1509

3 years agoJCLOUDS-1500: Update gson to 2.8.5 (#29)
Olaf Flebbe [Wed, 3 Jul 2019 07:11:26 +0000 (09:11 +0200)] 
JCLOUDS-1500: Update gson to 2.8.5 (#29)

3 years agoAdd new Azure Dubai region (#40)
Sergi Castro [Mon, 1 Jul 2019 21:16:12 +0000 (23:16 +0200)] 
Add new Azure Dubai region (#40)

3 years agoAdd OSGi exports to jclouds-gson (#38)
Ignasi Barrera [Fri, 21 Jun 2019 08:38:36 +0000 (10:38 +0200)] 
Add OSGi exports to jclouds-gson (#38)

* Add OSGi exports to jclouds-gson

* Proper generation of OSGi directives in the manifest file

* Fixes

* Remove commented bits

3 years agoDo not tie duplicate class finder to a specific version of jclouds
Ignasi Barrera [Thu, 20 Jun 2019 09:25:12 +0000 (11:25 +0200)] 
Do not tie duplicate class finder to a specific version of jclouds

3 years agoPlugin config in pluginManagement for proper reuse in child projects (#39)
Ignasi Barrera [Tue, 18 Jun 2019 10:08:59 +0000 (12:08 +0200)] 
Plugin config in pluginManagement for proper reuse in child projects (#39)

3 years agoJCLOUDS-1166: Relocate the gson internal packge to be able to keep using it (#35)
Ignasi Barrera [Mon, 17 Jun 2019 15:43:29 +0000 (17:43 +0200)] 
JCLOUDS-1166: Relocate the gson internal packge to be able to keep using it (#35)

* JCLOUDS-1166: Relocate the gson internal packge to be able to keep using it

* Fixes

* Fix import order and shaded jar

* More fixes

* Proper dependency configuration

* Fix typos

* Bring back duplicate exclusions

3 years agoProper exception to catch for methods with unchecked exception
Ignasi Barrera [Sat, 15 Jun 2019 08:45:04 +0000 (10:45 +0200)] 
Proper exception to catch for methods with unchecked exception

3 years agoFix type of location coordinates (#36)
Ignasi Barrera [Sat, 15 Jun 2019 07:01:13 +0000 (09:01 +0200)] 
Fix type of location coordinates (#36)

3 years agoJCLOUDS-1428: Support for SAS token based Authentication for Azure Blob Storage
Aliaksandra Kharushka [Mon, 27 May 2019 13:05:12 +0000 (15:05 +0200)] 
JCLOUDS-1428: Support for SAS token based Authentication for Azure Blob Storage

removed ACL check for SAS Auth AzureBlobs

3 years agoImplements listAll operation for VirtualNetworkAPI (#33)
Daniel Estévez [Wed, 22 May 2019 07:12:58 +0000 (03:12 -0400)] 
Implements listAll operation for VirtualNetworkAPI (#33)

* Implements listAll operation for VirtualNetworkAPI

Fixes test with proper method call

* Fixes resourcegroup param is now nullable

3 years agoConvert a handful of HTTP URLs to HTTPS
Andrew Gaul [Tue, 21 May 2019 11:52:22 +0000 (20:52 +0900)] 
Convert a handful of HTTP URLs to HTTPS

3 years agoImplements listAll method for LoadBalancersAPI (#32)
Daniel Estévez [Tue, 21 May 2019 09:49:11 +0000 (05:49 -0400)] 
Implements listAll method for LoadBalancersAPI (#32)

3 years agoImplements listAll method in NetworkSecurityGroupApi (#31)
Daniel Estévez [Tue, 21 May 2019 09:48:07 +0000 (05:48 -0400)] 
Implements listAll method in NetworkSecurityGroupApi (#31)

* Implements listAll method in NetworkSecurityGroupApi

* Adds Mock and Live tests for new method

3 years agoAdds methods listAll and listByLocation to VirtualMachineAPI (#21)
Daniel Estévez [Fri, 17 May 2019 07:41:38 +0000 (03:41 -0400)] 
Adds methods listAll and listByLocation to VirtualMachineAPI (#21)

* Adds methods listAll and listByLocation to VirtualMachineAPI

Adds Mock tests fixes

* Minor comments

* Overrides test to avoid case sensitive comparation

* Adds comment to justify overriding base test method

* Enables list by location to improve performance in listNodes abstraction

* Returns all available VMs if no regions are specified

3 years agoChecks provisioning state in Rule resource instead of Group (#30)
Daniel Estévez [Fri, 17 May 2019 06:59:01 +0000 (02:59 -0400)] 
Checks provisioning state in Rule resource instead of Group (#30)

* Checks provisioning state in Rule resource instead of Group

* comments by @nacx to proper check and delete rules

* Fixes log message deleting rule

3 years agoAdd ARM architecture to ec2 image and the related instance types
Sergi Castro [Sat, 11 May 2019 08:32:46 +0000 (10:32 +0200)] 
Add ARM architecture to ec2 image and the related instance types

3 years agoJCLOUDS-1497: Fix checkstyle-suppressions for jcloud-labs (#27)
Olaf Flebbe [Tue, 7 May 2019 09:49:54 +0000 (11:49 +0200)] 
JCLOUDS-1497: Fix checkstyle-suppressions for jcloud-labs (#27)

* Fix NoWhitespaceBefore Checkstyle Violation

* checkstyle updates: remove suppressionsfilter from checkstyle.xml

* suppressions now done in maven-checkstyle-plugin

3 years agoJCLOUDS-1499: Disable sonatype snapshot repository for plugins (#28)
Olaf Flebbe [Tue, 7 May 2019 08:21:03 +0000 (10:21 +0200)] 
JCLOUDS-1499: Disable sonatype snapshot repository for plugins (#28)

3 years agoJCLOUDS-847: Poor upload performance for putBlob
Dori Polotsky [Mon, 22 Apr 2019 19:55:09 +0000 (22:55 +0300)] 
JCLOUDS-847: Poor upload performance for putBlob

This change improves the performance of writing to sockets with the
default Java URL connection HTTP client, by enlarging the buffer used
for socket writes from an implicit hard-coded 4KB / 8KB buffer to a
configurable 32KB buffer.

The buffer size is now controlled by the following property with the
following default value:

jclouds.output-socket-buffer-size: 32768

The implementation is based on a variant of ByteStreams.copy (written as
ByteStreams2.copy) which accepts the buffer size as an argument, unlike
the original Guava code that uses a hard-coded size.

The change was done directly within the loop that copies the input
stream to the output stream, and not by wrapping a BufferedOutputStream
around the existing output stream, in order to avoid copying the payload
twice.

On some platforms this change can improve both the putBlob throughput
and the total CPU consumption.

3 years agoJCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility (#25)
Olaf Flebbe [Wed, 24 Apr 2019 14:12:45 +0000 (16:12 +0200)] 
JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility (#25)

* JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility

* increase maven-compiler-plugin version

* A space change to trigger jenkins again

* Another space change to trigger jenkins again

3 years agoJCLOUDS-1495: maven plugins are not correctly referred to (#24)
Olaf Flebbe [Thu, 11 Apr 2019 02:54:09 +0000 (04:54 +0200)] 
JCLOUDS-1495: maven plugins are not correctly referred to (#24)

3 years agoJCLOUDS-1494: Add S3 Deep Archive tier
Andrew Gaul [Sat, 6 Apr 2019 09:42:03 +0000 (18:42 +0900)] 
JCLOUDS-1494: Add S3 Deep Archive tier

Also test Glacier tier now that Amazon allows creating objects with
this storage class.

3 years agoAdds new Azure regions for South Africa
Dani Estevez [Fri, 15 Mar 2019 18:47:35 +0000 (14:47 -0400)] 
Adds new Azure regions for South Africa

3 years agoJCLOUDS-1428 - Support for SAS token based Authentication for Azure Blob Storage...
d065488 [Tue, 19 Mar 2019 11:26:41 +0000 (12:26 +0100)] 
JCLOUDS-1428 - Support for SAS token based Authentication for Azure Blob Storage - removed sp and se tokens from the check

3 years agoAdds EU North 1 region (Stockholm)
Dani Estevez [Wed, 13 Mar 2019 21:01:59 +0000 (17:01 -0400)] 
Adds EU North 1 region (Stockholm)

3 years agoAdds China North West Region (Ningxia)
Dani Estevez [Wed, 13 Mar 2019 20:37:49 +0000 (16:37 -0400)] 
Adds China North West Region (Ningxia)

3 years ago[JCLOUDS-1428] Support for SAS token based Authentication for Azure Blob Storage...
Aliaksandra Kharushka [Wed, 27 Feb 2019 11:20:22 +0000 (12:20 +0100)] 
[JCLOUDS-1428] Support for SAS token based Authentication for Azure Blob Storage (#1270)

3 years agoFix always-true date comparison
Andrew Gaul [Sat, 23 Feb 2019 07:37:07 +0000 (16:37 +0900)] 
Fix always-true date comparison

Found via error-prone 2.3.3.

3 years agoMake interfaces with only statics into classes
Andrew Gaul [Sat, 23 Feb 2019 07:34:11 +0000 (16:34 +0900)] 
Make interfaces with only statics into classes

This prevents instantiation.  Found via error-prone 2.3.3.

3 years agoCorrect uses of checkNotNull
Andrew Gaul [Sat, 23 Feb 2019 07:32:51 +0000 (16:32 +0900)] 
Correct uses of checkNotNull

These should provide a descriptive second argument, not the same as
the first argument which is null in the failure case.  This also found
a logic error in CreateVolumeResponseHandler.

3 years agoJCLOUDS-1489: expect S3 put archive to succeed
Andrew Gaul [Fri, 8 Feb 2019 04:01:48 +0000 (20:01 -0800)] 
JCLOUDS-1489: expect S3 put archive to succeed

3 years agoAdd test for aborting a single part MPU
Andrew Gaul [Thu, 7 Feb 2019 01:11:57 +0000 (17:11 -0800)] 
Add test for aborting a single part MPU

Also tighten up checks to ensure there is no litter, mostly for
transient and filesystem blobstores.

3 years agoUpgrade to modernizer-maven-plugin 1.8.0
Andrew Gaul [Fri, 1 Feb 2019 19:51:30 +0000 (11:51 -0800)] 
Upgrade to modernizer-maven-plugin 1.8.0

Notably this adds support for inline suppressions.  Release notes:

https://github.com/gaul/modernizer-maven-plugin/releases

3 years agoRevert "Disable Javadoc lint"
Andrew Gaul [Sat, 2 Feb 2019 19:00:40 +0000 (11:00 -0800)] 
Revert "Disable Javadoc lint"

This reverts commit 338f052579e3326fd25d71fd2493e08df460d808.

3 years agoDisable Javadoc lint
Andrew Gaul [Sat, 2 Feb 2019 18:08:41 +0000 (10:08 -0800)] 
Disable Javadoc lint

mvn site running on Java 8 complains about thousands of missing
@return tags among other things.

3 years agoRemove JavaScript from footer
Andrew Gaul [Sat, 2 Feb 2019 07:17:58 +0000 (23:17 -0800)] 
Remove JavaScript from footer

Addresses an error while building Javadoc.

3 years agoCorrect some Checkstyle violations
Andrew Gaul [Fri, 1 Feb 2019 16:57:57 +0000 (08:57 -0800)] 
Correct some Checkstyle violations

Follow-on to 13f32b28c90f4dda7ea21c95380d8c0879ba91fe.

3 years agoLazily open InputStream during complete MPU
Andrew Gaul [Tue, 29 Jan 2019 05:45:20 +0000 (21:45 -0800)] 
Lazily open InputStream during complete MPU

Previously the filesystem provider could exhaust file descriptors by
eagerly opening up to 10,000 parts.  This partially undoes
JCLOUDS-1367.

3 years agoJCLOUDS-1371: JCLOUDS-1488: list optimize prefix
Andrew Gaul [Fri, 25 Jan 2019 19:42:13 +0000 (11:42 -0800)] 
JCLOUDS-1371: JCLOUDS-1488: list optimize prefix

Previously getBlobKeysInsideContainer returned all keys and filtered
in LocalBlobStore.  Now getBlobKeysInsideContainer filters via prefix
which can dramatically decrease the number of keys returned,
especially for the filesystem provider.  Further optimizations are
possible for delimiter.

3 years agoUpdate scm to gitbox
Jean-Baptiste Onofré [Sun, 6 Jan 2019 06:54:38 +0000 (07:54 +0100)] 
Update scm to gitbox

3 years agoJCLOUDS-1366: JCLOUDS-1472: Fix InputStream MPU
Andrew Gaul [Fri, 4 Jan 2019 22:56:29 +0000 (14:56 -0800)] 
JCLOUDS-1366: JCLOUDS-1472: Fix InputStream MPU

Previously jclouds attempted to slice non-repeatable InputStream
Payloads in order to upload sequentially.  This never worked due to
mutating the single stream via skip and close.  Also backfill test
which spuriously succeeded.

3 years agoFix for FileSystem blob store clearContainer with options
Joe Meiring [Fri, 16 Nov 2018 20:33:25 +0000 (14:33 -0600)] 
Fix for FileSystem blob store clearContainer with options

3 years agoAdd error handling for missing xattr
Andrew Gaul [Fri, 4 Jan 2019 19:40:10 +0000 (11:40 -0800)] 
Add error handling for missing xattr

Previously this prevented listing inside a directory when using file
systems like HFS and NFS.  References gaul/s3proxy#279.

3 years agoJCLOUDS-1479: populate container cache on create
duc [Wed, 2 Jan 2019 08:45:11 +0000 (15:45 +0700)] 
JCLOUDS-1479: populate container cache on create

3 years agoJCLOUDS-1452: Add missing b2 test field
Andrew Gaul [Tue, 1 Jan 2019 19:10:59 +0000 (11:10 -0800)] 
JCLOUDS-1452: Add missing b2 test field

Fixes regression from 9524383e49c9d202d5cc81979337855dc056f41e.

3 years agoJCLOUDS-1452: Add new v2 fields
Andrew Gaul [Fri, 28 Sep 2018 20:55:10 +0000 (13:55 -0700)] 
JCLOUDS-1452: Add new v2 fields

Some of these only give consistency with similar requests.

3 years agoJCLOUDS-1452: Remove Authorization.minimumPartSize
Andrew Gaul [Fri, 28 Sep 2018 20:56:16 +0000 (13:56 -0700)] 
JCLOUDS-1452: Remove Authorization.minimumPartSize

Superseded by absoluteMinimumPartSize and recommendedPartSize.

3 years agoJCLOUDS-1452: Replace size with contentLength
Andrew Gaul [Fri, 28 Sep 2018 19:04:42 +0000 (12:04 -0700)] 
JCLOUDS-1452: Replace size with contentLength

Tracking B2 v2 API changes.

3 years agoJCLOUDS-1452: Switch to B2 v2 API
Andrew Gaul [Fri, 28 Sep 2018 15:58:38 +0000 (08:58 -0700)] 
JCLOUDS-1452: Switch to B2 v2 API

Some cleanups but no major changes:

https://www.backblaze.com/blog/backblaze-b2-api-version-2-beta-is-now-open/

3 years ago[JCLOUDS-1474] Adds SKU field to both LB and PublicIP
Dani Estevez [Fri, 30 Nov 2018 21:23:33 +0000 (16:23 -0500)] 
[JCLOUDS-1474] Adds SKU field to both LB and PublicIP

Changes order in parameters to keep properties as last parameter
Removes wrong @Nullable parameters

Moves LoadBalancer and PublicAddress to new package with SKU as inner
class

Moves LoadBalancerSKU inside LoadBalancer. Creates new loadbalancer package

Refactors PublicAddress domain objects

Extracts SKU from LoadBalancer

LoadBalancer SKU as inner class

PublicIPAddress SKU as inner class

Reorder parameters sku and properties

3 years agoFix azure listNodes
Simone Locci [Thu, 20 Dec 2018 13:30:50 +0000 (14:30 +0100)] 
Fix azure listNodes

3 years agoEnable B2 testCopy* tests
Andrew Gaul [Wed, 19 Dec 2018 18:16:20 +0000 (10:16 -0800)] 
Enable B2 testCopy* tests

Backblaze has changed something such that these now pass.

3 years agoCorrect B2 SkipException for testPutObjectStream
Andrew Gaul [Wed, 19 Dec 2018 11:22:16 +0000 (03:22 -0800)] 
Correct B2 SkipException for testPutObjectStream

3 years agoJCLOUDS-1477: Upload single part for small B2 MPU
Andrew Gaul [Wed, 19 Dec 2018 06:09:35 +0000 (22:09 -0800)] 
JCLOUDS-1477: Upload single part for small B2 MPU

B2 requires two parts to use multi-part upload but jclouds will
attempt to use one with small uploads.  Instead it should fall back to
single-part when the content length is small.

3 years ago[JCLOUDS-1468] Adding missing options for the ListUsageRecords API call.
John McDonnell [Fri, 23 Nov 2018 22:20:29 +0000 (22:20 +0000)] 
[JCLOUDS-1468] Adding missing options for the ListUsageRecords API call.

3 years agoJCLOUDS-1467
kraza [Thu, 29 Nov 2018 02:31:36 +0000 (21:31 -0500)] 
JCLOUDS-1467
Added support for c5d & m5d AWS nodes.

JCLOUDS-1467
Updated the SSD drive information.