This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit b4de77a1e58708d380f8d7b669fd75f93970125c Author: Matthieu Baechler <matth...@apache.org> AuthorDate: Fri Apr 24 12:14:20 2020 +0200 JAMES-3153 use reactor.Retry insteaf of reactor-extra version --- server/blob/blob-objectstorage/pom.xml | 4 ---- .../objectstorage/StreamCompatibleBlobPutter.java | 19 +++++++++---------- .../blob/objectstorage/aws/AwsS3ObjectStorage.java | 11 +++++------ 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/server/blob/blob-objectstorage/pom.xml b/server/blob/blob-objectstorage/pom.xml index 4d2f297..5729d35 100644 --- a/server/blob/blob-objectstorage/pom.xml +++ b/server/blob/blob-objectstorage/pom.xml @@ -87,10 +87,6 @@ <artifactId>guava</artifactId> </dependency> <dependency> - <groupId>io.projectreactor.addons</groupId> - <artifactId>reactor-extra</artifactId> - </dependency> - <dependency> <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-swift</artifactId> <version>${jclouds.version}</version> diff --git a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/StreamCompatibleBlobPutter.java b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/StreamCompatibleBlobPutter.java index 46d1d2e..35da9c8 100644 --- a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/StreamCompatibleBlobPutter.java +++ b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/StreamCompatibleBlobPutter.java @@ -34,7 +34,7 @@ import org.jclouds.http.HttpResponseException; import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; -import reactor.retry.Retry; +import reactor.util.retry.Retry; public class StreamCompatibleBlobPutter implements BlobPutter { @@ -54,15 +54,14 @@ public class StreamCompatibleBlobPutter implements BlobPutter { public Mono<Void> putDirectly(ObjectStorageBucketName bucketName, Blob blob) { return Mono.fromRunnable(() -> blobStore.putBlob(bucketName.asString(), blob)) .publishOn(Schedulers.elastic()) - .retryWhen(Retry.onlyIf(retryContext -> needToCreateBucket(retryContext.exception(), bucketName)) - .exponentialBackoff(FIRST_BACK_OFF, FOREVER) - .withBackoffScheduler(Schedulers.elastic()) - .retryMax(MAX_RETRIES) - .doOnRetry(retryContext -> blobStore.createContainerInLocation(DEFAULT_LOCATION, bucketName.asString()))) - .retryWhen(Retry.onlyIf(RetryContext -> isPutMethod(RetryContext.exception())) - .withBackoffScheduler(Schedulers.elastic()) - .exponentialBackoff(FIRST_BACK_OFF, FOREVER) - .retryMax(RETRY_ONE_LAST_TIME_ON_CONCURRENT_SAVING)) + .retryWhen(Retry + .backoff(MAX_RETRIES, FIRST_BACK_OFF) + .filter(throwable -> needToCreateBucket(throwable, bucketName)) + .doBeforeRetry(retryContext -> blobStore.createContainerInLocation(DEFAULT_LOCATION, bucketName.asString()))) + .retryWhen(Retry + .backoff(RETRY_ONE_LAST_TIME_ON_CONCURRENT_SAVING, FIRST_BACK_OFF) + .filter(this::isPutMethod) + .scheduler(Schedulers.elastic())) .then(); } diff --git a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/aws/AwsS3ObjectStorage.java b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/aws/AwsS3ObjectStorage.java index fa58add..8cf22da 100644 --- a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/aws/AwsS3ObjectStorage.java +++ b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/aws/AwsS3ObjectStorage.java @@ -65,7 +65,7 @@ import com.google.inject.Module; import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; -import reactor.retry.Retry; +import reactor.util.retry.Retry; public class AwsS3ObjectStorage { @@ -180,11 +180,10 @@ public class AwsS3ObjectStorage { return Mono.<Void>fromRunnable(puttingAttempt) .publishOn(Schedulers.elastic()) .retryWhen(Retry - .<Void>onlyIf(retryContext -> needToCreateBucket(retryContext.exception())) - .exponentialBackoff(FIRST_BACK_OFF, FOREVER) - .withBackoffScheduler(Schedulers.elastic()) - .retryMax(MAX_RETRY_ON_EXCEPTION) - .doOnRetry(retryContext -> s3Client.createBucket(bucketName.asString()))); + .backoff(MAX_RETRY_ON_EXCEPTION, FIRST_BACK_OFF) + .filter(throwable -> needToCreateBucket(throwable)) + .doBeforeRetry(retryContext -> s3Client.createBucket(bucketName.asString())) + .scheduler(Schedulers.elastic())); } private void uploadByFile(ObjectStorageBucketName bucketName, BlobId blobId, File file) throws InterruptedException { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org