JCLOUDS-40 unasync Fallback
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/b9525a08 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/b9525a08 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/b9525a08 Branch: refs/heads/use-agentproxy-008 Commit: b9525a087730642dd116cfa1d394f4afaef28fe5 Parents: 0a236f5 Author: Adrian Cole <[email protected]> Authored: Sun Oct 5 22:55:07 2014 -0700 Committer: Adrian Cole <[email protected]> Committed: Mon Oct 6 13:14:59 2014 -0700 ---------------------------------------------------------------------- .../fallbacks/EndpointIfAlreadyExists.java | 7 --- .../fallbacks/TrueOn404FalseOnPathNotEmpty.java | 8 --- .../fallbacks/EndpointIfAlreadyExistsTest.java | 11 ++-- .../functions/CloudStackFallbacks.java | 8 --- .../main/java/org/jclouds/ec2/EC2Fallbacks.java | 7 --- .../keystone/v2_0/KeystoneFallbacks.java | 9 +-- .../main/java/org/jclouds/s3/S3Fallbacks.java | 8 --- ...ByYouOrOperationAbortedWhenBucketExists.java | 8 --- .../java/org/jclouds/s3/S3ClientMockTest.java | 1 - ...uOrOperationAbortedWhenBucketExistsTest.java | 17 +++--- .../jclouds/openstack/swift/SwiftFallbacks.java | 8 --- .../jclouds/blobstore/BlobStoreFallbacks.java | 33 ----------- core/src/main/java/org/jclouds/Fallback.java | 4 +- core/src/main/java/org/jclouds/Fallbacks.java | 58 -------------------- .../fallbacks/HeaderToRetryAfterException.java | 14 ++--- .../fallbacks/MapHttp4xxCodesToExceptions.java | 11 +--- .../fallbacks/PropagateIfRetryAfter.java | 12 ++-- .../HeaderToRetryAfterExceptionTest.java | 47 +++++++--------- .../MapHttp4xxCodesToExceptionsTest.java | 14 ++--- .../org/jclouds/http/IntegrationTestClient.java | 7 --- .../internal/RestAnnotationProcessorTest.java | 1 - .../jclouds/azureblob/AzureBlobFallbacks.java | 8 --- .../org/jclouds/dynect/v3/DynECTFallbacks.java | 8 --- 23 files changed, 56 insertions(+), 253 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java b/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java index 4cae37c..041a6ed 100644 --- a/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java +++ b/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java @@ -18,7 +18,6 @@ package org.jclouds.atmos.fallbacks; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import java.net.URI; @@ -29,18 +28,12 @@ import org.jclouds.javax.annotation.Nullable; import org.jclouds.rest.InvocationContext; import com.google.common.annotations.VisibleForTesting; -import com.google.common.util.concurrent.ListenableFuture; public class EndpointIfAlreadyExists implements Fallback<URI>, InvocationContext<EndpointIfAlreadyExists> { private URI endpoint; @Override - public ListenableFuture<URI> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public URI createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof KeyAlreadyExistsException) { return endpoint; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java b/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java index 18dda1e..d30be6d 100644 --- a/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java +++ b/apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java @@ -17,7 +17,6 @@ package org.jclouds.atmos.fallbacks; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; import org.jclouds.Fallback; @@ -25,15 +24,8 @@ import org.jclouds.atmos.AtmosResponseException; import org.jclouds.atmos.reference.AtmosErrorCode; import org.jclouds.http.HttpUtils; -import com.google.common.util.concurrent.ListenableFuture; - public final class TrueOn404FalseOnPathNotEmpty implements Fallback<Boolean> { @Override - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Boolean createOrPropagate(Throwable t) throws Exception { if (HttpUtils.contains404(t)) { return true; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java b/apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java index d6c4216..6a41351 100644 --- a/apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java +++ b/apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java @@ -16,7 +16,6 @@ */ package org.jclouds.atmos.fallbacks; -import static com.google.common.util.concurrent.Futures.getUnchecked; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNull; @@ -30,23 +29,23 @@ public class EndpointIfAlreadyExistsTest { @Test public void testFoundIsNullWhenEndpointNotSet() throws Exception { - assertNull(getUnchecked(new EndpointIfAlreadyExists().create(new KeyAlreadyExistsException()))); + assertNull(new EndpointIfAlreadyExists().createOrPropagate(new KeyAlreadyExistsException())); } @Test public void testFoundIsEndpointWhenSet() throws Exception { assertEquals( - getUnchecked(new EndpointIfAlreadyExists().setEndpoint(URI.create("foo")).create( - new KeyAlreadyExistsException())), URI.create("foo")); + new EndpointIfAlreadyExists().setEndpoint(URI.create("foo")).createOrPropagate( + new KeyAlreadyExistsException()), URI.create("foo")); } @Test(expectedExceptions = RuntimeException.class) public void testNotFoundPropagates() throws Exception { - new EndpointIfAlreadyExists().create(new RuntimeException()); + new EndpointIfAlreadyExists().createOrPropagate(new RuntimeException()); } @Test(expectedExceptions = NullPointerException.class) public void testNullIsBad() throws Exception { - new EndpointIfAlreadyExists().create(null); + new EndpointIfAlreadyExists().createOrPropagate(null); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CloudStackFallbacks.java ---------------------------------------------------------------------- diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CloudStackFallbacks.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CloudStackFallbacks.java index 50185ed..c2b5ec8 100644 --- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CloudStackFallbacks.java +++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CloudStackFallbacks.java @@ -17,14 +17,11 @@ package org.jclouds.cloudstack.functions; import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.Fallbacks.valOnNotFoundOr404; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; import org.jclouds.Fallback; -import com.google.common.util.concurrent.ListenableFuture; - public final class CloudStackFallbacks { private CloudStackFallbacks() { } @@ -35,11 +32,6 @@ public final class CloudStackFallbacks { */ public static final class VoidOnNotFoundOr404OrUnableToFindAccountOwner implements Fallback<Void> { @Override - public ListenableFuture<Void> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Void createOrPropagate(Throwable t) throws Exception { IllegalStateException e = getFirstThrowableOfType(checkNotNull(t, "throwable"), IllegalStateException.class); if (e != null && e.getMessage().indexOf("Unable to find account owner for") != -1) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/ec2/src/main/java/org/jclouds/ec2/EC2Fallbacks.java ---------------------------------------------------------------------- diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/EC2Fallbacks.java b/apis/ec2/src/main/java/org/jclouds/ec2/EC2Fallbacks.java index 7cb4675..c16f5af 100644 --- a/apis/ec2/src/main/java/org/jclouds/ec2/EC2Fallbacks.java +++ b/apis/ec2/src/main/java/org/jclouds/ec2/EC2Fallbacks.java @@ -18,14 +18,12 @@ package org.jclouds.ec2; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import org.jclouds.Fallback; import org.jclouds.aws.AWSResponseException; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.ListenableFuture; public final class EC2Fallbacks { private EC2Fallbacks() { @@ -33,11 +31,6 @@ public final class EC2Fallbacks { public static final class VoidOnVolumeAvailable implements Fallback<Void> { @Override - public ListenableFuture<Void> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Void createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof AWSResponseException) { AWSResponseException e = AWSResponseException.class.cast(t); http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/KeystoneFallbacks.java ---------------------------------------------------------------------- diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/KeystoneFallbacks.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/KeystoneFallbacks.java index 409022f..f5cf9ea 100644 --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/KeystoneFallbacks.java +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/KeystoneFallbacks.java @@ -16,15 +16,13 @@ */ package org.jclouds.openstack.keystone.v2_0; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.Fallbacks.valOnNotFoundOr404; import org.jclouds.Fallback; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import org.jclouds.openstack.v2_0.domain.Link; +import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.ListenableFuture; public final class KeystoneFallbacks { private KeystoneFallbacks() { @@ -36,11 +34,6 @@ public final class KeystoneFallbacks { }; @Override - public ListenableFuture<PaginatedCollection<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public PaginatedCollection<Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(EMPTY, t); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/s3/src/main/java/org/jclouds/s3/S3Fallbacks.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/main/java/org/jclouds/s3/S3Fallbacks.java b/apis/s3/src/main/java/org/jclouds/s3/S3Fallbacks.java index 73edb0e..6795c91 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/S3Fallbacks.java +++ b/apis/s3/src/main/java/org/jclouds/s3/S3Fallbacks.java @@ -19,26 +19,18 @@ package org.jclouds.s3; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.http.HttpUtils.returnValueOnCodeOrNull; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; import org.jclouds.Fallback; import org.jclouds.blobstore.ContainerNotFoundException; -import com.google.common.util.concurrent.ListenableFuture; - public final class S3Fallbacks { private S3Fallbacks() { } public static final class TrueOn404OrNotFoundFalseOnIllegalState implements Fallback<Boolean> { @Override - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Boolean createOrPropagate(Throwable t) throws Exception { if (getFirstThrowableOfType(checkNotNull(t, "throwable"), IllegalStateException.class) != null) return false; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/s3/src/main/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/main/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists.java b/apis/s3/src/main/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists.java index 998fe33..4b58ffa 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists.java +++ b/apis/s3/src/main/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists.java @@ -18,7 +18,6 @@ package org.jclouds.s3.fallbacks; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.s3.util.S3Utils.getBucketName; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; @@ -31,8 +30,6 @@ import org.jclouds.javax.annotation.Nullable; import org.jclouds.rest.InvocationContext; import org.jclouds.s3.S3Client; -import com.google.common.util.concurrent.ListenableFuture; - public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists implements Fallback<Boolean>, InvocationContext<FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists> { @@ -45,11 +42,6 @@ public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists im } @Override - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Boolean createOrPropagate(Throwable t) throws Exception { AWSResponseException exception = getFirstThrowableOfType(checkNotNull(t, "throwable"), AWSResponseException.class); if (exception != null && exception.getError() != null && exception.getError().getCode() != null) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/s3/src/test/java/org/jclouds/s3/S3ClientMockTest.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/test/java/org/jclouds/s3/S3ClientMockTest.java b/apis/s3/src/test/java/org/jclouds/s3/S3ClientMockTest.java index 097d49d..5cb2db5 100644 --- a/apis/s3/src/test/java/org/jclouds/s3/S3ClientMockTest.java +++ b/apis/s3/src/test/java/org/jclouds/s3/S3ClientMockTest.java @@ -21,7 +21,6 @@ import static com.google.common.net.HttpHeaders.ETAG; import static com.google.common.net.HttpHeaders.EXPECT; import static com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService; import static org.jclouds.Constants.PROPERTY_MAX_RETRIES; -import static org.jclouds.Constants.PROPERTY_SO_TIMEOUT; import static org.testng.Assert.assertEquals; import java.io.IOException; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/s3/src/test/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTest.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/test/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTest.java b/apis/s3/src/test/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTest.java index 7c31a39..9e3989e 100644 --- a/apis/s3/src/test/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTest.java +++ b/apis/s3/src/test/java/org/jclouds/s3/fallbacks/FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ package org.jclouds.s3.fallbacks; -import static com.google.common.util.concurrent.Futures.getUnchecked; + import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; @@ -55,8 +55,8 @@ public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTes replay(client); Exception e = getErrorWithCode("BucketAlreadyOwnedByYou"); - assertFalse(getUnchecked(new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).setContext( - putBucket).create(e))); + assertFalse(new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).setContext( + putBucket).createOrPropagate(e)); verify(client); } @@ -66,8 +66,8 @@ public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTes expect(client.bucketExists("bucket")).andReturn(true); replay(client); Exception e = getErrorWithCode("OperationAborted"); - assertFalse(getUnchecked(new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).setContext( - putBucket).create(e))); + assertFalse(new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).setContext( + putBucket).createOrPropagate(e)); verify(client); } @@ -77,7 +77,8 @@ public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTes expect(client.bucketExists("bucket")).andReturn(false); replay(client); Exception e = getErrorWithCode("OperationAborted"); - new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).setContext(putBucket).create(e); + new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).setContext(putBucket) + .createOrPropagate(e); } @Test(expectedExceptions = IllegalStateException.class) @@ -86,7 +87,7 @@ public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTes replay(client); Exception e = new IllegalStateException(); - new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).create(e); + new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).createOrPropagate(e); } @Test(expectedExceptions = AWSResponseException.class) @@ -94,7 +95,7 @@ public class FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExistsTes S3Client client = createMock(S3Client.class); replay(client); Exception e = getErrorWithCode("blah"); - new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).create(e); + new FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists(client).createOrPropagate(e); } private Exception getErrorWithCode(String code) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/apis/swift/src/main/java/org/jclouds/openstack/swift/SwiftFallbacks.java ---------------------------------------------------------------------- diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/SwiftFallbacks.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/SwiftFallbacks.java index daec13a..44ca048 100644 --- a/apis/swift/src/main/java/org/jclouds/openstack/swift/SwiftFallbacks.java +++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/SwiftFallbacks.java @@ -19,25 +19,17 @@ package org.jclouds.openstack.swift; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.http.HttpUtils.contains404; import static org.jclouds.http.HttpUtils.returnValueOnCodeOrNull; import org.jclouds.Fallback; -import com.google.common.util.concurrent.ListenableFuture; - public final class SwiftFallbacks { private SwiftFallbacks() { } public static final class TrueOn404FalseOn409 implements Fallback<Boolean> { @Override - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Boolean createOrPropagate(Throwable t) throws Exception { if (contains404(checkNotNull(t, "throwable"))) return true; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/blobstore/src/main/java/org/jclouds/blobstore/BlobStoreFallbacks.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/BlobStoreFallbacks.java b/blobstore/src/main/java/org/jclouds/blobstore/BlobStoreFallbacks.java index 5434545..42a11ae 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/BlobStoreFallbacks.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/BlobStoreFallbacks.java @@ -18,48 +18,31 @@ package org.jclouds.blobstore; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.http.HttpUtils.contains404; import org.jclouds.Fallback; -import com.google.common.util.concurrent.ListenableFuture; - public final class BlobStoreFallbacks { private BlobStoreFallbacks() { } public static final class ThrowContainerNotFoundOn404 implements Fallback<Object> { - public ListenableFuture<Object> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Object createOrPropagate(Throwable t) throws Exception { if (contains404(checkNotNull(t, "throwable"))) throw new ContainerNotFoundException(t); throw propagate(t); } - } public static final class ThrowKeyNotFoundOn404 implements Fallback<Object> { - public ListenableFuture<Object> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Object createOrPropagate(Throwable t) throws Exception { if (contains404(checkNotNull(t, "throwable"))) throw new KeyNotFoundException(t); throw propagate(t); } - } public static final class FalseOnContainerNotFound implements Fallback<Boolean> { - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Boolean createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof ContainerNotFoundException) { return false; @@ -69,10 +52,6 @@ public final class BlobStoreFallbacks { } public static final class FalseOnKeyNotFound implements Fallback<Boolean> { - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Boolean createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof KeyNotFoundException) { return false; @@ -82,10 +61,6 @@ public final class BlobStoreFallbacks { } public static final class NullOnContainerNotFound implements Fallback<Object> { - public ListenableFuture<Object> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Object createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof ContainerNotFoundException) { return null; @@ -95,10 +70,6 @@ public final class BlobStoreFallbacks { } public static final class NullOnKeyNotFound implements Fallback<Object> { - public ListenableFuture<Object> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Object createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof KeyNotFoundException) { return null; @@ -108,10 +79,6 @@ public final class BlobStoreFallbacks { } public static final class NullOnKeyAlreadyExists implements Fallback<Object> { - public ListenableFuture<Object> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Object createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof KeyAlreadyExistsException) { return null; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/main/java/org/jclouds/Fallback.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/Fallback.java b/core/src/main/java/org/jclouds/Fallback.java index bb7bd07..e24a245 100644 --- a/core/src/main/java/org/jclouds/Fallback.java +++ b/core/src/main/java/org/jclouds/Fallback.java @@ -17,7 +17,6 @@ package org.jclouds; import com.google.common.annotations.Beta; -import com.google.common.util.concurrent.FutureFallback; /** * Provides a backup value to replace an earlier exception. @@ -25,11 +24,10 @@ import com.google.common.util.concurrent.FutureFallback; * @param <V> * the result type of the backup value * - * @see FutureFallback * @since 1.6 */ @Beta -public interface Fallback<V> extends FutureFallback<V> { +public interface Fallback<V> { /** * The exception is provided so that the {@code Fallback} implementation can * conditionally determine whether to propagate the exception or to attempt http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/main/java/org/jclouds/Fallbacks.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/Fallbacks.java b/core/src/main/java/org/jclouds/Fallbacks.java index c49994b..823e5ea 100644 --- a/core/src/main/java/org/jclouds/Fallbacks.java +++ b/core/src/main/java/org/jclouds/Fallbacks.java @@ -21,7 +21,6 @@ import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Predicates.in; import static com.google.common.base.Throwables.propagate; import static com.google.common.primitives.Ints.asList; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.http.HttpUtils.contains404; import static org.jclouds.http.HttpUtils.returnValueOnCodeOrNull; import static org.jclouds.util.Throwables2.getFirstThrowableOfType; @@ -38,57 +37,36 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.ListenableFuture; public final class Fallbacks { private Fallbacks() { } public static final class NullOnNotFoundOr404 implements Fallback<Object> { - public ListenableFuture<Object> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Object createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(null, checkNotNull(t, "throwable")); } } public static final class VoidOnNotFoundOr404 implements Fallback<Void> { - public ListenableFuture<Void> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Void createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(null, checkNotNull(t, "throwable")); } } public static final class TrueOnNotFoundOr404 implements Fallback<Boolean> { - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Boolean createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(true, checkNotNull(t, "throwable")); } } public static final class FalseOnNotFoundOr404 implements Fallback<Boolean> { - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Boolean createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(false, checkNotNull(t, "throwable")); } } public static final class FalseOnNotFoundOr422 implements Fallback<Boolean> { - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Boolean createOrPropagate(Throwable t) throws Exception { if (containsResourceNotFoundException(checkNotNull(t, "throwable")) || returnValueOnCodeOrNull(t, true, equalTo(422)) != null) @@ -100,10 +78,6 @@ public final class Fallbacks { /** */ public static final class AbsentOn403Or404Or500 implements Fallback<Optional<Object>> { - public ListenableFuture<Optional<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public Optional<Object> createOrPropagate(Throwable t) throws Exception { Boolean returnVal = returnValueOnCodeOrNull(checkNotNull(t, "throwable"), true, in(asList(403, 404, 500))); if (returnVal != null) @@ -113,30 +87,18 @@ public final class Fallbacks { } public static final class EmptyFluentIterableOnNotFoundOr404 implements Fallback<FluentIterable<Object>> { - public ListenableFuture<FluentIterable<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public FluentIterable<Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(FluentIterable.from(ImmutableSet.of()), checkNotNull(t, "throwable")); } } public static final class EmptyIterableWithMarkerOnNotFoundOr404 implements Fallback<IterableWithMarker<Object>> { - public ListenableFuture<IterableWithMarker<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public IterableWithMarker<Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(IterableWithMarkers.from(ImmutableSet.of()), checkNotNull(t, "throwable")); } } public static final class EmptyPagedIterableOnNotFoundOr404 implements Fallback<PagedIterable<Object>> { - public ListenableFuture<PagedIterable<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public PagedIterable<Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(PagedIterables.of(IterableWithMarkers.from(ImmutableSet.of())), checkNotNull(t, "throwable")); @@ -144,44 +106,24 @@ public final class Fallbacks { } public static final class EmptyListOnNotFoundOr404 implements Fallback<ImmutableList<Object>> { // NO_UCD - // (unused - // code) - public ListenableFuture<ImmutableList<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public ImmutableList<Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(ImmutableList.of(), checkNotNull(t, "throwable")); } } public static final class EmptySetOnNotFoundOr404 implements Fallback<ImmutableSet<Object>> { - public ListenableFuture<ImmutableSet<Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public ImmutableSet<Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(ImmutableSet.of(), checkNotNull(t, "throwable")); } } public static final class EmptyMapOnNotFoundOr404 implements Fallback<ImmutableMap<Object, Object>> { - public ListenableFuture<ImmutableMap<Object, Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public ImmutableMap<Object, Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(ImmutableMap.of(), checkNotNull(t, "throwable")); } } public static final class EmptyMultimapOnNotFoundOr404 implements Fallback<ImmutableMultimap<Object, Object>> { // NO_UCD - // (unused - // code) - public ListenableFuture<ImmutableMultimap<Object, Object>> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - public ImmutableMultimap<Object, Object> createOrPropagate(Throwable t) throws Exception { return valOnNotFoundOr404(ImmutableMultimap.of(), checkNotNull(t, "throwable")); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/main/java/org/jclouds/fallbacks/HeaderToRetryAfterException.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/fallbacks/HeaderToRetryAfterException.java b/core/src/main/java/org/jclouds/fallbacks/HeaderToRetryAfterException.java index f21b3c2..1d330a5 100644 --- a/core/src/main/java/org/jclouds/fallbacks/HeaderToRetryAfterException.java +++ b/core/src/main/java/org/jclouds/fallbacks/HeaderToRetryAfterException.java @@ -18,7 +18,6 @@ package org.jclouds.fallbacks; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.NANOSECONDS; @@ -34,7 +33,6 @@ import com.google.common.annotations.Beta; import com.google.common.base.Optional; import com.google.common.base.Ticker; import com.google.common.net.HttpHeaders; -import com.google.common.util.concurrent.ListenableFuture; /** * propagates as {@link RetryAfterException} if a Throwable is an @@ -54,7 +52,7 @@ public final class HeaderToRetryAfterException implements PropagateIfRetryAfter * * @param ticker * how to read current time - * @param dateParser + * @param dateCodec * how to parse the {@link HttpHeaders#RETRY_AFTER} header, if it * is a Date. * @return @@ -76,13 +74,13 @@ public final class HeaderToRetryAfterException implements PropagateIfRetryAfter this.dateCodec = checkNotNull(dateCodec, "dateCodec"); } - @Override - public ListenableFuture<Object> create(Throwable t) { + @Override public Object createOrPropagate(Throwable t) throws Exception { if (!(t instanceof HttpResponseException)) throw propagate(t); HttpResponse response = HttpResponseException.class.cast(t).getResponse(); - if (response == null) - return immediateFuture(null); + if (response == null) { + return null; + } // https://tools.ietf.org/html/rfc2616#section-14.37 String retryAfter = response.getFirstHeaderOrNull(HttpHeaders.RETRY_AFTER); @@ -92,7 +90,7 @@ public final class HeaderToRetryAfterException implements PropagateIfRetryAfter throw retryException.get(); } - return immediateFuture(null); + return null; } /** http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/main/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptions.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptions.java b/core/src/main/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptions.java index 9078e32..a810c9f 100644 --- a/core/src/main/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptions.java +++ b/core/src/main/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptions.java @@ -18,7 +18,6 @@ package org.jclouds.fallbacks; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import javax.inject.Inject; import javax.inject.Singleton; @@ -28,8 +27,6 @@ import org.jclouds.http.HttpResponseException; import org.jclouds.rest.AuthorizationException; import org.jclouds.rest.ResourceNotFoundException; -import com.google.common.util.concurrent.ListenableFuture; - @Singleton public final class MapHttp4xxCodesToExceptions implements Fallback<Object> { @@ -39,15 +36,9 @@ public final class MapHttp4xxCodesToExceptions implements Fallback<Object> { MapHttp4xxCodesToExceptions(PropagateIfRetryAfter propagateIfRetryAfter) { // NO_UCD this.propagateIfRetryAfter = checkNotNull(propagateIfRetryAfter, "propagateIfRetryAfter"); } - - @Override - public ListenableFuture<Object> create(Throwable t) throws Exception { // NO_UCD - return immediateFuture(createOrPropagate(t)); - } - @Override public Object createOrPropagate(Throwable t) throws Exception { - propagateIfRetryAfter.create(t); // if we pass here, we aren't a retry-after exception + propagateIfRetryAfter.createOrPropagate(t); // if we pass here, we aren't a retry-after exception if (t instanceof HttpResponseException) { HttpResponseException responseException = HttpResponseException.class.cast(t); if (responseException.getResponse() != null) http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/main/java/org/jclouds/fallbacks/PropagateIfRetryAfter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/fallbacks/PropagateIfRetryAfter.java b/core/src/main/java/org/jclouds/fallbacks/PropagateIfRetryAfter.java index c76d6c0..aac6e76 100644 --- a/core/src/main/java/org/jclouds/fallbacks/PropagateIfRetryAfter.java +++ b/core/src/main/java/org/jclouds/fallbacks/PropagateIfRetryAfter.java @@ -16,8 +16,8 @@ */ package org.jclouds.fallbacks; -import com.google.common.util.concurrent.FutureFallback; -import com.google.common.util.concurrent.ListenableFuture; +import org.jclouds.Fallback; + import com.google.inject.ImplementedBy; /** @@ -25,12 +25,10 @@ import com.google.inject.ImplementedBy; * offset. */ @ImplementedBy(HeaderToRetryAfterException.class) -public interface PropagateIfRetryAfter extends FutureFallback<Object> { +public interface PropagateIfRetryAfter extends Fallback<Object> { /** - * if input is not of type {@link org.jclouds.http.HttpResponseException}, this method propagates. Otherwise, immediate future of + * if input is not of type {@link org.jclouds.http.HttpResponseException}, this method propagates. Otherwise, * {@code null}, if didn't coerce to {@link org.jclouds.rest.RetryAfterException} */ - @Override - ListenableFuture<Object> create(Throwable t); - + @Override Object createOrPropagate(Throwable t) throws Exception; } http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/test/java/org/jclouds/fallbacks/HeaderToRetryAfterExceptionTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/jclouds/fallbacks/HeaderToRetryAfterExceptionTest.java b/core/src/test/java/org/jclouds/fallbacks/HeaderToRetryAfterExceptionTest.java index d00a4aa..f81eeaa 100644 --- a/core/src/test/java/org/jclouds/fallbacks/HeaderToRetryAfterExceptionTest.java +++ b/core/src/test/java/org/jclouds/fallbacks/HeaderToRetryAfterExceptionTest.java @@ -34,47 +34,42 @@ import com.google.common.net.HttpHeaders; public class HeaderToRetryAfterExceptionTest { @Test(expectedExceptions = RuntimeException.class) - public void testArbitraryExceptionDoesntConvert() { - fn.create(new RuntimeException()); + public void testArbitraryExceptionDoesntConvert() throws Exception { + fn.createOrPropagate(new RuntimeException()); } - public void testHttpResponseExceptionWithoutResponseDoesntPropagate() { - fn.create(new HttpResponseException("message", command, null)); + public void testHttpResponseExceptionWithoutResponseDoesntPropagate() throws Exception { + fn.createOrPropagate(new HttpResponseException("message", command, null)); } - public void testHttpResponseExceptionWithoutRetryAfterHeaderDoesntPropagate() { - fn.create(new HttpResponseException(command, HttpResponse.builder().statusCode(500).build())); + public void testHttpResponseExceptionWithoutRetryAfterHeaderDoesntPropagate() throws Exception { + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder().statusCode(500).build())); } - public void testHttpResponseExceptionWithMalformedRetryAfterHeaderDoesntConvert() { - fn.create(new HttpResponseException(command, - HttpResponse.builder() - .statusCode(503) - .addHeader(HttpHeaders.RETRY_AFTER, "Fri, 31 Dec 1999 23:59:59 ZBW").build())); + public void testHttpResponseExceptionWithMalformedRetryAfterHeaderDoesntConvert() throws Exception { + fn.createOrPropagate(new HttpResponseException(command, + HttpResponse.builder().statusCode(503).addHeader(HttpHeaders.RETRY_AFTER, "Fri, 31 Dec 1999 23:59:59 ZBW") + .build())); } @Test(expectedExceptions = RetryAfterException.class, expectedExceptionsMessageRegExp = "retry now") - public void testHttpResponseExceptionWithRetryAfterDate() { - fn.create(new HttpResponseException(command, - HttpResponse.builder() - .statusCode(503) - .addHeader(HttpHeaders.RETRY_AFTER, "Fri, 31 Dec 1999 23:59:59 GMT").build())); + public void testHttpResponseExceptionWithRetryAfterDate() throws Exception { + fn.createOrPropagate(new HttpResponseException(command, + HttpResponse.builder().statusCode(503).addHeader(HttpHeaders.RETRY_AFTER, "Fri, 31 Dec 1999 23:59:59 GMT") + .build())); } @Test(expectedExceptions = RetryAfterException.class, expectedExceptionsMessageRegExp = "retry in 700 seconds") - public void testHttpResponseExceptionWithRetryAfterOffset() { - fn.create(new HttpResponseException(command, - HttpResponse.builder() - .statusCode(503) - .addHeader(HttpHeaders.RETRY_AFTER, "700").build())); + public void testHttpResponseExceptionWithRetryAfterOffset() throws Exception { + fn.createOrPropagate(new HttpResponseException(command, + HttpResponse.builder().statusCode(503).addHeader(HttpHeaders.RETRY_AFTER, "700").build())); } @Test(expectedExceptions = RetryAfterException.class, expectedExceptionsMessageRegExp = "retry in 86400 seconds") - public void testHttpResponseExceptionWithRetryAfterPastIsZero() { - fn.create(new HttpResponseException(command, - HttpResponse.builder() - .statusCode(503) - .addHeader(HttpHeaders.RETRY_AFTER, "Sun, 2 Jan 2000 00:00:00 GMT").build())); + public void testHttpResponseExceptionWithRetryAfterPastIsZero() throws Exception { + fn.createOrPropagate(new HttpResponseException(command, + HttpResponse.builder().statusCode(503).addHeader(HttpHeaders.RETRY_AFTER, "Sun, 2 Jan 2000 00:00:00 GMT") + .build())); } public static HttpCommand command = new HttpCommand(HttpRequest.builder().method("GET").endpoint("http://stub").build()); http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/test/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptionsTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptionsTest.java b/core/src/test/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptionsTest.java index 7cbd5f4..4bbcf57 100644 --- a/core/src/test/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptionsTest.java +++ b/core/src/test/java/org/jclouds/fallbacks/MapHttp4xxCodesToExceptionsTest.java @@ -31,27 +31,27 @@ public class MapHttp4xxCodesToExceptionsTest { @Test(expectedExceptions = AuthorizationException.class) public void test401ToAuthorizationException() throws Exception { - fn.create(new HttpResponseException(command, HttpResponse.builder().statusCode(401).build())); + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder().statusCode(401).build())); } @Test(expectedExceptions = AuthorizationException.class) public void test403ToAuthorizationException() throws Exception { - fn.create(new HttpResponseException(command, HttpResponse.builder().statusCode(403).build())); + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder().statusCode(403).build())); } @Test(expectedExceptions = ResourceNotFoundException.class) public void test404ToResourceNotFoundException() throws Exception { - fn.create(new HttpResponseException(command, HttpResponse.builder().statusCode(404).build())); + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder().statusCode(404).build())); } @Test(expectedExceptions = IllegalStateException.class) public void test409ToIllegalStateException() throws Exception { - fn.create(new HttpResponseException(command, HttpResponse.builder().statusCode(409).build())); + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder().statusCode(409).build())); } @Test(expectedExceptions = RetryAfterException.class, expectedExceptionsMessageRegExp = "retry now") public void testHttpResponseExceptionWithRetryAfterDate() throws Exception { - fn.create(new HttpResponseException(command, + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder() .statusCode(503) .addHeader(HttpHeaders.RETRY_AFTER, "Fri, 31 Dec 1999 23:59:59 GMT").build())); @@ -59,7 +59,7 @@ public class MapHttp4xxCodesToExceptionsTest { @Test(expectedExceptions = RetryAfterException.class, expectedExceptionsMessageRegExp = "retry in 700 seconds") public void testHttpResponseExceptionWithRetryAfterOffset() throws Exception { - fn.create(new HttpResponseException(command, + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder() .statusCode(503) .addHeader(HttpHeaders.RETRY_AFTER, "700").build())); @@ -67,7 +67,7 @@ public class MapHttp4xxCodesToExceptionsTest { @Test(expectedExceptions = RetryAfterException.class, expectedExceptionsMessageRegExp = "retry in 86400 seconds") public void testHttpResponseExceptionWithRetryAfterPastIsZero() throws Exception { - fn.create(new HttpResponseException(command, + fn.createOrPropagate(new HttpResponseException(command, HttpResponse.builder() .statusCode(503) .addHeader(HttpHeaders.RETRY_AFTER, "Sun, 2 Jan 2000 00:00:00 GMT").build())); http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/test/java/org/jclouds/http/IntegrationTestClient.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/jclouds/http/IntegrationTestClient.java b/core/src/test/java/org/jclouds/http/IntegrationTestClient.java index 27ec54b..afdfa59 100644 --- a/core/src/test/java/org/jclouds/http/IntegrationTestClient.java +++ b/core/src/test/java/org/jclouds/http/IntegrationTestClient.java @@ -16,8 +16,6 @@ */ package org.jclouds.http; -import static com.google.common.util.concurrent.Futures.immediateFuture; - import java.io.Closeable; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -51,7 +49,6 @@ import org.jclouds.util.Strings2; import com.google.common.base.Function; import com.google.common.collect.Multimap; -import com.google.common.util.concurrent.ListenableFuture; import com.google.inject.Provides; /** @@ -89,10 +86,6 @@ public interface IntegrationTestClient extends Closeable { String downloadException(@PathParam("id") String id, HttpRequestOptions options); static class FooOnException implements org.jclouds.Fallback<String> { - public ListenableFuture<String> create(Throwable t) throws Exception { - return immediateFuture("foo"); - } - public String createOrPropagate(Throwable t) throws Exception { return "foo"; } http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java index 16ace50..4e5782c 100644 --- a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java +++ b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java @@ -146,7 +146,6 @@ import com.google.common.io.ByteSource; import com.google.common.io.Files; import com.google.common.net.HttpHeaders; import com.google.common.reflect.Invokable; -import com.google.common.util.concurrent.ListenableFuture; import com.google.inject.AbstractModule; import com.google.inject.ConfigurationException; import com.google.inject.Injector; http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobFallbacks.java ---------------------------------------------------------------------- diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobFallbacks.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobFallbacks.java index c12bf71..71a5dca 100644 --- a/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobFallbacks.java +++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobFallbacks.java @@ -18,24 +18,16 @@ package org.jclouds.azureblob; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import org.jclouds.Fallback; import org.jclouds.azure.storage.AzureStorageResponseException; -import com.google.common.util.concurrent.ListenableFuture; - public final class AzureBlobFallbacks { private AzureBlobFallbacks() { } public static final class FalseIfContainerAlreadyExists implements Fallback<Boolean> { @Override - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Boolean createOrPropagate(Throwable t) throws Exception { if (checkNotNull(t, "throwable") instanceof AzureStorageResponseException) { AzureStorageResponseException responseException = AzureStorageResponseException.class.cast(t); http://git-wip-us.apache.org/repos/asf/jclouds/blob/b9525a08/providers/dynect/src/main/java/org/jclouds/dynect/v3/DynECTFallbacks.java ---------------------------------------------------------------------- diff --git a/providers/dynect/src/main/java/org/jclouds/dynect/v3/DynECTFallbacks.java b/providers/dynect/src/main/java/org/jclouds/dynect/v3/DynECTFallbacks.java index 0f87e7b..6cc3b3d 100644 --- a/providers/dynect/src/main/java/org/jclouds/dynect/v3/DynECTFallbacks.java +++ b/providers/dynect/src/main/java/org/jclouds/dynect/v3/DynECTFallbacks.java @@ -18,24 +18,16 @@ package org.jclouds.dynect.v3; import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; import static org.jclouds.http.HttpUtils.returnValueOnCodeOrNull; import org.jclouds.Fallback; -import com.google.common.util.concurrent.ListenableFuture; - public final class DynECTFallbacks { private DynECTFallbacks() { } public static class FalseOn400 implements Fallback<Boolean> { @Override - public ListenableFuture<Boolean> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override public Boolean createOrPropagate(Throwable t) throws Exception { if (returnValueOnCodeOrNull(t, false, equalTo(400)) != null) return false;
