Repository: jclouds-labs
Updated Branches:
  refs/heads/master 0cbcf181c -> d7bc430c6


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
index ec8dbdb..e25f8be 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryApi.java
@@ -16,98 +16,101 @@
  */
 package org.jclouds.vcloud.director.v1_5.features.admin;
 
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.QueryParams;
+import org.jclouds.rest.annotations.RequestFilters;
 import org.jclouds.vcloud.director.v1_5.domain.RoleReferences;
 import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecords;
 import org.jclouds.vcloud.director.v1_5.features.QueryApi;
+import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
 
-/**
- * Provides synchronous access to {@link AdminQuery} objects.
- * 
- * @see AdminQueryAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
 public interface AdminQueryApi extends QueryApi {
-   
+
    /**
-    * Retrieves a list of {@link Group}s for organization the org admin 
belongs to by using REST API general QueryHandler
-    * 
+    * Retrieves a list of {@link Group}s for organization the org admin 
belongs to by using REST API general
+    * QueryHandler
+    *
     * <pre>
     * GET /admin/groups/query
     * </pre>
-    *
-    * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/groups/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords groupsQueryAll();
 
-   /** @see #queryAll() */
-   QueryResultRecords groupsQuery(String filter);
-
    /**
     * Retrieves a list of {@link Org}s by using REST API general QueryHandler.
     *
     * <pre>
     * GET /admin/orgs/query
     * </pre>
-    *
-    * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/orgs/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords orgsQueryAll();
 
-   /** @see #queryAll() */
-   QueryResultRecords orgsQuery(String filter);
-   
    /**
     * Retrieves a list of {@link Right}s by using REST API general 
QueryHandler.
     *
     * <pre>
     * GET /admin/rights/query
     * </pre>
-    *
-    * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/rights/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords rightsQueryAll();
 
-   /** @see #queryAll() */
-   QueryResultRecords rightsQuery(String filter);
-   
    /**
     * Retrieves a list of {@link Role}s by using REST API general QueryHandler.
     *
     * <pre>
     * GET /admin/roles/query
     * </pre>
-    *
-    * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/roles/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords rolesQueryAll();
 
-   /** @see #queryAll() */
-   QueryResultRecords rolesQuery(String filter);
-   
    /**
     * Retrieves a list of {@link RoleReference}s by using REST API general 
QueryHandler.
     *
     * <pre>
     * GET /admin/roles/query?format=references
     * </pre>
-    *
-    * @see #rolesQueryAll(String)
     */
+   @GET
+   @Path("/admin/roles/query")
+   @Consumes
+   @QueryParams(keys = { "format" }, values = { "references" })
+   @JAXBResponseParser
    RoleReferences roleReferencesQueryAll();
-   
+
    /**
     * Retrieves a list of {@link User}s by using REST API general QueryHandler.
     *
     * <pre>
     * GET /admin/strandedUsers/query
     * </pre>
-    *
-    * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/strandedUsers/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords strandedUsersQueryAll();
 
-   /** @see #queryAll() */
-   QueryResultRecords strandedUsersQuery(String filter);
-   
    /**
     * Retrieves a list of {@link User}s by using REST API general QueryHandler.
     *
@@ -117,11 +120,12 @@ public interface AdminQueryApi extends QueryApi {
     *
     * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/users/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords usersQueryAll();
 
-   /** @see #queryAll() */
-   QueryResultRecords usersQuery(String filter);
-   
    /**
     * Retrieves a list of {@link Vdc}s by using REST API general QueryHandler.
     *
@@ -131,8 +135,9 @@ public interface AdminQueryApi extends QueryApi {
     *
     * @see #queryAll(String)
     */
+   @GET
+   @Path("/admin/vdcs/query")
+   @Consumes
+   @JAXBResponseParser
    QueryResultRecords vdcsQueryAll();
