You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/10/06 16:05:40 UTC
[11/17] JCLOUDS-152 remove RestContext and its dependencies.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawTypeTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawTypeTest.java b/core/src/test/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawTypeTest.java
deleted file mode 100644
index 3ccf54a..0000000
--- a/core/src/test/java/org/jclouds/config/BindRestContextWithWildcardExtendsExplicitAndRawTypeTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.config;
-
-import static com.google.common.base.Suppliers.ofInstance;
-import static org.easymock.EasyMock.createMock;
-import static org.testng.Assert.assertEquals;
-
-import javax.inject.Inject;
-
-import org.jclouds.Context;
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.IntegrationTestAsyncClient;
-import org.jclouds.http.IntegrationTestClient;
-import org.jclouds.providers.AnonymousProviderMetadata;
-import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.providers.config.BindProviderMetadataContextAndCredentials;
-import org.jclouds.rest.RestApiMetadata;
-import org.jclouds.rest.RestContext;
-import org.jclouds.rest.Utils;
-import org.jclouds.rest.internal.BaseRestApiTest.MockModule;
-import org.testng.annotations.Test;
-
-import com.google.common.reflect.TypeToken;
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-@Test(groups = "unit", testName = "BindRestContextWithWildcardExtendsExplicitAndRawTypeTest")
-public class BindRestContextWithWildcardExtendsExplicitAndRawTypeTest {
-
- @SuppressWarnings("rawtypes")
- private static class ExpectedBindings {
-
- private final RestContext raw;
- private final RestContext<IntegrationTestClient, IntegrationTestAsyncClient> explicit;
-
- @Inject
- public ExpectedBindings(RestContext raw,
- RestContext<IntegrationTestClient, IntegrationTestAsyncClient> explicit) {
- this.raw = raw;
- this.explicit = explicit;
- }
-
- }
-
- @Test
- public void testRawAndExplicit() {
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
-
- ExpectedBindings bindings = injectorFor(md).getInstance(ExpectedBindings.class);
- assertEquals(bindings.raw, bindings.explicit);
- }
-
- private Injector injectorFor(ProviderMetadata md) {
- return Guice.createInjector(
- new BindNameToContext("test"),
- new BindProviderMetadataContextAndCredentials(md, ofInstance(new Credentials("user", "pass"))),
- new BindRestContextWithWildcardExtendsExplicitAndRawType(RestApiMetadata.class.cast(md
- .getApiMetadata())),
-
- // stuff needed for RestContextImpl
- new MockModule(),
- new AbstractModule() {
-
- @Override
- protected void configure() {
- bind(Utils.class).toInstance(createMock(Utils.class));
- bind(IntegrationTestClient.class).toInstance(createMock(IntegrationTestClient.class));
- bind(IntegrationTestAsyncClient.class).toInstance(createMock(IntegrationTestAsyncClient.class));
- }
- });
- }
-
- @SuppressWarnings("rawtypes")
- private static class ExpectedBindingsWithWildCardExtends {
-
- private final RestContext raw;
- private final RestContext<IntegrationTestClient, IntegrationTestAsyncClient> explicit;
- private final RestContext<? extends IntegrationTestClient, ? extends IntegrationTestAsyncClient> wildcardExtends;
-
- @Inject
- public ExpectedBindingsWithWildCardExtends(RestContext raw,
- RestContext<IntegrationTestClient, IntegrationTestAsyncClient> explicit,
- RestContext<? extends IntegrationTestClient, ? extends IntegrationTestAsyncClient> wildcardExtends) {
- this.raw = raw;
- this.explicit = explicit;
- this.wildcardExtends = wildcardExtends;
- }
-
- }
-
- @Test
- public void testRawExplicitAndWildCardExtends() {
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
-
- TypeToken<? extends Context> wildCardExtendsType = new TypeToken<RestContext<? extends IntegrationTestClient, ? extends IntegrationTestAsyncClient>>() {
- private static final long serialVersionUID = 1L;
- };
-
- md = md.toBuilder().apiMetadata(md.getApiMetadata().toBuilder().context(wildCardExtendsType).build()).build();
-
- ExpectedBindingsWithWildCardExtends bindings = injectorFor(md).getInstance(ExpectedBindingsWithWildCardExtends.class);
- assertEquals(bindings.raw, bindings.explicit);
- assertEquals(bindings.explicit, bindings.wildcardExtends);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/http/BaseJettyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/http/BaseJettyTest.java b/core/src/test/java/org/jclouds/http/BaseJettyTest.java
index ee2b031..2e28cd0 100644
--- a/core/src/test/java/org/jclouds/http/BaseJettyTest.java
+++ b/core/src/test/java/org/jclouds/http/BaseJettyTest.java
@@ -27,6 +27,7 @@ import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterrup
import static javax.servlet.http.HttpServletResponse.SC_OK;
import static org.jclouds.Constants.PROPERTY_RELAX_HOSTNAME;
import static org.jclouds.Constants.PROPERTY_TRUST_ALL_CERTS;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.jclouds.util.Closeables2.closeQuietly;
import static org.jclouds.util.Strings2.toStringAndClose;
@@ -52,7 +53,6 @@ import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.jclouds.ContextBuilder;
import org.jclouds.io.ByteStreams2;
-import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.utils.TestUtils;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
@@ -248,9 +248,7 @@ public abstract class BaseJettyTest {
properties.setProperty(PROPERTY_TRUST_ALL_CERTS, "true");
properties.setProperty(PROPERTY_RELAX_HOSTNAME, "true");
return ContextBuilder
- .newBuilder(
- AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(IntegrationTestClient.class,
- IntegrationTestAsyncClient.class, "http://localhost:" + testPort))
+ .newBuilder(forApiOnEndpoint(IntegrationTestClient.class, "http://localhost:" + testPort))
.modules(ImmutableSet.<Module> copyOf(connectionModules)).overrides(properties);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/http/IntegrationTestAsyncClient.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/http/IntegrationTestAsyncClient.java b/core/src/test/java/org/jclouds/http/IntegrationTestAsyncClient.java
deleted file mode 100644
index dff2bca..0000000
--- a/core/src/test/java/org/jclouds/http/IntegrationTestAsyncClient.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-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;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import javax.inject.Singleton;
-import javax.ws.rs.GET;
-import javax.ws.rs.HEAD;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.HttpMethod;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.http.functions.ParseSax;
-import org.jclouds.http.options.HttpRequestOptions;
-import org.jclouds.io.Payload;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-import org.jclouds.rest.binders.BindToJsonPayload;
-import org.jclouds.rest.binders.BindToStringPayload;
-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;
-
-/**
- * Sample test for the behaviour of our Integration Test jetty server.
- *
- * @see IntegrationTestClient
- */
-public interface IntegrationTestAsyncClient extends Closeable {
- @Target({ ElementType.METHOD })
- @Retention(RetentionPolicy.RUNTIME)
- @HttpMethod("ROWDY")
- public @interface ROWDY {
- }
-
- @ROWDY
- @Path("/objects/{id}")
- ListenableFuture<String> rowdy(@PathParam("id") String path);
-
- @HEAD
- @Path("/objects/{id}")
- @Fallback(FalseOnNotFoundOr404.class)
- ListenableFuture<Boolean> exists(@PathParam("id") String path);
-
- @GET
- @Path("/objects/{id}")
- ListenableFuture<String> download(@PathParam("id") String id);
-
- ListenableFuture<HttpResponse> invoke(HttpRequest request);
-
- @GET
- @Path("/{path}")
- ListenableFuture<String> synch(@PathParam("path") String id);
-
- @GET
- @Path("/objects/{id}")
- @Fallback(FooOnException.class)
- ListenableFuture<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";
- }
- }
-
- @GET
- @Path("/objects/{id}")
- @Fallback(FooOnException.class)
- ListenableFuture<String> synchException(@PathParam("id") String id, @HeaderParam("Range") String header);
-
- @PUT
- @Path("/objects/{id}")
- ListenableFuture<String> upload(@PathParam("id") String id, @BinderParam(BindToStringPayload.class) String toPut);
-
- @POST
- @Path("/objects/{id}")
- ListenableFuture<String> post(@PathParam("id") String id, @BinderParam(BindToStringPayload.class) String toPut);
-
- @POST
- @Path("/objects/{id}")
- ListenableFuture<String> postAsInputStream(@PathParam("id") String id,
- @BinderParam(BindToInputStreamPayload.class) String toPut);
-
- static class BindToInputStreamPayload extends BindToStringPayload {
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object payload) {
- request.setPayload(Strings2.toInputStream(payload.toString()));
- request.getPayload().getContentMetadata().setContentLength((long) payload.toString().getBytes().length);
- return request;
- }
- }
-
- @Singleton
- static class ResponsePayload implements Function<HttpResponse, Multimap<String, String>> {
-
- public Multimap<String, String> apply(HttpResponse from) {
- return from.getHeaders();
- }
-
- }
-
- @POST
- @Path("/objects/{id}")
- @ResponseParser(ResponsePayload.class)
- ListenableFuture<Multimap<String, String>> postPayloadAndReturnHeaders(@PathParam("id") String id, Payload payload);
-
- @POST
- @Path("/objects/{id}")
- @MapBinder(BindToJsonPayload.class)
- ListenableFuture<String> postJson(@PathParam("id") String id, @PayloadParam("key") String toPut);
-
- @GET
- @Path("/objects/{id}")
- @RequestFilters(Filter.class)
- ListenableFuture<String> downloadFilter(@PathParam("id") String id, @HeaderParam("filterme") String header);
-
- static class Filter implements HttpRequestFilter {
- public HttpRequest filter(HttpRequest request) throws HttpException {
- if (request.getHeaders().containsKey("filterme")) {
- request = request.toBuilder().replaceHeader("test", "test").build();
- }
- return request;
- }
- }
-
- @GET
- @Path("/objects/{id}")
- ListenableFuture<String> download(@PathParam("id") String id, @HeaderParam("test") String header);
-
- @GET
- @Path("/objects/{id}")
- @XMLResponseParser(BarHandler.class)
- ListenableFuture<String> downloadAndParse(@PathParam("id") String id);
-
- public static class BarHandler extends ParseSax.HandlerWithResult<String> {
-
- private String bar = null;
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("bar")) {
- bar = currentText.toString();
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char ch[], int start, int length) {
- currentText.append(ch, start, length);
-
- }
-
- @Override
- public String getResult() {
- return bar;
- }
-
- }
-
- @POST
- @Path("/objects/{id}")
- ListenableFuture<Void> postNothing(@PathParam("id") String id);
-
- @PUT
- @Path("/objects/{id}")
- ListenableFuture<Void> putNothing(@PathParam("id") String id);
-
- @Provides
- StringBuilder newStringBuilder();
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java b/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
index 56b0f9d..f421016 100644
--- a/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
+++ b/core/src/test/java/org/jclouds/http/handlers/BackoffLimitedRetryHandlerTest.java
@@ -15,6 +15,7 @@
* limitations under the License.
*/
package org.jclouds.http.handlers;
+
import static org.jclouds.reflect.Reflection2.method;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
@@ -26,7 +27,6 @@ import org.jclouds.ContextBuilder;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
-import org.jclouds.http.IntegrationTestAsyncClient;
import org.jclouds.http.IntegrationTestClient;
import org.jclouds.io.Payloads;
import org.jclouds.providers.AnonymousProviderMetadata;
@@ -129,7 +129,7 @@ public class BackoffLimitedRetryHandlerTest {
private HttpCommand createCommand() throws SecurityException, NoSuchMethodException {
- Invokable<IntegrationTestAsyncClient, String> method = method(IntegrationTestAsyncClient.class, "download", String.class);
+ Invokable<IntegrationTestClient, String> method = method(IntegrationTestClient.class, "download", String.class);
return new HttpCommand(processor.apply(Invocation.create(method, ImmutableList.<Object> of("1"))));
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/http/handlers/RedirectionRetryHandlerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/http/handlers/RedirectionRetryHandlerTest.java b/core/src/test/java/org/jclouds/http/handlers/RedirectionRetryHandlerTest.java
index eb9686b..e7df0f8 100644
--- a/core/src/test/java/org/jclouds/http/handlers/RedirectionRetryHandlerTest.java
+++ b/core/src/test/java/org/jclouds/http/handlers/RedirectionRetryHandlerTest.java
@@ -22,14 +22,13 @@ import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import org.jclouds.ContextBuilder;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
-import org.jclouds.http.IntegrationTestAsyncClient;
import org.jclouds.http.IntegrationTestClient;
-import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.rest.internal.BaseRestApiTest.MockModule;
import org.testng.annotations.Test;
@@ -42,10 +41,8 @@ import com.google.inject.Module;
*/
@Test(groups = "unit")
public class RedirectionRetryHandlerTest {
- Injector injector = ContextBuilder.newBuilder(
- AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(IntegrationTestClient.class,
- IntegrationTestAsyncClient.class, "http://localhost")).modules(
- ImmutableSet.<Module> of(new MockModule())).buildInjector();
+ Injector injector = ContextBuilder.newBuilder(forApiOnEndpoint(IntegrationTestClient.class, "http://localhost"))
+ .modules(ImmutableSet.<Module>of(new MockModule())).buildInjector();
@Test
public void test302DoesNotRetry() {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/providers/config/BindProviderMetadataContextAndCredentialsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/providers/config/BindProviderMetadataContextAndCredentialsTest.java b/core/src/test/java/org/jclouds/providers/config/BindProviderMetadataContextAndCredentialsTest.java
index 32b7b00..22cc9f8 100644
--- a/core/src/test/java/org/jclouds/providers/config/BindProviderMetadataContextAndCredentialsTest.java
+++ b/core/src/test/java/org/jclouds/providers/config/BindProviderMetadataContextAndCredentialsTest.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.providers.config;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.testng.Assert.assertEquals;
import java.util.Properties;
@@ -28,13 +29,11 @@ import org.jclouds.Context;
import org.jclouds.apis.ApiMetadata;
import org.jclouds.domain.Credentials;
import org.jclouds.domain.LoginCredentials;
-import org.jclouds.http.IntegrationTestAsyncClient;
import org.jclouds.http.IntegrationTestClient;
import org.jclouds.internal.FilterStringsBoundToInjectorByName;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.location.Iso3166;
import org.jclouds.location.Provider;
-import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.rest.annotations.Api;
import org.jclouds.rest.annotations.ApiVersion;
@@ -94,9 +93,8 @@ public class BindProviderMetadataContextAndCredentialsTest {
@Test
public void testExpectedBindingsWhenCredentialIsNotNull() {
+ ProviderMetadata md = forApiOnEndpoint(IntegrationTestClient.class, "http://localhost");
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
Supplier<Credentials> creds = Suppliers.<Credentials> ofInstance(LoginCredentials.builder().user("user")
.password("password").build());
@@ -108,9 +106,8 @@ public class BindProviderMetadataContextAndCredentialsTest {
@Test
public void testExpectedBindingsWhenCredentialIsNull() {
+ ProviderMetadata md = forApiOnEndpoint(IntegrationTestClient.class, "http://localhost");
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
Supplier<Credentials> creds = Suppliers.<Credentials> ofInstance(LoginCredentials.builder().user("user").build());
ExpectedBindings bindings = Guice.createInjector(new BindProviderMetadataContextAndCredentials(md, creds))
@@ -121,9 +118,8 @@ public class BindProviderMetadataContextAndCredentialsTest {
@Test
public void testExpectedBindingsWhenBuildVersionAbsent() {
+ ProviderMetadata md = forApiOnEndpoint(IntegrationTestClient.class, "http://localhost");
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
ApiMetadata apiMd = md.getApiMetadata().toBuilder().buildVersion(null).build();
md = md.toBuilder().apiMetadata(apiMd).build();
Supplier<Credentials> creds = Suppliers.<Credentials> ofInstance(LoginCredentials.builder().user("user").build());
@@ -135,9 +131,8 @@ public class BindProviderMetadataContextAndCredentialsTest {
@Test
public void testProviderOverridesApiMetadataProperty() {
+ ProviderMetadata md = forApiOnEndpoint(IntegrationTestClient.class, "http://localhost");
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
Properties defaultProps = md.getDefaultProperties();
defaultProps.setProperty(Constants.PROPERTY_SESSION_INTERVAL, Integer.MAX_VALUE + "");
md = md.toBuilder().defaultProperties(defaultProps).build();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/providers/internal/UpdateProviderMetadataFromPropertiesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/providers/internal/UpdateProviderMetadataFromPropertiesTest.java b/core/src/test/java/org/jclouds/providers/internal/UpdateProviderMetadataFromPropertiesTest.java
index d5a4f1a..8c92002 100644
--- a/core/src/test/java/org/jclouds/providers/internal/UpdateProviderMetadataFromPropertiesTest.java
+++ b/core/src/test/java/org/jclouds/providers/internal/UpdateProviderMetadataFromPropertiesTest.java
@@ -17,14 +17,13 @@
package org.jclouds.providers.internal;
import static org.jclouds.Constants.PROPERTY_ISO3166_CODES;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.testng.Assert.assertEquals;
import java.util.Properties;
import org.jclouds.Constants;
-import org.jclouds.http.IntegrationTestAsyncClient;
import org.jclouds.http.IntegrationTestClient;
-import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.providers.ProviderMetadata;
import org.testng.annotations.Test;
@@ -35,8 +34,7 @@ public class UpdateProviderMetadataFromPropertiesTest {
@Test
public void testProviderMetadataWithUpdatedEndpointUpdatesAndRetainsAllDefaultPropertiesExceptEndpoint() {
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
+ ProviderMetadata md = forApiOnEndpoint(IntegrationTestClient.class, "http://localhost");
Properties props = new Properties();
props.putAll(md.getDefaultProperties());
@@ -50,8 +48,7 @@ public class UpdateProviderMetadataFromPropertiesTest {
@Test
public void testProviderMetadataWithUpdatedIso3166CodesUpdatesAndRetainsAllDefaultPropertiesExceptIso3166Codes() {
- ProviderMetadata md = AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(
- IntegrationTestClient.class, IntegrationTestAsyncClient.class, "http://localhost");
+ ProviderMetadata md = forApiOnEndpoint(IntegrationTestClient.class, "http://localhost");
Properties props = new Properties();
props.putAll(md.getDefaultProperties());
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/InputParamValidatorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/InputParamValidatorTest.java b/core/src/test/java/org/jclouds/rest/InputParamValidatorTest.java
index 3723035..61f2c5f 100644
--- a/core/src/test/java/org/jclouds/rest/InputParamValidatorTest.java
+++ b/core/src/test/java/org/jclouds/rest/InputParamValidatorTest.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.rest;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.jclouds.reflect.Reflection2.method;
import javax.ws.rs.POST;
@@ -23,10 +24,8 @@ import javax.ws.rs.PathParam;
import org.jclouds.ContextBuilder;
import org.jclouds.http.HttpRequest;
-import org.jclouds.http.IntegrationTestAsyncClient;
import org.jclouds.http.IntegrationTestClient;
import org.jclouds.predicates.validators.AllLowerCaseValidator;
-import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.reflect.Invocation;
import org.jclouds.rest.annotations.ParamValidators;
import org.jclouds.rest.internal.RestAnnotationProcessor;
@@ -109,10 +108,8 @@ public class InputParamValidatorTest {
@BeforeClass
void setupFactory() {
- injector = ContextBuilder
- .newBuilder(
- AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(IntegrationTestClient.class, IntegrationTestAsyncClient.class,
- "http://localhost:9999")).buildInjector();
+ injector = ContextBuilder.newBuilder(forApiOnEndpoint(IntegrationTestClient.class, "http://localhost:9999"))
+ .buildInjector();
restAnnotationProcessor = injector.getInstance(RestAnnotationProcessor.class);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/annotationparsing/ClosableApiTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/annotationparsing/ClosableApiTest.java b/core/src/test/java/org/jclouds/rest/annotationparsing/ClosableApiTest.java
index 7e10c8e..ea6b5cd 100644
--- a/core/src/test/java/org/jclouds/rest/annotationparsing/ClosableApiTest.java
+++ b/core/src/test/java/org/jclouds/rest/annotationparsing/ClosableApiTest.java
@@ -20,13 +20,13 @@ import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
-import static org.jclouds.providers.AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint;
import java.io.Closeable;
import java.io.IOException;
import org.jclouds.ContextBuilder;
import org.jclouds.concurrent.config.ExecutorServiceModule;
+import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.providers.ProviderMetadata;
import org.testng.annotations.Test;
@@ -45,11 +45,7 @@ public class ClosableApiTest {
interface DelegatingApi extends Closeable {
}
- interface DelegatingAsyncApi extends Closeable {
- }
-
- ProviderMetadata provider = forClientMappedToAsyncClientOnEndpoint(DelegatingApi.class, DelegatingAsyncApi.class,
- "http://mock");
+ ProviderMetadata provider = AnonymousProviderMetadata.forApiOnEndpoint(DelegatingApi.class, "http://mock");
public void testApiClosesExecutorServiceOnClose() throws IOException {
ListeningExecutorService executor = createMock(ListeningExecutorService.class);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/annotationparsing/DelegateAnnotationExpectTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/annotationparsing/DelegateAnnotationExpectTest.java b/core/src/test/java/org/jclouds/rest/annotationparsing/DelegateAnnotationExpectTest.java
index 22061c5..03dacec 100644
--- a/core/src/test/java/org/jclouds/rest/annotationparsing/DelegateAnnotationExpectTest.java
+++ b/core/src/test/java/org/jclouds/rest/annotationparsing/DelegateAnnotationExpectTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rest.annotationparsing;
-import static org.jclouds.providers.AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.testng.Assert.assertTrue;
import javax.ws.rs.FormParam;
@@ -29,17 +29,15 @@ import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.rest.ConfiguresRestClient;
+import org.jclouds.rest.ConfiguresHttpApi;
import org.jclouds.rest.annotations.Delegate;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.Payload;
import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.config.RestClientModule;
+import org.jclouds.rest.config.HttpApiModule;
import org.jclouds.rest.internal.BaseRestApiExpectTest;
import org.testng.annotations.Test;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.ListenableFuture;
import com.google.inject.Module;
/**
@@ -57,35 +55,18 @@ public class DelegateAnnotationExpectTest extends BaseRestApiExpectTest<Delegate
DiskApi getDiskApiForProject(@PayloadParam("project") @PathParam("project") String projectName);
}
- interface DelegatingAsyncApi {
- @Delegate
- DiskAsyncApi getDiskApiForProjectForm(@FormParam("project") String projectName);
-
- @Delegate
- @Path("/projects/{project}")
- DiskAsyncApi getDiskApiForProject(@PayloadParam("project") @PathParam("project") String projectName);
- }
-
interface DiskApi {
- void form();
-
- void syncAll();
-
- boolean exists(@PathParam("disk") String diskName);
- }
-
- interface DiskAsyncApi {
@POST
- ListenableFuture<Void> form();
+ void form();
@POST
@Payload("<Sync>{project}</Sync>")
- ListenableFuture<Void> syncAll();
-
+ void syncAll();
+
@HEAD
@Path("/disks/{disk}")
@Fallback(FalseOnNotFoundOr404.class)
- ListenableFuture<Boolean> exists(@PathParam("disk") String diskName);
+ boolean exists(@PathParam("disk") String diskName);
}
public void testDelegatingCallTakesIntoConsiderationAndCalleeFormParam() {
@@ -121,22 +102,16 @@ public class DelegateAnnotationExpectTest extends BaseRestApiExpectTest<Delegate
@Override
public ProviderMetadata createProviderMetadata() {
- return forClientMappedToAsyncClientOnEndpoint(DelegatingApi.class, DelegatingAsyncApi.class, "http://mock");
+ return forApiOnEndpoint(DelegatingApi.class, "http://mock");
}
@Override
protected Module createModule() {
- return new DelegatingRestClientModule();
+ return new DelegatingHttpApiModule();
}
- @ConfiguresRestClient
- static class DelegatingRestClientModule extends RestClientModule<DelegatingApi, DelegatingAsyncApi> {
-
- public DelegatingRestClientModule() {
- // right now, we have to define the delegates by hand as opposed to
- // reflection looking for coordinated annotations
- super(ImmutableMap.<Class<?>, Class<?>> of(DiskApi.class, DiskAsyncApi.class));
- }
+ @ConfiguresHttpApi
+ static class DelegatingHttpApiModule extends HttpApiModule<DelegatingApi> {
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/annotationparsing/JAXBResponseParserAnnotationExpectTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/annotationparsing/JAXBResponseParserAnnotationExpectTest.java b/core/src/test/java/org/jclouds/rest/annotationparsing/JAXBResponseParserAnnotationExpectTest.java
index 337490a..20446bf 100644
--- a/core/src/test/java/org/jclouds/rest/annotationparsing/JAXBResponseParserAnnotationExpectTest.java
+++ b/core/src/test/java/org/jclouds/rest/annotationparsing/JAXBResponseParserAnnotationExpectTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rest.annotationparsing;
-import static org.jclouds.providers.AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
@@ -38,7 +38,6 @@ import org.testng.annotations.Test;
import com.google.common.base.Function;
import com.google.common.base.Functions;
-import com.google.common.util.concurrent.ListenableFuture;
/**
* Tests the use of the {@link JAXBResponseParser} annotation.
@@ -67,36 +66,26 @@ public class JAXBResponseParserAnnotationExpectTest extends
}
public interface TestJAXBApi extends Closeable {
- TestJAXBDomain jaxbGetWithAnnotation();
-
- Object jaxbGetWithAnnotationAndCustomClass();
-
- TestJAXBDomain jaxbGetWithAcceptHeader();
-
- String jaxbGetWithTransformer();
- }
-
- public interface TestJAXBAsyncApi extends Closeable {
@GET
@Path("/jaxb/annotation")
@JAXBResponseParser
- ListenableFuture<TestJAXBDomain> jaxbGetWithAnnotation();
+ TestJAXBDomain jaxbGetWithAnnotation();
@GET
@Path("/jaxb/custom")
@JAXBResponseParser(TestJAXBDomain.class)
- ListenableFuture<Object> jaxbGetWithAnnotationAndCustomClass();
+ Object jaxbGetWithAnnotationAndCustomClass();
@GET
@Path("/jaxb/header")
@Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<TestJAXBDomain> jaxbGetWithAcceptHeader();
+ TestJAXBDomain jaxbGetWithAcceptHeader();
@GET
@Path("/jaxb/transformer")
@JAXBResponseParser(TestJAXBDomain.class)
@Transform(ToString.class)
- ListenableFuture<String> jaxbGetWithTransformer();
+ String jaxbGetWithTransformer();
}
private static class ToString implements Function<Object, String> {
@@ -150,7 +139,6 @@ public class JAXBResponseParserAnnotationExpectTest extends
@Override
public ProviderMetadata createProviderMetadata() {
- return forClientMappedToAsyncClientOnEndpoint(TestJAXBApi.class, TestJAXBAsyncApi.class, "http://mock");
+ return forApiOnEndpoint(TestJAXBApi.class, "http://mock");
}
-
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/annotationparsing/ProvidesAnnotationExpectTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/annotationparsing/ProvidesAnnotationExpectTest.java b/core/src/test/java/org/jclouds/rest/annotationparsing/ProvidesAnnotationExpectTest.java
index 19260d8..11f190e 100644
--- a/core/src/test/java/org/jclouds/rest/annotationparsing/ProvidesAnnotationExpectTest.java
+++ b/core/src/test/java/org/jclouds/rest/annotationparsing/ProvidesAnnotationExpectTest.java
@@ -16,7 +16,6 @@
*/
package org.jclouds.rest.annotationparsing;
-import static org.jclouds.providers.AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint;
import static org.testng.Assert.assertEquals;
import java.io.Closeable;
@@ -27,10 +26,11 @@ import javax.inject.Named;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
+import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ConfiguresRestClient;
-import org.jclouds.rest.config.RestClientModule;
+import org.jclouds.rest.ConfiguresHttpApi;
+import org.jclouds.rest.config.HttpApiModule;
import org.jclouds.rest.internal.BaseRestApiExpectTest;
import org.testng.annotations.Test;
@@ -64,23 +64,6 @@ public class ProvidesAnnotationExpectTest extends BaseRestApiExpectTest<Provides
Set<String> noSuchElementException();
}
- interface ProvidingAsyncApi extends Closeable {
- @Provides
- Set<String> set();
-
- @Named("bar")
- @Provides
- Set<String> foo();
-
- @Named("exception")
- @Provides
- Set<String> exception();
-
- @Named("NoSuchElementException")
- @Provides
- Set<String> noSuchElementException();
- }
-
@Test
public void testProvidesWithGeneric() {
ProvidingApi client = requestsSendResponses(ImmutableMap.<HttpRequest, HttpResponse> of());
@@ -110,16 +93,16 @@ public class ProvidesAnnotationExpectTest extends BaseRestApiExpectTest<Provides
@Override
public ProviderMetadata createProviderMetadata() {
- return forClientMappedToAsyncClientOnEndpoint(ProvidingApi.class, ProvidingAsyncApi.class, "http://mock");
+ return AnonymousProviderMetadata.forApiOnEndpoint(ProvidingApi.class, "http://mock");
}
@Override
protected Module createModule() {
- return new ProvidingRestClientModule();
+ return new ProvidingHttpApiModule();
}
- @ConfiguresRestClient
- static class ProvidingRestClientModule extends RestClientModule<ProvidingApi, ProvidingAsyncApi> {
+ @ConfiguresHttpApi
+ static class ProvidingHttpApiModule extends HttpApiModule<ProvidingApi> {
@Override
protected void configure() {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/config/MappedHttpInvocationModuleTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/config/MappedHttpInvocationModuleTest.java b/core/src/test/java/org/jclouds/rest/config/MappedHttpInvocationModuleTest.java
deleted file mode 100644
index bff7f30..0000000
--- a/core/src/test/java/org/jclouds/rest/config/MappedHttpInvocationModuleTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.rest.config;
-
-import static com.google.common.base.Predicates.not;
-import static com.google.common.collect.Maps.filterEntries;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.jclouds.rest.HttpAsyncClient;
-import org.jclouds.rest.HttpClient;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.reflect.Invokable;
-import com.google.common.reflect.TypeToken;
-import com.google.common.util.concurrent.ListenableFuture;
-
-@Test(groups = "unit")
-public class MappedHttpInvocationModuleTest {
- interface Sync {
- String get();
- }
-
- private interface Async {
- ListenableFuture<String> get();
- }
-
- public void testPutInvokablesWhenInterfacesMatch() {
- Cache<Invokable<?, ?>, Invokable<?, ?>> cache = CacheBuilder.newBuilder().build();
- SyncToAsyncHttpInvocationModule.putInvokables(Sync.class, Async.class, cache);
-
- assertEquals(cache.size(), 1);
-
- Invokable<?, ?> sync = cache.asMap().keySet().iterator().next();
- assertEquals(sync.getOwnerType().getRawType(), Sync.class);
- assertEquals(sync.getName(), "get");
- assertEquals(sync.getReturnType(), TypeToken.of(String.class));
-
- Invokable<?, ?> async = cache.getIfPresent(sync);
- assertEquals(async.getOwnerType().getRawType(), Async.class);
- assertEquals(async.getName(), "get");
- assertEquals(async.getReturnType(), new TypeToken<ListenableFuture<String>>() {
- private static final long serialVersionUID = 1L;
- });
- }
-
- private interface AsyncWithException {
- ListenableFuture<String> get() throws IOException;
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".* has different typed exceptions than target .*")
- public void testPutInvokablesWhenInterfacesMatchExceptExceptions() {
- Cache<Invokable<?, ?>, Invokable<?, ?>> cache = CacheBuilder.newBuilder().build();
- SyncToAsyncHttpInvocationModule.putInvokables(Sync.class, AsyncWithException.class, cache);
- }
-
- private interface AsyncWithMisnamedMethod {
- ListenableFuture<String> got();
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "no such method .*")
- public void testPutInvokablesWhenTargetMethodNotFound() {
- Cache<Invokable<?, ?>, Invokable<?, ?>> cache = CacheBuilder.newBuilder().build();
- SyncToAsyncHttpInvocationModule.putInvokables(Sync.class, AsyncWithMisnamedMethod.class, cache);
- }
-
- static final Predicate<Entry<Invokable<?, ?>, Invokable<?, ?>>> isHttpInvokable = new Predicate<Map.Entry<Invokable<?, ?>, Invokable<?, ?>>>() {
- public boolean apply(Map.Entry<Invokable<?, ?>, Invokable<?, ?>> in) {
- return in.getKey().getOwnerType().getRawType().equals(HttpClient.class)
- && in.getValue().getOwnerType().getRawType().equals(HttpAsyncClient.class);
- }
- };
-
- public void testSeedKnownSync2AsyncIncludesHttpClientByDefault() {
- Map<Invokable<?, ?>, Invokable<?, ?>> cache = SyncToAsyncHttpInvocationModule.seedKnownSync2AsyncInvokables(
- ImmutableMap.<Class<?>, Class<?>> of()).asMap();
-
- assertEquals(cache.size(), 6);
- assertEquals(filterEntries(cache, isHttpInvokable), cache);
- }
-
- public void testSeedKnownSync2AsyncInvokablesInterfacesMatch() {
- Map<Invokable<?, ?>, Invokable<?, ?>> cache = SyncToAsyncHttpInvocationModule.seedKnownSync2AsyncInvokables(
- ImmutableMap.<Class<?>, Class<?>> of(Sync.class, Async.class)).asMap();
-
- assertEquals(cache.size(), 7);
-
- cache = filterEntries(cache, not(isHttpInvokable));
-
- assertEquals(cache.size(), 1);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/internal/BaseAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/internal/BaseAsyncClientTest.java b/core/src/test/java/org/jclouds/rest/internal/BaseAsyncClientTest.java
deleted file mode 100644
index 26c4de5..0000000
--- a/core/src/test/java/org/jclouds/rest/internal/BaseAsyncClientTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.rest.internal;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "unit")
-// TODO: remove once abiquo no longer uses this.
-public abstract class BaseAsyncClientTest<T> extends BaseRestAnnotationProcessingTest<T> {
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/internal/BaseRestApiExpectTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/internal/BaseRestApiExpectTest.java b/core/src/test/java/org/jclouds/rest/internal/BaseRestApiExpectTest.java
index 0a1f5c2..34a461e 100644
--- a/core/src/test/java/org/jclouds/rest/internal/BaseRestApiExpectTest.java
+++ b/core/src/test/java/org/jclouds/rest/internal/BaseRestApiExpectTest.java
@@ -557,8 +557,6 @@ public abstract class BaseRestApiExpectTest<S> {
ApiMetadata am = builder.getApiMetadata();
if (am instanceof HttpApiMetadata) {
this.api = HttpApiMetadata.class.cast(am).getApi();
- } else if (am instanceof org.jclouds.rest.RestApiMetadata) {
- this.api = org.jclouds.rest.RestApiMetadata.class.cast(am).getApi();
} else {
throw new UnsupportedOperationException("unsupported base type: " + am);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java b/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java
deleted file mode 100644
index 20f4d75..0000000
--- a/core/src/test/java/org/jclouds/rest/internal/BaseRestApiMetadataTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.rest.internal;
-import static org.jclouds.reflect.Reflection2.typeToken;
-
-import java.util.Set;
-
-import org.jclouds.View;
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.apis.Apis;
-import org.jclouds.apis.internal.BaseApiMetadataTest;
-import org.jclouds.rest.RestApiMetadata;
-import org.jclouds.rest.RestContext;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.reflect.TypeToken;
-
-@Test(groups = "unit")
-public abstract class BaseRestApiMetadataTest extends BaseApiMetadataTest {
-
- public BaseRestApiMetadataTest(RestApiMetadata toTest, Set<TypeToken<? extends View>> views) {
- super(toTest, views);
- }
-
- @Test
- public void testContextAssignableFromRestContext() {
- Set<ApiMetadata> all = ImmutableSet.copyOf(Apis.contextAssignableFrom(typeToken(RestContext.class)));
- assert all.contains(toTest) : String.format("%s not found in %s", toTest, all);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/core/src/test/java/org/jclouds/rest/internal/InvokeMappedHttpMethodTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/internal/InvokeMappedHttpMethodTest.java b/core/src/test/java/org/jclouds/rest/internal/InvokeMappedHttpMethodTest.java
deleted file mode 100644
index 6b51810..0000000
--- a/core/src/test/java/org/jclouds/rest/internal/InvokeMappedHttpMethodTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.rest.internal;
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.jclouds.reflect.Reflection2.method;
-import static org.testng.Assert.assertEquals;
-
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Named;
-
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpCommandExecutorService;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.reflect.Invocation;
-import org.jclouds.rest.config.InvocationConfig;
-import org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.InvokeAndTransform;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-import com.google.common.util.concurrent.TimeLimiter;
-
-@Test(groups = "unit", singleThreaded = true)
-public class InvokeMappedHttpMethodTest {
-
- public interface ThingApi {
- HttpResponse get();
- }
-
- public interface ThingAsyncApi {
- @Named("ns:get")
- ListenableFuture<HttpResponse> get();
- }
-
- private Invocation get;
- private Invocation asyncGet;
- private Function<Invocation, Invocation> sync2async;
- private HttpRequest getRequest = HttpRequest.builder().method("GET").endpoint("http://get").build();
- private HttpCommand getCommand = new HttpCommand(getRequest);
- private Function<Invocation, HttpRequest> toRequest;
-
- @BeforeClass
- void setupInvocations() throws SecurityException, NoSuchMethodException {
- get = Invocation.create(method(ThingApi.class, "get"), ImmutableList.of());
- asyncGet = Invocation.create(method(ThingAsyncApi.class, "get"), ImmutableList.of());
- sync2async = Functions.forMap(ImmutableMap.of(get, asyncGet));
- toRequest = Functions.forMap(ImmutableMap.of(asyncGet, getRequest));
- }
-
- @SuppressWarnings("unchecked")
- private Function<HttpRequest, Function<HttpResponse, ?>> transformerForRequest = Function.class.cast(Functions
- .constant(Functions.identity()));
- private ListeningExecutorService userThreads = MoreExecutors.newDirectExecutorService();
-
- private HttpResponse response = HttpResponse.builder().statusCode(200).payload("foo").build();
- private HttpCommandExecutorService http;
- private TimeLimiter timeLimiter;
- @SuppressWarnings("rawtypes")
- private org.jclouds.Fallback fallback;
- private InvocationConfig config;
- private InvokeSyncToAsyncHttpMethod invokeHttpMethod;
-
- private ListenableFuture<HttpResponse> future;
-
- @SuppressWarnings("unchecked")
- @BeforeMethod
- void createMocks() {
- http = createMock(HttpCommandExecutorService.class);
- timeLimiter = createMock(TimeLimiter.class);
- fallback = createMock(org.jclouds.Fallback.class);
- config = createMock(InvocationConfig.class);
- future = createMock(ListenableFuture.class);
- invokeHttpMethod = new InvokeSyncToAsyncHttpMethod(sync2async, toRequest, http, transformerForRequest, timeLimiter, config,
- userThreads);
- expect(config.getCommandName(asyncGet)).andReturn("ns:get");
- expect(config.getFallback(asyncGet)).andReturn(fallback);
- }
-
- @AfterMethod
- void verifyMocks() {
- verify(http, timeLimiter, fallback, config, future);
- }
-
- public void testMethodWithTimeoutRunsTimeLimiter() throws Exception {
- expect(config.getTimeoutNanos(asyncGet)).andReturn(Optional.of(250000000l));
- InvokeAndTransform invoke = invokeHttpMethod.new InvokeAndTransform("ns:get", getCommand);
- expect(timeLimiter.callWithTimeout(invoke, 250000000, TimeUnit.NANOSECONDS, true)).andReturn(response);
- replay(http, timeLimiter, fallback, config, future);
- invokeHttpMethod.apply(get);
- }
-
- public void testMethodWithNoTimeoutCallGetDirectly() throws Exception {
- expect(config.getTimeoutNanos(asyncGet)).andReturn(Optional.<Long> absent());
- expect(http.invoke(new HttpCommand(getRequest))).andReturn(response);
- replay(http, timeLimiter, fallback, config, future);
- invokeHttpMethod.apply(get);
- }
-
- public void testAsyncMethodSubmitsRequest() throws Exception {
- expect(http.submit(new HttpCommand(getRequest))).andReturn(future);
- future.addListener(anyObject(Runnable.class), eq(MoreExecutors.directExecutor()));
- replay(http, timeLimiter, fallback, config, future);
- invokeHttpMethod.apply(asyncGet);
- }
-
- private HttpResponse fallbackResponse = HttpResponse.builder().statusCode(200).payload("bar").build();
-
- public void testDirectCallRunsFallbackCreateOrPropagate() throws Exception {
- IllegalStateException exception = new IllegalStateException();
- expect(config.getTimeoutNanos(asyncGet)).andReturn(Optional.<Long> absent());
- expect(http.invoke(new HttpCommand(getRequest))).andThrow(exception);
- expect(fallback.createOrPropagate(exception)).andReturn(fallbackResponse);
- replay(http, timeLimiter, fallback, config, future);
- assertEquals(invokeHttpMethod.apply(get), fallbackResponse);
- }
-
- public void testTimeLimitedRunsFallbackCreateOrPropagate() throws Exception {
- IllegalStateException exception = new IllegalStateException();
- expect(config.getTimeoutNanos(asyncGet)).andReturn(Optional.of(250000000l));
- InvokeAndTransform invoke = invokeHttpMethod.new InvokeAndTransform("ns:get", getCommand);
- expect(timeLimiter.callWithTimeout(invoke, 250000000, TimeUnit.NANOSECONDS, true)).andThrow(exception);
- expect(fallback.createOrPropagate(exception)).andReturn(fallbackResponse);
- replay(http, timeLimiter, fallback, config, future);
- assertEquals(invokeHttpMethod.apply(get), fallbackResponse);
- }
-
- @SuppressWarnings("unchecked")
- public void testSubmitRunsFallbackCreateOnGet() throws Exception {
- IllegalStateException exception = new IllegalStateException();
- expect(http.submit(new HttpCommand(getRequest))).andReturn(
- Futures.<HttpResponse> immediateFailedFuture(exception));
- expect(fallback.create(exception)).andReturn(Futures.<HttpResponse> immediateFuture(fallbackResponse));
- // not using the field, as you can see above we are making an immediate
- // failed future instead.
- future = createMock(ListenableFuture.class);
- replay(http, timeLimiter, fallback, config, future);
- assertEquals(ListenableFuture.class.cast(invokeHttpMethod.apply(asyncGet)).get(), fallbackResponse);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c3497536/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 9f6d413..a16eb91 100644
--- a/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java
+++ b/core/src/test/java/org/jclouds/rest/internal/RestAnnotationProcessorTest.java
@@ -18,8 +18,11 @@ package org.jclouds.rest.internal;
import static com.google.common.base.Charsets.UTF_8;
import static com.google.common.base.Preconditions.checkNotNull;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static javax.ws.rs.core.MediaType.APPLICATION_XML;
import static org.jclouds.io.Payloads.newInputStreamPayload;
import static org.jclouds.io.Payloads.newStringPayload;
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
import static org.jclouds.reflect.Reflection2.method;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
@@ -38,6 +41,7 @@ import java.lang.annotation.Target;
import java.net.URI;
import java.net.URLEncoder;
import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -45,6 +49,7 @@ import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ExecutionException;
+
import javax.inject.Named;
import javax.inject.Qualifier;
import javax.inject.Singleton;
@@ -90,10 +95,8 @@ import org.jclouds.io.PayloadEnclosing;
import org.jclouds.io.Payloads;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.logging.config.NullLoggingModule;
-import org.jclouds.providers.AnonymousProviderMetadata;
import org.jclouds.reflect.Invocation;
-import org.jclouds.reflect.InvocationSuccess;
-import org.jclouds.rest.ConfiguresRestClient;
+import org.jclouds.rest.ConfiguresHttpApi;
import org.jclouds.rest.InvocationContext;
import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Delegate;
@@ -119,8 +122,7 @@ import org.jclouds.rest.annotations.WrapWith;
import org.jclouds.rest.binders.BindAsHostPrefix;
import org.jclouds.rest.binders.BindToJsonPayload;
import org.jclouds.rest.binders.BindToStringPayload;
-import org.jclouds.rest.config.RestClientModule;
-import org.jclouds.rest.functions.ImplicitOptionalConverter;
+import org.jclouds.rest.config.HttpApiModule;
import org.jclouds.util.Strings2;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
@@ -144,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.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.inject.AbstractModule;
import com.google.inject.ConfigurationException;
@@ -152,19 +153,12 @@ import com.google.inject.Injector;
import com.google.inject.Module;
import com.google.inject.Provides;
import com.google.inject.TypeLiteral;
-/**
- * Tests behavior of {@code RestAnnotationProcessor}
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during
-// surefire
+
@Test(groups = "unit", testName = "RestAnnotationProcessorTest")
public class RestAnnotationProcessorTest extends BaseRestApiTest {
- @ConfiguresRestClient
- protected static class CallerModule extends RestClientModule<Caller, AsyncCaller> {
- CallerModule() {
- super(ImmutableMap.<Class<?>, Class<?>> of(Callee.class, AsyncCallee.class, Callee2.class, AsyncCallee2.class));
- }
+ @ConfiguresHttpApi
+ protected static class CallerModule extends HttpApiModule<Caller> {
@Override
protected void configure() {
@@ -176,39 +170,37 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
}
@Path("/client/{jclouds.api-version}")
- public interface AsyncCallee extends Closeable {
+ public interface Callee extends Closeable {
@GET
@Path("/{path}")
- ListenableFuture<Void> onePath(@PathParam("path") String path);
+ void onePath(@PathParam("path") String path);
@POST
- ListenableFuture<Void> testWithoutProducesAndConsumes();
+ void testWithoutProducesAndConsumes();
@POST
- @Produces(MediaType.APPLICATION_XML)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Void> testProducesAndConsumesOnMethod();
+ @Produces(APPLICATION_XML)
+ @Consumes(APPLICATION_XML)
+ void testProducesAndConsumesOnMethod();
}
@Path("/client/{jclouds.api-version}")
- @Produces(MediaType.APPLICATION_XML)
- @Consumes(MediaType.APPLICATION_XML)
- public interface AsyncCalleeWithProducesAndConsumesOnClass extends Closeable {
+ @Produces(APPLICATION_XML)
+ @Consumes(APPLICATION_XML)
+ public interface CalleeWithProducesAndConsumesOnClass extends Closeable {
@POST
- ListenableFuture<Void> testProducesAndConsumesOnClass();
+ void testProducesAndConsumesOnClass();
}
@Path("/client/{jclouds.api-version}")
- public interface AsyncCallee2 {
+ public interface Callee2 {
@GET
@Path("/{path}/2")
- ListenableFuture<Void> onePath(@PathParam("path") String path);
+ void onePath(@PathParam("path") String path);
}
@Endpoint(Localhost2.class)
public interface Caller extends Closeable {
-
- // tests that we can pull from suppliers
@Provides
@Localhost2
URI getURI();
@@ -233,98 +225,21 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
Callee getCalleeWithHeader(@EndpointParam URI endpoint, @HeaderParam("header") String header);
@Delegate
+ @Produces(APPLICATION_JSON)
+ @Consumes(APPLICATION_JSON)
Callee getCalleeWithoutProducesAndConsumes();
@Delegate
+ @Produces(APPLICATION_JSON)
+ @Consumes(APPLICATION_JSON)
Callee getCalleeWithProducesAndConsumesOnMethod();
@Delegate
+ @Produces(APPLICATION_JSON)
+ @Consumes(APPLICATION_JSON)
CalleeWithProducesAndConsumesOnClass getCalleeWithProducesAndConsumesOnClass();
}
- public interface Callee extends Closeable {
- void onePath(String path);
- void testWithoutProducesAndConsumes();
- void testProducesAndConsumesOnMethod();
- }
-
- public interface CalleeWithProducesAndConsumesOnClass extends Closeable {
- void testProducesAndConsumesOnClass();
- }
-
- public interface Callee2 {
- void onePath(String path);
- }
-
- public interface AsyncCaller extends Closeable {
- @Provides
- @Localhost2
- URI getURI();
-
- @Delegate
- AsyncCallee getCallee();
-
- @Delegate
- AsyncCallee2 getCallee2();
-
- @Delegate
- AsyncCallee getCallee(@EndpointParam URI endpoint);
-
- @Delegate
- Optional<AsyncCallee> getOptionalCallee(@EndpointParam URI endpoint);
-
- @Delegate
- @Path("/testing/testing/{wibble}")
- AsyncCallee getCalleeWithPath(@EndpointParam URI endpoint, @PathParam("wibble") String wibble);
-
- @Delegate
- AsyncCallee getCalleeWithHeader(@EndpointParam URI endpoint, @HeaderParam("header") String header);
-
- @Delegate
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- AsyncCallee getCalleeWithoutProducesAndConsumes();
-
- @Delegate
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- AsyncCallee getCalleeWithProducesAndConsumesOnMethod();
-
- @Delegate
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- AsyncCalleeWithProducesAndConsumesOnClass getCalleeWithProducesAndConsumesOnClass();
- }
-
- public void testAsyncDelegateIsLazyLoadedAndRequestIncludesVersionAndPath() throws InterruptedException,
- ExecutionException {
- Injector child = injectorForCaller(new HttpCommandExecutorService() {
-
- @Override
- public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
- }
-
- @Override
- public HttpResponse invoke(HttpCommand command) {
- assertEquals(command.getCurrentRequest().getRequestLine(),
- "GET http://localhost:9999/client/1/foo HTTP/1.1");
- return HttpResponse.builder().build();
- }
-
- });
-
- try {
- child.getInstance(AsyncCallee.class);
- fail("Callee shouldn't be bound yet");
- } catch (ConfigurationException e) {
-
- }
-
- child.getInstance(AsyncCaller.class).getCallee().onePath("foo").get();
-
- }
-
public void testDelegateIsLazyLoadedAndRequestIncludesVersionAndPath() throws InterruptedException,
ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@@ -332,7 +247,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError();
}
@Override
@@ -361,43 +276,13 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
child.getInstance(Caller.class).getCallee().onePath("foo");
}
- public void testAsyncDelegateIsLazyLoadedAndRequestIncludesEndpointVersionAndPath() throws InterruptedException,
- ExecutionException {
- Injector child = injectorForCaller(new HttpCommandExecutorService() {
-
- @Override
- public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
- }
-
- @Override
- public HttpResponse invoke(HttpCommand command) {
- assertEquals(command.getCurrentRequest().getRequestLine(), "GET http://howdyboys/client/1/foo HTTP/1.1");
- return HttpResponse.builder().build();
- }
-
- });
-
- try {
- child.getInstance(AsyncCallee.class);
- fail("Callee shouldn't be bound yet");
- } catch (ConfigurationException e) {
-
- }
-
- child.getInstance(AsyncCaller.class).getCallee(URI.create("http://howdyboys")).onePath("foo").get();
-
- assertEquals(child.getInstance(AsyncCaller.class).getURI(), URI.create("http://localhost:1111"));
-
- }
-
- public void testAsyncDelegateWithPathParamIsLazyLoadedAndRequestIncludesEndpointVersionAndPath()
+ public void testDelegateWithPathParamIsLazyLoadedAndRequestIncludesEndpointVersionAndPath()
throws InterruptedException, ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
@@ -410,25 +295,25 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
});
try {
- child.getInstance(AsyncCallee.class);
+ child.getInstance(Callee.class);
fail("Callee shouldn't be bound yet");
} catch (ConfigurationException e) {
}
- child.getInstance(AsyncCaller.class).getCalleeWithPath(URI.create("http://howdyboys"), "thepathparam")
- .onePath("foo").get();
+ child.getInstance(Caller.class).getCalleeWithPath(URI.create("http://howdyboys"), "thepathparam")
+ .onePath("foo");
- assertEquals(child.getInstance(AsyncCaller.class).getURI(), URI.create("http://localhost:1111"));
+ assertEquals(child.getInstance(Caller.class).getURI(), URI.create("http://localhost:1111"));
}
- public void testAsyncDelegateWithHeaderParamIsLazyLoadedAndRequestIncludesEndpointVersionAndHeader()
+ public void testDelegateWithHeaderParamIsLazyLoadedAndRequestIncludesEndpointVersionAndHeader()
throws InterruptedException, ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
@@ -440,146 +325,113 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
});
try {
- child.getInstance(AsyncCallee.class);
+ child.getInstance(Callee.class);
fail("Callee shouldn't be bound yet");
} catch (ConfigurationException e) {
}
- child.getInstance(AsyncCaller.class).getCalleeWithHeader(URI.create("http://howdyboys"), "theheaderparam")
- .onePath("foo").get();
+ child.getInstance(Caller.class).getCalleeWithHeader(URI.create("http://howdyboys"), "theheaderparam")
+ .onePath("foo");
}
- public void testAsyncDelegateWithoutProducesAndConsumes()
+ public void testDelegateWithoutProducesAndConsumes()
throws InterruptedException, ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
public HttpResponse invoke(HttpCommand command) {
assertEquals(
command.getCurrentRequest().getPayload().getContentMetadata().getContentType(),
- MediaType.APPLICATION_JSON);
- assertTrue(command.getCurrentRequest().getHeaders().get("Accept").contains(MediaType.APPLICATION_JSON));
+ APPLICATION_JSON);
+ assertTrue(command.getCurrentRequest().getHeaders().get("Accept").contains(APPLICATION_JSON));
return HttpResponse.builder().build();
}
});
try {
- child.getInstance(AsyncCallee.class);
+ child.getInstance(Callee.class);
fail("Callee shouldn't be bound yet");
} catch (ConfigurationException e) {
}
- child.getInstance(AsyncCaller.class).getCalleeWithoutProducesAndConsumes()
- .testWithoutProducesAndConsumes().get();
+ child.getInstance(Caller.class).getCalleeWithoutProducesAndConsumes().testWithoutProducesAndConsumes();
}
- public void testAsyncDelegateWithProducesAndConsumesOnMethodIsLazyLoaded()
+ public void testDelegateWithProducesAndConsumesOnMethodIsLazyLoaded()
throws InterruptedException, ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
public HttpResponse invoke(HttpCommand command) {
assertEquals(
command.getCurrentRequest().getPayload().getContentMetadata().getContentType(),
- MediaType.APPLICATION_XML);
- assertTrue(command.getCurrentRequest().getHeaders().get("Accept").contains(MediaType.APPLICATION_XML));
+ APPLICATION_XML);
+ assertTrue(command.getCurrentRequest().getHeaders().get("Accept").contains(APPLICATION_XML));
return HttpResponse.builder().build();
}
});
try {
- child.getInstance(AsyncCallee.class);
+ child.getInstance(Callee.class);
fail("Callee shouldn't be bound yet");
} catch (ConfigurationException e) {
}
- child.getInstance(AsyncCaller.class).getCalleeWithProducesAndConsumesOnMethod()
- .testProducesAndConsumesOnMethod().get();
+ child.getInstance(Caller.class).getCalleeWithProducesAndConsumesOnMethod().testProducesAndConsumesOnMethod();
}
- public void testAsyncDelegateWithProducesAndConsumesOnClassIsLazyLoaded()
+ public void testDelegateWithProducesAndConsumesOnClassIsLazyLoaded()
throws InterruptedException, ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
public HttpResponse invoke(HttpCommand command) {
assertEquals(
command.getCurrentRequest().getPayload().getContentMetadata().getContentType(),
- MediaType.APPLICATION_XML);
- assertTrue(command.getCurrentRequest().getHeaders().get("Accept").contains(MediaType.APPLICATION_XML));
- return HttpResponse.builder().build();
- }
-
- });
-
- try {
- child.getInstance(AsyncCallee.class);
- fail("Callee shouldn't be bound yet");
- } catch (ConfigurationException e) {
-
- }
-
- child.getInstance(AsyncCaller.class).getCalleeWithProducesAndConsumesOnClass()
- .testProducesAndConsumesOnClass().get();
- }
-
- public void testAsyncDelegateIsLazyLoadedAndRequestIncludesEndpointVersionAndPathOptionalPresent()
- throws InterruptedException, ExecutionException {
- Injector child = injectorForCaller(new HttpCommandExecutorService() {
-
- @Override
- public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
- }
-
- @Override
- public HttpResponse invoke(HttpCommand command) {
- assertEquals(command.getCurrentRequest().getRequestLine(), "GET http://howdyboys/client/1/foo HTTP/1.1");
+ APPLICATION_XML);
+ assertTrue(command.getCurrentRequest().getHeaders().get("Accept").contains(APPLICATION_XML));
return HttpResponse.builder().build();
}
});
try {
- child.getInstance(AsyncCallee.class);
+ child.getInstance(Callee.class);
fail("Callee shouldn't be bound yet");
} catch (ConfigurationException e) {
}
- child.getInstance(AsyncCaller.class).getOptionalCallee(URI.create("http://howdyboys")).get().onePath("foo").get();
-
- assertEquals(child.getInstance(AsyncCaller.class).getURI(), URI.create("http://localhost:1111"));
-
+ child.getInstance(Caller.class).getCalleeWithProducesAndConsumesOnClass().testProducesAndConsumesOnClass();
}
- public void testAsyncDelegateIsLazyLoadedAndRequestIncludesEndpointVersionAndPathCanOverrideOptionalBehaviour()
+ public void testDelegateIsLazyLoadedAndRequestIncludesEndpointVersionAndPathOptionalPresent()
throws InterruptedException, ExecutionException {
Injector child = injectorForCaller(new HttpCommandExecutorService() {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
@@ -588,32 +440,18 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
return HttpResponse.builder().build();
}
- }, new AbstractModule() {
-
- @Override
- protected void configure() {
- bind(ImplicitOptionalConverter.class).toInstance(new ImplicitOptionalConverter() {
-
- @Override
- public Optional<Object> apply(InvocationSuccess input) {
- return Optional.absent();
- }
-
- });
- }
-
});
try {
- child.getInstance(AsyncCallee.class);
+ child.getInstance(Callee.class);
fail("Callee shouldn't be bound yet");
} catch (ConfigurationException e) {
}
- assert !child.getInstance(AsyncCaller.class).getOptionalCallee(URI.create("http://howdyboys")).isPresent();
+ child.getInstance(Caller.class).getOptionalCallee(URI.create("http://howdyboys")).get().onePath("foo");
- assertEquals(child.getInstance(AsyncCaller.class).getURI(), URI.create("http://localhost:1111"));
+ assertEquals(child.getInstance(Caller.class).getURI(), URI.create("http://localhost:1111"));
}
@@ -623,7 +461,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@Override
public ListenableFuture<HttpResponse> submit(HttpCommand command) {
- return Futures.immediateFuture(invoke(command));
+ throw new AssertionError("jclouds no longer uses the submit method");
}
@Override
@@ -646,13 +484,12 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
}
private Injector injectorForCaller(HttpCommandExecutorService service, Module... modules) {
- return ContextBuilder
- .newBuilder(
- AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(Caller.class, AsyncCaller.class,
- "http://localhost:9999"))
- .modules(
- ImmutableSet.<Module> builder().add(new MockModule(service)).add(new NullLoggingModule())
- .add(new CallerModule()).addAll(ImmutableSet.<Module> copyOf(modules)).build()).buildInjector();
+ return ContextBuilder.newBuilder(forApiOnEndpoint(Caller.class, "http://localhost:9999"))
+ .modules(ImmutableSet.<Module> builder()
+ .add(new MockModule(service))
+ .add(new NullLoggingModule())
+ .add(new CallerModule())
+ .addAll(Arrays.asList(modules)).build()).buildInjector();
}
@@ -1256,12 +1093,12 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@GET
@Path("/")
@Consumes("application/json")
- ListenableFuture<Map<String, String>> testGeneric2();
+ Map<String, String> testGeneric2();
@GET
@Path("/")
@Consumes("application/json")
- ListenableFuture<? extends Map<String, String>> testGeneric3();
+ Map<String, String> testGeneric3();
@GET
@Path("/")
@@ -1283,30 +1120,30 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@Path("/")
@Unwrap
@Consumes("application/json")
- ListenableFuture<String> testUnwrap2();
+ String testUnwrap2();
@GET
@Path("/")
@Unwrap
@Consumes("application/json")
- ListenableFuture<Set<String>> testUnwrap3();
+ Set<String> testUnwrap3();
@GET
@Path("/")
@Unwrap
@Consumes("application/json")
- ListenableFuture<? extends Set<String>> testUnwrap4();
+ Set<String> testUnwrap4();
@GET
@Path("/")
@SelectJson("jobid")
- ListenableFuture<Long> selectLong();
+ Long selectLong();
@GET
@Path("/")
@SelectJson("jobid")
@Transform(AddOne.class)
- ListenableFuture<Long> selectLongAddOne();
+ Long selectLongAddOne();
static class AddOne implements Function<Long, Long> {
@@ -1321,7 +1158,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@SelectJson("runit")
@OnlyElement
@Consumes("application/json")
- ListenableFuture<String> selectOnlyElement();
+ String selectOnlyElement();
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@@ -1331,11 +1168,11 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@ROWDY
@Path("/strings/{id}")
- ListenableFuture<Boolean> rowdy(@PathParam("id") String path);
+ Boolean rowdy(@PathParam("id") String path);
@ROWDY
@Path("/ints/{id}")
- ListenableFuture<Boolean> rowdy(@PathParam("id") int path);
+ Boolean rowdy(@PathParam("id") int path);
}
static class View {
@@ -1594,9 +1431,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
// Now let's create a new injector with the property set. Use that to create the annotation processor.
Properties overrides = new Properties();
overrides.setProperty(Constants.PROPERTY_STRIP_EXPECT_HEADER, "true");
- Injector injector = ContextBuilder.newBuilder(
- AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(Callee.class, AsyncCallee.class,
- "http://localhost:9999"))
+ Injector injector = ContextBuilder.newBuilder(forApiOnEndpoint(Callee.class, "http://localhost:9999"))
.modules(ImmutableSet.<Module> of(new MockModule(), new NullLoggingModule(), new AbstractModule() {
protected void configure() {
bind(new TypeLiteral<Supplier<URI>>() {
@@ -1931,31 +1766,31 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
public interface TestTransformers {
@GET
- ListenableFuture<Integer> noTransformer();
+ Integer noTransformer();
@GET
@ResponseParser(ReturnStringIf2xx.class)
- ListenableFuture<Void> oneTransformer();
+ void oneTransformer();
@GET
@ResponseParser(ReturnStringIf200Context.class)
- ListenableFuture<Void> oneTransformerWithContext();
+ void oneTransformerWithContext();
@GET
- ListenableFuture<InputStream> futureInputStream();
+ InputStream futureInputStream();
@GET
- ListenableFuture<URI> futureUri();
+ URI futureUri();
@PUT
- ListenableFuture<Void> put(Payload payload);
+ void put(Payload payload);
@PUT
@Headers(keys = "Transfer-Encoding", values = "chunked")
- ListenableFuture<Void> putXfer(Payload payload);
+ void putXfer(Payload payload);
@PUT
- ListenableFuture<Void> put(PayloadEnclosing payload);
+ void put(PayloadEnclosing payload);
}
public void testPutPayloadEnclosing() throws SecurityException, NoSuchMethodException, IOException {
@@ -2149,48 +1984,48 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@GET
@VirtualHost
@Path("/{id}")
- ListenableFuture<String> get(@PathParam("id") String id, HttpRequestOptions options);
+ String get(@PathParam("id") String id, HttpRequestOptions options);
@GET
@VirtualHost
@Path("/{id}")
- ListenableFuture<String> get(@PathParam("id") String id, HttpRequestOptions... options);
+ String get(@PathParam("id") String id, HttpRequestOptions... options);
@GET
@Path("/{id}")
@ResponseParser(ReturnStringIf2xx.class)
- ListenableFuture<String> get(@PathParam("id") String id, @HeaderParam(HttpHeaders.HOST) String host);
+ String get(@PathParam("id") String id, @HeaderParam(HttpHeaders.HOST) String host);
@GET
@Path("/{id}")
@QueryParams(keys = "max-keys", values = "0")
- ListenableFuture<String> getQuery(@PathParam("id") String id);
+ String getQuery(@PathParam("id") String id);
@GET
@Path("/{id}")
@QueryParams(keys = "acl")
- ListenableFuture<String> getQueryNull(@PathParam("id") String id);
+ String getQueryNull(@PathParam("id") String id);
@GET
@Path("/{id}")
@QueryParams(keys = "acl", values = "")
- ListenableFuture<String> getQueryEmpty(@PathParam("id") String id);
+ String getQueryEmpty(@PathParam("id") String id);
@PUT
@Path("/{id}")
- ListenableFuture<String> put(@PathParam("id") @ParamParser(FirstCharacter.class) String id,
+ String put(@PathParam("id") @ParamParser(FirstCharacter.class) String id,
@BinderParam(BindToStringPayload.class) String payload);
@PUT
@Path("/{id}")
@VirtualHost
- ListenableFuture<String> putOptions(@PathParam("id") String id, HttpRequestOptions options);
+ String putOptions(@PathParam("id") String id, HttpRequestOptions options);
@PUT
@Path("/{id}")
@Headers(keys = "foo", values = "--{id}--")
@ResponseParser(ReturnTrueIf2xx.class)
- ListenableFuture<String> putHeader(@PathParam("id") String id,
+ String putHeader(@PathParam("id") String id,
@BinderParam(BindToStringPayload.class) String payload);
}
@@ -2335,7 +2170,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@GET
@Path("/{id}")
@VirtualHost
- public ListenableFuture<String> get(@PathParam("id") String id, String foo) {
+ public String get(@PathParam("id") String id, String foo) {
return null;
}
}
@@ -2356,11 +2191,11 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@GET
@Path("/{id}")
@VirtualHost
- ListenableFuture<String> get(@PathParam("id") String id, String foo);
+ String get(@PathParam("id") String id, String foo);
@GET
@Path("/{id}")
- ListenableFuture<String> getPrefix(@PathParam("id") String id, @BinderParam(BindAsHostPrefix.class) String foo);
+ String getPrefix(@PathParam("id") String id, @BinderParam(BindAsHostPrefix.class) String foo);
}
@@ -2501,7 +2336,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@PUT
@Path("/{foo}")
- ListenableFuture<Void> putWithPath(@PathParam("foo") String path,
+ void putWithPath(@PathParam("foo") String path,
@BinderParam(BindToStringPayload.class) String content);
@PUT
@@ -2653,9 +2488,7 @@ public class RestAnnotationProcessorTest extends BaseRestApiTest {
@BeforeClass
void setupFactory() {
injector = ContextBuilder
- .newBuilder(
- AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(Callee.class, AsyncCallee.class,
- "http://localhost:9999"))
+ .newBuilder(forApiOnEndpoint(Callee.class, "http://localhost:9999"))
.modules(ImmutableSet.<Module> of(new MockModule(), new NullLoggingModule(), new AbstractModule() {
protected void configure() {
bind(new TypeLiteral<Supplier<URI>>() {