-
-   /** @see #queryAll() */
-   QueryResultRecords vdcsQuery(String filter);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
deleted file mode 100644
index 98f6d6d..0000000
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminQueryAsyncApi.java
+++ /dev/null
@@ -1,132 +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.vcloud.director.v1_5.features.admin;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
-
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.RoleReferences;
-import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecords;
-import org.jclouds.vcloud.director.v1_5.features.QueryAsyncApi;
-import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Provides asynchronous access to {@link AdminQuery} objects.
- * 
- * @see AdminQueryApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminQueryAsyncApi extends QueryAsyncApi {
-   
-   @GET
-   @Path("/admin/groups/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> groupsQueryAll();
-
-   @GET
-   @Path("/admin/groups/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> groupsQuery(@QueryParam("filter") 
String filter);
-
-   @GET
-   @Path("/admin/orgs/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> orgsQueryAll();
-
-   @GET
-   @Path("/admin/orgs/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> orgsQuery(@QueryParam("filter") String 
filter);
-   
-   @GET
-   @Path("/admin/rights/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> rightsQueryAll();
-
-   @GET
-   @Path("/admin/rights/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> rightsQuery(@QueryParam("filter") 
String filter);
-   
-   @GET
-   @Path("/admin/roles/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> rolesQueryAll();
-
-   @GET
-   @Path("/admin/roles/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> rolesQuery(@QueryParam("filter") 
String filter);
-   
-   @GET
-   @Path("/admin/roles/query")
-   @Consumes
-   @QueryParams(keys = { "format" }, values = { "references" })
-   @JAXBResponseParser
-   ListenableFuture<RoleReferences> roleReferencesQueryAll();
-   
-   @GET
-   @Path("/admin/strandedUsers/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> strandedUsersQueryAll();
-
-   @GET
-   @Path("/admin/strandedUsers/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> 
strandedUsersQuery(@QueryParam("filter") String filter);
-   
-   @GET
-   @Path("/admin/users/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> usersQueryAll();
-
-   @GET
-   @Path("/admin/users/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> usersQuery(@QueryParam("filter") 
String filter);
-   
-   @GET
-   @Path("/admin/vdcs/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> vdcsQueryAll();
-
-   @GET
-   @Path("/admin/vdcs/query")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<QueryResultRecords> vdcsQuery(@QueryParam("filter") String 
filter);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
index efa3795..ae18e8f 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcApi.java
@@ -16,17 +16,30 @@
  */
 package org.jclouds.vcloud.director.v1_5.features.admin;
 
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
 import java.net.URI;
 
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
 import org.jclouds.vcloud.director.v1_5.domain.AdminVdc;
 import org.jclouds.vcloud.director.v1_5.domain.Task;
 import org.jclouds.vcloud.director.v1_5.features.VdcApi;
+import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
 
-/**
- * Provides synchronous access to {@link AdminVdc}.
- * 
- * @see AdminVdcAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
 public interface AdminVdcApi extends VdcApi {
 
    /**
@@ -39,42 +52,80 @@ public interface AdminVdcApi extends VdcApi {
     * @return the admin vDC or null if not found
     */
    @Override
-   AdminVdc get(String vdcUrn);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   AdminVdc get(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
 
    @Override
-   AdminVdc get(URI vdcAdminHref);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   AdminVdc get(@EndpointParam URI vdcAdminHref);
 
    /**
     * Modifies a Virtual Data Center. Virtual Data Center could be enabled or 
disabled. 
     * Additionally it could have one of these states FAILED_CREATION(-1), 
NOT_READY(0), 
     * READY(1), UNKNOWN(1) and UNRECOGNIZED(3).
     */
-   Task edit(String vdcUrn, AdminVdc vdc);
-   
-   Task edit(URI vdcAdminHref, AdminVdc vdc);
+   @PUT
+   @Consumes
+   @Produces(VCloudDirectorMediaType.ADMIN_VDC)
+   @JAXBResponseParser
+   Task edit(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn, 
AdminVdc vdc);
+
+   @PUT
+   @Consumes
+   @Produces(VCloudDirectorMediaType.ADMIN_VDC)
+   @JAXBResponseParser
+   Task edit(@EndpointParam URI vdcAdminHref, AdminVdc vdc);
 
    /**
     * Deletes a Virtual Data Center. The Virtual Data Center should be 
disabled when remove is issued. 
     * Otherwise error code 400 Bad Request is returned.
     */
    // TODO Saw what exception, instead of 400 
-   Task remove(String vdcUrn);
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   Task remove(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
 
-   Task remove(URI vdcAdminHref);
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   Task remove(@EndpointParam URI vdcAdminHref);
 
    /**
     * Enables a Virtual Data Center. This operation enables disabled Virtual 
Data Center. 
     * If it is already enabled this operation has no effect.
     */
-   void enable(String vdcUrn);
-   
-   void enable(URI vdcAdminHref);
+   @POST
+   @Consumes
+   @Path("/action/enable")
+   @JAXBResponseParser
+   void enable(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
+
+   @POST
+   @Consumes
+   @Path("/action/enable")
+   @JAXBResponseParser
+   void enable(@EndpointParam URI vdcAdminHref);
 
    /**
     * Disables a Virtual Data Center. If the Virtual Data Center is disabled 
this operation does not 
     * have an effect.
     */
-   void disable(String vdcUrn);
+   @POST
+   @Consumes
+   @Path("/action/disable")
+   @JAXBResponseParser
+   void disable(@EndpointParam(parser = URNToAdminHref.class) String vdcUrn);
 
-   void disable(URI vdcAdminHref);
+   @POST
+   @Consumes
+   @Path("/action/disable")
+   @JAXBResponseParser
+   void disable(@EndpointParam URI vdcAdminHref);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
deleted file mode 100644
index 74ac1d9..0000000
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/AdminVdcAsyncApi.java
+++ /dev/null
@@ -1,137 +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.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.AdminVdc;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.features.VdcAsyncApi;
-import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see AdminVdcApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface AdminVdcAsyncApi extends VdcAsyncApi {
-   /**
-    * @see AdminVdcApi#get(String)
-    */
-   @Override
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<AdminVdc> get(@EndpointParam(parser = 
URNToAdminHref.class) String vdcUrn);
-
-   /**
-    * @see AdminVdcApi#edit(String, AdminVdc)
-    */
-   @PUT
-   @Consumes
-   @Produces(VCloudDirectorMediaType.ADMIN_VDC)
-   @JAXBResponseParser
-   ListenableFuture<Task> edit(@EndpointParam(parser = URNToAdminHref.class) 
String vdcUrn, AdminVdc vdc);
-
-   /**
-    * @see AdminVdcApi#remove(String)
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Task> remove(@EndpointParam(parser = URNToAdminHref.class) 
String vdcUrn);
-
-   /**
-    * @see AdminVdcApi#enable(String)
-    */
-   @POST
-   @Consumes
-   @Path("/action/enable")
-   @JAXBResponseParser
-   ListenableFuture<Void> enable(@EndpointParam(parser = URNToAdminHref.class) 
String vdcUrn);
-
-   /**
-    * @see AdminVdcApi#disable(String)
-    */
-   @POST
-   @Consumes
-   @Path("/action/disable")
-   @JAXBResponseParser
-   ListenableFuture<Void> disable(@EndpointParam(parser = 
URNToAdminHref.class) String vdcUrn);
-
-   /**
-    * @see AdminVdcApi#get(URI)
-    */
-   @Override
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<AdminVdc> get(@EndpointParam URI vdcAdminHref);
-
-   /**
-    * @see AdminVdcApi#edit(URI, AdminVdc)
-    */
-   @PUT
-   @Consumes
-   @Produces(VCloudDirectorMediaType.ADMIN_VDC)
-   @JAXBResponseParser
-   ListenableFuture<Task> edit(@EndpointParam URI vdcAdminHref, AdminVdc vdc);
-
-   /**
-    * @see AdminVdcApi#remove(URI)
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Task> remove(@EndpointParam URI vdcAdminHref);
-
-   /**
-    * @see AdminVdcApi#enable(URI)
-    */
-   @POST
-   @Consumes
-   @Path("/action/enable")
-   @JAXBResponseParser
-   ListenableFuture<Void> enable(@EndpointParam URI vdcAdminHref);
-
-   /**
-    * @see AdminVdcApi#disable(URI)
-    */
-   @POST
-   @Consumes
-   @Path("/action/disable")
-   @JAXBResponseParser
-   ListenableFuture<Void> disable(@EndpointParam URI vdcAdminHref);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
index 36292ed..892ff08 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupApi.java
@@ -16,14 +16,31 @@
  */
 package org.jclouds.vcloud.director.v1_5.features.admin;
 
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.GROUP;
+
 import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
 import org.jclouds.vcloud.director.v1_5.domain.Group;
+import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
 
-/**
- * Provides synchronous access to {@link Group} objects.
- * 
- * @see GroupAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
 public interface GroupApi {
    
    /**
@@ -33,12 +50,23 @@ public interface GroupApi {
     * POST /admin/org/{id}/groups
     * </pre>
     *
-    * @param orgUrn the admin org to add the group in
-    * @return the addd group
+    * @param adminUrn the admin org to add the group in
+    * @return the added group
     */
-   Group addGroupToOrg(Group group, String orgUrn);
-   
-   Group addGroupToOrg(Group group, URI orgHref);
+   @POST
+   @Path("/groups")
+   @Consumes(GROUP)
+   @Produces(GROUP)
+   @JAXBResponseParser
+   Group addGroupToOrg(@BinderParam(BindToXMLPayload.class) Group group,
+         @EndpointParam(parser = URNToAdminHref.class) String adminUrn);
+
+   @POST
+   @Path("/groups")
+   @Consumes(GROUP)
+   @Produces(GROUP)
+   @JAXBResponseParser
+   Group addGroupToOrg(@BinderParam(BindToXMLPayload.class) Group group, 
@EndpointParam URI adminUrn);
 
    /**
     * Retrieves a group.
@@ -47,12 +75,20 @@ public interface GroupApi {
     * GET /admin/group/{id}
     * </pre>
     *
-    * @param groupString the reference for the group
+    * @param groupUrn the reference for the group
     * @return a group
     */
-   Group get(String groupUrn);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   Group get(@EndpointParam(parser = URNToHref.class) String groupUrn);
 
-   Group get(URI groupHref);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   Group get(@EndpointParam URI groupUri);
 
    /**
     * Modifies a group.
@@ -63,9 +99,18 @@ public interface GroupApi {
     * 
     * @return the edited group
     */
-   Group edit(String groupUrn, Group group);
+   @PUT
+   @Consumes(GROUP)
+   @Produces(GROUP)
+   @JAXBResponseParser
+   Group edit(@EndpointParam(parser = URNToHref.class) String groupUrn,
+         @BinderParam(BindToXMLPayload.class) Group group);
 
-   Group edit(URI groupHref, Group group);
+   @PUT
+   @Consumes(GROUP)
+   @Produces(GROUP)
+   @JAXBResponseParser
+   Group edit(@EndpointParam URI groupUrn, 
@BinderParam(BindToXMLPayload.class) Group group);
 
    /**
     * Deletes a group.
@@ -74,8 +119,13 @@ public interface GroupApi {
     * DELETE /admin/group/{id}
     * </pre>
     */
-   void remove(String groupUrn);
-
-   void remove(URI groupHref);
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   void remove(@EndpointParam(parser = URNToHref.class) String groupUrn);
 
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   void remove(@EndpointParam URI groupUrn);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.java
deleted file mode 100644
index 49830ba..0000000
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/GroupAsyncApi.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.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Group;
-import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see GroupApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface GroupAsyncApi {
-
-   /**
-    * @see GroupApi#addGroupToOrg(Group, String)
-    */
-   @POST
-   @Path("/groups")
-   @Consumes(VCloudDirectorMediaType.GROUP)
-   @Produces(VCloudDirectorMediaType.GROUP)
-   @JAXBResponseParser
-   ListenableFuture<Group> addGroupToOrg(@BinderParam(BindToXMLPayload.class) 
Group group,
-            @EndpointParam(parser = URNToAdminHref.class) String adminUrn);
-
-   /**
-    * @see GroupApi#get(String)
-    */
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<Group> get(@EndpointParam(parser = URNToHref.class) String 
groupUri);
-
-   /**
-    * @see GroupApi#edit(String, Group)
-    */
-   @PUT
-   @Consumes(VCloudDirectorMediaType.GROUP)
-   @Produces(VCloudDirectorMediaType.GROUP)
-   @JAXBResponseParser
-   ListenableFuture<Group> edit(@EndpointParam(parser = URNToHref.class) 
String groupUrn,
-            @BinderParam(BindToXMLPayload.class) Group group);
-
-   /**
-    * @see GroupApi#remove(String)
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> remove(@EndpointParam(parser = URNToHref.class) 
String groupUrn);
-
-   /**
-    * @see GroupApi#addGroupToOrg(Group, URI)
-    */
-   @POST
-   @Path("/groups")
-   @Consumes(VCloudDirectorMediaType.GROUP)
-   @Produces(VCloudDirectorMediaType.GROUP)
-   @JAXBResponseParser
-   ListenableFuture<Group> addGroupToOrg(@BinderParam(BindToXMLPayload.class) 
Group group, @EndpointParam URI adminUrn);
-
-   /**
-    * @see GroupApi#get(URI)
-    */
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<Group> get(@EndpointParam URI groupUri);
-
-   /**
-    * @see GroupApi#edit(URI, Group)
-    */
-   @PUT
-   @Consumes(VCloudDirectorMediaType.GROUP)
-   @Produces(VCloudDirectorMediaType.GROUP)
-   @JAXBResponseParser
-   ListenableFuture<Group> edit(@EndpointParam URI groupUrn, 
@BinderParam(BindToXMLPayload.class) Group group);
-
-   /**
-    * @see GroupApi#remove(URI)
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> remove(@EndpointParam URI groupUrn);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
index 63cec6c..fc5a583 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
@@ -16,14 +16,31 @@
  */
 package org.jclouds.vcloud.director.v1_5.features.admin;
 
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.USER;
+
 import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.binders.BindToXMLPayload;
 import org.jclouds.vcloud.director.v1_5.domain.User;
+import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
+import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
+import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
 
-/**
- * Provides synchronous access to {@link User} objects.
- * 
- * @see UserAsyncApi
- */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
 public interface UserApi {
 
    /**
@@ -37,9 +54,19 @@ public interface UserApi {
     *           the urn for the org
     * @return the addd user
     */
-   User addUserToOrg(User user, String orgUrn);
+   @POST
+   @Path("/users")
+   @Consumes(USER)
+   @Produces(USER)
+   @JAXBResponseParser User addUserToOrg(@BinderParam(BindToXMLPayload.class) 
User user,
+         @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
 
-   User addUserToOrg(User user, URI orgAdminHref);
+   @POST
+   @Path("/users")
+   @Consumes(USER)
+   @Produces(USER)
+   @JAXBResponseParser
+   User addUserToOrg(@BinderParam(BindToXMLPayload.class) User user, 
@EndpointParam URI orgAdminHref);
 
    /**
     * Retrieves a user. This entity could be enabled or disabled.
@@ -52,9 +79,17 @@ public interface UserApi {
     *           the reference for the user
     * @return a user
     */
-   User get(String userUrn);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   User get(@EndpointParam(parser = URNToHref.class) String userUrn);
 
-   User get(URI userHref);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   User get(@EndpointParam URI userHref);
 
    /**
     * Modifies a user. The user object could be enabled or disabled. Note: the 
lock status cannot be
@@ -68,9 +103,17 @@ public interface UserApi {
     *           the reference for the user
     * @return the modified user
     */
-   User edit(String userUrn, User user);
-   
-   User edit(URI userHref, User user);
+   @PUT
+   @Consumes(USER)
+   @Produces(USER)
+   @JAXBResponseParser
+   User edit(@EndpointParam(parser = URNToHref.class) String userUrn, 
@BinderParam(BindToXMLPayload.class) User user);
+
+   @PUT
+   @Consumes(USER)
+   @Produces(USER)
+   @JAXBResponseParser
+   User edit(@EndpointParam URI userHref, @BinderParam(BindToXMLPayload.class) 
User user);
 
    /**
     * Deletes a user. Enabled and disabled users could be removed.
@@ -79,9 +122,15 @@ public interface UserApi {
     * DELETE /admin/catalog/{id}
     * </pre>
     */
-   void remove(String userUrn);
-   
-   void remove(URI userHref);
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   void remove(@EndpointParam(parser = URNToHref.class) String userUrn);
+
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   void remove(@EndpointParam URI userHref);
 
    /**
     * Unlocks a user.
@@ -90,7 +139,15 @@ public interface UserApi {
     * POST /admin/user/{id}/action/unlock
     * </pre>
     */
-   void unlock(String userUrn);
+   @POST
+   @Path("/action/unlock")
+   @Consumes
+   @JAXBResponseParser
+   void unlock(@EndpointParam(parser = URNToHref.class) String userUrn);
 
-   void unlock(URI userHref);
+   @POST
+   @Path("/action/unlock")
+   @Consumes
+   @JAXBResponseParser
+   void unlock(@EndpointParam URI userHref);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
deleted file mode 100644
index b66026a..0000000
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserAsyncApi.java
+++ /dev/null
@@ -1,142 +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.vcloud.director.v1_5.features.admin;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.binders.BindToXMLPayload;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.User;
-import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * @see UserApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface UserAsyncApi {
-
-   /**
-    * @see UserApi#addUserToOrg(User, String)
-    */
-   @POST
-   @Path("/users")
-   @Consumes(VCloudDirectorMediaType.USER)
-   @Produces(VCloudDirectorMediaType.USER)
-   @JAXBResponseParser
-   ListenableFuture<User> addUserToOrg(@BinderParam(BindToXMLPayload.class) 
User user,
-            @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
-   /**
-    * @see UserApi#addUserToOrg(User, URI)
-    */
-   @POST
-   @Path("/users")
-   @Consumes(VCloudDirectorMediaType.USER)
-   @Produces(VCloudDirectorMediaType.USER)
-   @JAXBResponseParser
-   ListenableFuture<User> addUserToOrg(@BinderParam(BindToXMLPayload.class) 
User user,
-            @EndpointParam URI orgAdminHref);
-
-   /**
-    * @see UserApi#get(String)
-    */
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<User> get(@EndpointParam(parser = URNToHref.class) String 
userUrn);
-
-   /**
-    * @see UserApi#get(URI)
-    */
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<User> get(@EndpointParam URI userHref);
-
-   /**
-    * @see UserApi#edit(String, User)
-    */
-   @PUT
-   @Consumes(VCloudDirectorMediaType.USER)
-   @Produces(VCloudDirectorMediaType.USER)
-   @JAXBResponseParser
-   ListenableFuture<User> edit(@EndpointParam(parser = URNToHref.class) String 
userUrn,
-            @BinderParam(BindToXMLPayload.class) User user);
-
-   /**
-    * @see UserApi#edit(URI, User)
-    */
-   @PUT
-   @Consumes(VCloudDirectorMediaType.USER)
-   @Produces(VCloudDirectorMediaType.USER)
-   @JAXBResponseParser
-   ListenableFuture<User> edit(@EndpointParam URI userHref, 
@BinderParam(BindToXMLPayload.class) User user);
-
-   /**
-    * @see UserApi#remove(String)
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> remove(@EndpointParam(parser = URNToHref.class) 
String userUrn);
-
-   /**
-    * @see UserApi#remove(URI)
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> remove(@EndpointParam URI userHref);
-
-   /**
-    * @see UserApi#unlock(String)
-    */
-   @POST
-   @Path("/action/unlock")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> unlock(@EndpointParam(parser = URNToHref.class) 
String userUrn);
-
-   /**
-    * @see UserApi#unlock(URI)
-    */
-   @POST
-   @Path("/action/unlock")
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> unlock(@EndpointParam URI userHref);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
index 54717f3..a417597 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
@@ -24,35 +24,31 @@ import org.jclouds.domain.Credentials;
 import org.jclouds.lifecycle.Closer;
 import org.jclouds.location.Provider;
 import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.rest.RestContext;
+import org.jclouds.rest.ApiContext;
 import org.jclouds.rest.Utils;
-import org.jclouds.rest.internal.RestContextImpl;
+import org.jclouds.rest.internal.ApiContextImpl;
 import org.jclouds.vcloud.director.v1_5.VCloudDirectorContext;
 import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminAsyncApi;
 import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorAsyncApi;
 
 import com.google.common.base.Supplier;
 import com.google.inject.Injector;
 import com.google.inject.TypeLiteral;
 
 @Singleton
-public class VCloudDirectorContextImpl extends 
RestContextImpl<VCloudDirectorApi, VCloudDirectorAsyncApi> implements
-      VCloudDirectorContext {
-   private final RestContext<VCloudDirectorAdminApi, 
VCloudDirectorAdminAsyncApi> adminContext;
+public class VCloudDirectorContextImpl extends 
ApiContextImpl<VCloudDirectorApi> implements VCloudDirectorContext {
+   private final ApiContext<VCloudDirectorAdminApi> adminContext;
 
    @Inject
    VCloudDirectorContextImpl(@Name String name, ProviderMetadata 
providerMetadata,
          @Provider Supplier<Credentials> creds, Utils utils, Closer closer, 
Injector injector,
-         RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> 
adminContext) {
-      super(name, providerMetadata, creds, utils, closer, injector, 
TypeLiteral.get(VCloudDirectorApi.class),
-            TypeLiteral.get(VCloudDirectorAsyncApi.class));
+         ApiContext<VCloudDirectorAdminApi> adminContext) {
+      super(name, providerMetadata, creds, utils, closer, injector, 
TypeLiteral.get(VCloudDirectorApi.class));
       this.adminContext = adminContext;
    }
    
    @Override
-   public RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> 
getAdminContext() {
+   public ApiContext<VCloudDirectorAdminApi> getAdminContext() {
       return adminContext;
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
index 4d03f84..272789b 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionApi.java
@@ -17,29 +17,42 @@
 package org.jclouds.vcloud.director.v1_5.login;
 
 import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.MapBinder;
+import org.jclouds.rest.annotations.PayloadParam;
+import org.jclouds.rest.annotations.ResponseParser;
+import 
org.jclouds.vcloud.director.v1_5.binders.BindUserOrgAndPasswordAsBasicAuthorizationHeader;
 import org.jclouds.vcloud.director.v1_5.domain.Session;
 import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
+import 
org.jclouds.vcloud.director.v1_5.parsers.SessionWithTokenFromXMLAndHeader;
 
-/**
- * Provides synchronous access to Session.
- * <p/>
- * 
- * @see SessionAsyncApi
- */
 public interface SessionApi {
 
-   /**
-    * TODO
-    */
-   SessionWithToken loginUserInOrgWithPassword(URI loginUrl, String user, 
String org, String password);
+   @POST
+   @Consumes
+   @ResponseParser(SessionWithTokenFromXMLAndHeader.class)
+   @MapBinder(BindUserOrgAndPasswordAsBasicAuthorizationHeader.class)
+   SessionWithToken loginUserInOrgWithPassword(@EndpointParam URI loginUrl,
+         @PayloadParam("user") String user, @PayloadParam("org") String org,
+         @PayloadParam("password") String password);
 
-   /**
-    * TODO
-    */
-   Session getSessionWithToken(URI session, String authenticationToken);
+   @GET
+   @Consumes
+   @JAXBResponseParser
+   Session getSessionWithToken(@EndpointParam URI session,
+         @HeaderParam("x-vcloud-authorization") String authenticationToken);
 
-   /**
-    * TODO
-    */
-   void logoutSessionWithToken(URI session, String authenticationToken);
+   @DELETE
+   @Consumes
+   @JAXBResponseParser
+   void logoutSessionWithToken(@EndpointParam URI session,
+         @HeaderParam("x-vcloud-authorization") String authenticationToken);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
deleted file mode 100644
index fa9b487..0000000
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/login/SessionAsyncApi.java
+++ /dev/null
@@ -1,75 +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.vcloud.director.v1_5.login;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.ResponseParser;
-import 
org.jclouds.vcloud.director.v1_5.binders.BindUserOrgAndPasswordAsBasicAuthorizationHeader;
-import org.jclouds.vcloud.director.v1_5.domain.Session;
-import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
-import 
org.jclouds.vcloud.director.v1_5.parsers.SessionWithTokenFromXMLAndHeader;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Provides asynchronous access to Session via their REST API.
- * <p/>
- * 
- * @see SessionApi
- */
-public interface SessionAsyncApi {
-
-   /**
-    * @see SessionApi#loginUserInOrgWithPassword
-    */
-   @POST
-   @Consumes
-   @ResponseParser(SessionWithTokenFromXMLAndHeader.class)
-   @MapBinder(BindUserOrgAndPasswordAsBasicAuthorizationHeader.class)
-   ListenableFuture<SessionWithToken> 
loginUserInOrgWithPassword(@EndpointParam URI loginUrl,
-            @PayloadParam("user") String user, @PayloadParam("org") String org,
-            @PayloadParam("password") String password);
-
-   /**
-    * @see SessionApi#getSessionWithToken
-    */
-   @GET
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Session> getSessionWithToken(@EndpointParam URI session,
-            @HeaderParam("x-vcloud-authorization") String authenticationToken);
-
-   /**
-    * @see SessionApi#logoutSessionWithToken
-    */
-   @DELETE
-   @Consumes
-   @JAXBResponseParser
-   ListenableFuture<Void> logoutSessionWithToken(@EndpointParam URI session,
-            @HeaderParam("x-vcloud-authorization") String authenticationToken);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
index ba9e856..a4f98d9 100644
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
+++ 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
@@ -16,10 +16,21 @@
  */
 package org.jclouds.vcloud.director.v1_5.user;
 
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
+
+import java.io.Closeable;
 import java.net.URI;
 
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+
 import org.jclouds.rest.annotations.Delegate;
 import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.JAXBResponseParser;
+import org.jclouds.rest.annotations.RequestFilters;
 import org.jclouds.vcloud.director.v1_5.domain.Entity;
 import org.jclouds.vcloud.director.v1_5.domain.Session;
 import org.jclouds.vcloud.director.v1_5.features.CatalogApi;
@@ -34,16 +45,13 @@ import org.jclouds.vcloud.director.v1_5.features.VAppApi;
 import org.jclouds.vcloud.director.v1_5.features.VAppTemplateApi;
 import org.jclouds.vcloud.director.v1_5.features.VdcApi;
 import org.jclouds.vcloud.director.v1_5.features.VmApi;
+import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
 import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
 
 import com.google.inject.Provides;
 
-/**
- * Provides synchronous access to VCloudDirector.
- * 
- * @see VCloudDirectorAsyncApi
- */
-public interface VCloudDirectorApi {
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
+public interface VCloudDirectorApi extends Closeable {
 
    /**
     * Redirects to the URL of an entity with the given VCD ID.
@@ -52,7 +60,12 @@ public interface VCloudDirectorApi {
     * GET /entity/{id}
     * </pre>
     */
-   Entity resolveEntity(String urn);
+   @GET
+   @Path("/entity/{id}")
+   @Consumes
+   @JAXBResponseParser
+   @Fallback(NullOnNotFoundOr404.class)
+   Entity resolveEntity(@PathParam("id") String id);
    
    /**
     * @return the current login session
@@ -61,7 +74,7 @@ public interface VCloudDirectorApi {
    Session getCurrentSession();
 
    /**
-    * @return asynchronous access to query features
+    * @return synchronous access to query features
     */
    @Delegate
    QueryApi getQueryApi();

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
 
b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
deleted file mode 100644
index 70fc600..0000000
--- 
a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorAsyncApi.java
+++ /dev/null
@@ -1,150 +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.vcloud.director.v1_5.user;
-
-import java.net.URI;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.rest.annotations.Delegate;
-import org.jclouds.rest.annotations.EndpointParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.vcloud.director.v1_5.domain.Entity;
-import org.jclouds.vcloud.director.v1_5.domain.Session;
-import org.jclouds.vcloud.director.v1_5.features.CatalogAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.MetadataAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.NetworkAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.OrgAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.QueryAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.TaskAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.UploadAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VAppTemplateAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VdcAsyncApi;
-import org.jclouds.vcloud.director.v1_5.features.VmAsyncApi;
-import 
org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.inject.Provides;
-
-/**
- * Provides asynchronous access to VCloudDirector via their REST API.
- * 
- * @see VCloudDirectorApi
- */
-@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
-public interface VCloudDirectorAsyncApi {
-
-   /**
-    * @see VCloudDirectorApi#resolveEntity(String)
-    */
-   @GET
-   @Path("/entity/{id}")
-   @Consumes
-   @JAXBResponseParser
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<Entity> resolveEntity(@PathParam("id") String id);
-
-   /**
-    * 
-    * @return the current login session
-    */
-   @Provides
-   Session getCurrentSession();
-
-   /**
-    * @return asynchronous access to query features
-    */
-   @Delegate
-   QueryAsyncApi getQueryApi();
-
-   /**
-    * @return asynchronous access to {@link Org} features
-    */
-   @Delegate
-   OrgAsyncApi getOrgApi();
-
-   /**
-    * @return asynchronous access to {@link Task} features
-    */
-   @Delegate
-   TaskAsyncApi getTaskApi();
-
-   /**
-    * @return asynchronous access to {@link Network} features
-    */
-   @Delegate
-   NetworkAsyncApi getNetworkApi();
-
-   /**
-    * @return asynchronous access to {@link Catalog} features
-    */
-   @Delegate
-   CatalogAsyncApi getCatalogApi();
-
-   /**
-    * @return asynchronous access to {@link Media} features
-    */
-   @Delegate
-   CatalogAsyncApi getMediaApi();
-
-   /**
-    * @return asynchronous access to {@link Vdc} features
-    */
-   @Delegate
-   VdcAsyncApi getVdcApi();
-
-   /**
-    * @return asynchronous access to Upload features
-    */
-   @Delegate
-   UploadAsyncApi getUploadApi();
-
-   /**
-    * @return asynchronous access to {@link VApp} features
-    */
-   @Delegate
-   VAppAsyncApi getVAppApi();
-
-   /**
-    * @return asynchronous access to {@link VAppTemplate} features
-    */
-   @Delegate
-   VAppTemplateAsyncApi getVAppTemplateApi();
-
-   /**
-    * @return asynchronous access to {@link Vm} features
-    */
-   @Delegate
-   VmAsyncApi getVmApi();
-   
-   /**
-    * @return asynchronous access to {@link Metadata} features
-    */
-   @Delegate
-   MetadataAsyncApi getMetadataApi(@EndpointParam(parser = URNToHref.class) 
String urn);
-
-   @Delegate
-   MetadataAsyncApi getMetadataApi(@EndpointParam URI href);
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
index 7d03e12..201b1db 100644
--- 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
+++ 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/VCloudDirectorApiMetadataTest.java
@@ -17,7 +17,7 @@
 package org.jclouds.vcloud.director.v1_5;
 
 import org.jclouds.View;
-import org.jclouds.rest.internal.BaseRestApiMetadataTest;
+import org.jclouds.apis.internal.BaseApiMetadataTest;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -25,7 +25,7 @@ import com.google.common.reflect.TypeToken;
 
 @Test(groups = "unit", testName = "VCloudDirectorApiMetadataTest")
 //TODO: BaseComputeServiceApiMetadataTest
-public class VCloudDirectorApiMetadataTest extends BaseRestApiMetadataTest {
+public class VCloudDirectorApiMetadataTest extends BaseApiMetadataTest {
 
    public VCloudDirectorApiMetadataTest() {
       super(new VCloudDirectorApiMetadata(), ImmutableSet.<TypeToken<? extends 
View>>of());

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
index d522bea..b3576ad 100644
--- 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
+++ 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorApiLiveTest.java
@@ -55,13 +55,11 @@ import org.jclouds.apis.BaseContextLiveTest;
 import org.jclouds.date.DateService;
 import org.jclouds.io.Payloads;
 import org.jclouds.logging.Logger;
-import org.jclouds.rest.RestContext;
+import org.jclouds.rest.ApiContext;
 import org.jclouds.vcloud.director.testng.FormatApiResultsListener;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorApiMetadata;
 import org.jclouds.vcloud.director.v1_5.VCloudDirectorContext;
 import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
 import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
-import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminAsyncApi;
 import org.jclouds.vcloud.director.v1_5.domain.Catalog;
 import org.jclouds.vcloud.director.v1_5.domain.Checks;
 import org.jclouds.vcloud.director.v1_5.domain.Link;
@@ -130,7 +128,7 @@ public abstract class BaseVCloudDirectorApiLiveTest extends 
BaseContextLiveTest<
    public Predicate<Task> retryTaskSuccess;
    public Predicate<Task> retryTaskSuccessLong;
 
-   protected RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> 
adminContext;
+   protected ApiContext<VCloudDirectorAdminApi> adminContext;
 
    protected Session adminSession;
    protected Session session;
@@ -207,8 +205,7 @@ public abstract class BaseVCloudDirectorApiLiveTest extends 
BaseContextLiveTest<
       return getRoleReferenceFor(name, adminContext);
    }
 
-   public static Reference getRoleReferenceFor(String name,
-            RestContext<VCloudDirectorAdminApi, VCloudDirectorAdminAsyncApi> 
adminContext) {
+   public static Reference getRoleReferenceFor(String name, 
ApiContext<VCloudDirectorAdminApi> adminContext) {
       RoleReferences roles = 
adminContext.getApi().getQueryApi().roleReferencesQueryAll();
       // backend in a builder to strip out unwanted xml cruft that the api 
chokes on
       return Reference.builder().fromReference(find(roles.getReferences(), 
ReferencePredicates.nameEquals(name)))
@@ -739,7 +736,7 @@ public abstract class BaseVCloudDirectorApiLiveTest extends 
BaseContextLiveTest<
 
    @Override
    protected TypeToken<VCloudDirectorContext> contextType() {
-      return VCloudDirectorApiMetadata.CONTEXT_TOKEN;
+      return TypeToken.of(VCloudDirectorContext.class);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
deleted file mode 100644
index 9104486..0000000
--- 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/internal/BaseVCloudDirectorRestApiExpectTest.java
+++ /dev/null
@@ -1,23 +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.vcloud.director.v1_5.internal;
-
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-
-public abstract class BaseVCloudDirectorRestApiExpectTest extends 
BaseVCloudDirectorExpectTest<VCloudDirectorApi> {
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
index b59441f..183e8cc 100644
--- 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
+++ 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiExpectTest.java
@@ -20,10 +20,10 @@ import static org.testng.Assert.assertEquals;
 
 import java.net.URI;
 
-import org.jclouds.apis.ApiMetadata;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
-import org.jclouds.rest.AnonymousRestApiMetadata;
+import org.jclouds.providers.AnonymousProviderMetadata;
+import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.rest.internal.BaseRestApiExpectTest;
 import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
 import org.jclouds.vcloud.director.v1_5.domain.Link;
@@ -119,8 +119,7 @@ public class SessionApiExpectTest extends 
BaseRestApiExpectTest<SessionApi> {
    }
    
    @Override
-   protected ApiMetadata createApiMetadata() {
-      return 
AnonymousRestApiMetadata.forClientMappedToAsyncClient(SessionApi.class, 
SessionAsyncApi.class)
-            
.toBuilder().defaultEndpoint("https://vcloudbeta.bluelock.com/api";).build();
+   protected ProviderMetadata createProviderMetadata() {
+      return AnonymousProviderMetadata.forApiOnEndpoint(SessionApi.class, 
"https://vcloudbeta.bluelock.com/api";);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/d7bc430c/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
index 761012b..e59757d 100644
--- 
a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
+++ 
b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/login/SessionApiLiveTest.java
@@ -26,9 +26,8 @@ import org.jclouds.ContextBuilder;
 import org.jclouds.apis.BaseContextLiveTest;
 import org.jclouds.providers.AnonymousProviderMetadata;
 import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.rest.RestContext;
+import org.jclouds.rest.ApiContext;
 import org.jclouds.vcloud.director.testng.FormatApiResultsListener;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants;
 import org.jclouds.vcloud.director.v1_5.domain.SessionWithToken;
 import org.testng.annotations.BeforeGroups;
 import org.testng.annotations.Listeners;
@@ -42,7 +41,7 @@ import com.google.common.reflect.TypeToken;
  */
 @Listeners(FormatApiResultsListener.class)
 @Test(groups = { "live", "user" }, testName = "SessionApiLiveTest")
-public class SessionApiLiveTest extends 
BaseContextLiveTest<RestContext<SessionApi, SessionAsyncApi>> {
+public class SessionApiLiveTest extends 
BaseContextLiveTest<ApiContext<SessionApi>> {
 
    public SessionApiLiveTest() {
       provider = "vcloud-director";
@@ -84,13 +83,14 @@ public class SessionApiLiveTest extends 
BaseContextLiveTest<RestContext<SessionA
    }
 
    @Override
-   protected TypeToken<RestContext<SessionApi, SessionAsyncApi>> contextType() 
{
-      return VCloudDirectorConstants.SESSION_CONTEXT_TYPE;
+   protected TypeToken<ApiContext<SessionApi>> contextType() {
+      return new TypeToken<ApiContext<SessionApi>>() {
+      };
    }
 
    @Override
    protected ProviderMetadata createProviderMetadata() {
-      return 
AnonymousProviderMetadata.forClientMappedToAsyncClientOnEndpoint(SessionApi.class,
 SessionAsyncApi.class, endpoint);
+      return AnonymousProviderMetadata.forApiOnEndpoint(SessionApi.class, 
endpoint);
    }
 
    @Override

Reply via email to