JCLOUDS-296 unasync hpcloud storage provider.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e243fa51 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e243fa51 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e243fa51 Branch: refs/heads/use-agentproxy-008 Commit: e243fa51a53a6c946e796008337c0abf754ff8b3 Parents: e3ada5b Author: Adrian Cole <[email protected]> Authored: Fri Oct 3 19:13:41 2014 -0700 Committer: Adrian Cole <[email protected]> Committed: Fri Oct 3 23:14:29 2014 -0700 ---------------------------------------------------------------------- .../objectstorage/HPCloudObjectStorageApi.java | 50 +++++-- .../HPCloudObjectStorageApiMetadata.java | 54 +++---- .../HPCloudObjectStorageAsyncApi.java | 100 ------------- .../HPCloudObjectStorageAsyncBlobStore.java | 94 ------------ .../HPCloudObjectStorageBlobRequestSigner.java | 8 +- ...loudObjectStorageBlobStoreContextModule.java | 5 +- .../HPCloudObjectStorageHttpApiModule.java | 93 ++++++++++++ .../HPCloudObjectStorageRestClientModule.java | 103 ------------- .../extensions/CDNContainerApi.java | 98 +++++++++--- .../extensions/CDNContainerAsyncApi.java | 148 ------------------- .../HPCloudObjectStorageClientLiveTest.java | 2 +- ...PCloudObjectStorageBlobSignerExpectTest.java | 10 +- .../HPCloudObjectStorageEndpointModuleTest.java | 8 +- 13 files changed, 248 insertions(+), 525 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApi.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApi.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApi.java index 0ef2d46..4dbceb5 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApi.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApi.java @@ -16,27 +16,39 @@ */ package org.jclouds.hpcloud.objectstorage; +import static javax.ws.rs.core.MediaType.APPLICATION_JSON; +import static org.jclouds.openstack.swift.SwiftFallbacks.TrueOn404FalseOn409; + import java.util.Set; + +import javax.inject.Named; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + import org.jclouds.hpcloud.objectstorage.extensions.CDNContainerApi; import org.jclouds.location.Region; +import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; import org.jclouds.openstack.swift.CommonSwiftClient; +import org.jclouds.openstack.swift.Storage; +import org.jclouds.openstack.swift.domain.ContainerMetadata; +import org.jclouds.openstack.swift.options.ListContainerOptions; import org.jclouds.rest.annotations.Delegate; +import org.jclouds.rest.annotations.Endpoint; +import org.jclouds.rest.annotations.Fallback; +import org.jclouds.rest.annotations.QueryParams; +import org.jclouds.rest.annotations.RequestFilters; import com.google.common.base.Optional; +import com.google.common.util.concurrent.ListenableFuture; import com.google.inject.Provides; -/** - * Provides synchronous access to HP Cloud Object Storage via the REST API. - * - * <p/> - * All commands return a ListenableFuture of the result. Any exceptions incurred during processing - * will be backend in an {@link java.util.concurrent.ExecutionException} as documented in - * {@link ListenableFuture#get()}. - * - * @see HPCloudObjectStorageAsyncApi - * @see <a href="https://manage.hpcloud.com/pages/build/docs/objectstorage-lvs/api">HP Cloud Object - * Storage API</a> - */ +/** Provides synchronous access to HP Cloud Object Storage via the REST API. */ +@Deprecated +@RequestFilters(AuthenticateRequest.class) +@Endpoint(Storage.class) public interface HPCloudObjectStorageApi extends CommonSwiftClient { /** * @@ -46,6 +58,20 @@ public interface HPCloudObjectStorageApi extends CommonSwiftClient { @Region Set<String> getConfiguredRegions(); + @Override + @Named("ListContainers") + @GET + @Consumes(APPLICATION_JSON) + @QueryParams(keys = "format", values = "json") + @Path("/") Set<ContainerMetadata> listContainers(ListContainerOptions... options); + + @Override + @Named("DeleteContainer") + @DELETE + @Fallback(TrueOn404FalseOn409.class) + @Path("/{container}") + boolean deleteContainerIfEmpty(@PathParam("container") String container); + /** * Provides synchronous access to CDN features. */ http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApiMetadata.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApiMetadata.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApiMetadata.java index e7c0d0f..fa3f1ad 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApiMetadata.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageApiMetadata.java @@ -16,46 +16,37 @@ */ package org.jclouds.hpcloud.objectstorage; -import com.google.common.collect.ImmutableSet; -import com.google.common.reflect.TypeToken; -import com.google.inject.Module; -import com.google.inject.name.Named; +import static org.jclouds.hpcloud.objectstorage.config.HPCloudObjectStorageHttpApiModule.HPCloudObjectStorageEndpointModule; +import static org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; +import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; +import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE; +import static org.jclouds.rest.config.BinderUtils.bindHttpApi; + +import java.net.URI; +import java.util.Properties; + import org.jclouds.blobstore.BlobRequestSigner; import org.jclouds.hpcloud.objectstorage.blobstore.HPCloudObjectStorageBlobRequestSigner; import org.jclouds.hpcloud.objectstorage.blobstore.config.HPCloudObjectStorageBlobStoreContextModule; -import org.jclouds.hpcloud.objectstorage.config.HPCloudObjectStorageRestClientModule; +import org.jclouds.hpcloud.objectstorage.config.HPCloudObjectStorageHttpApiModule; import org.jclouds.location.suppliers.RegionIdToURISupplier; +import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes; -import org.jclouds.openstack.keystone.v2_0.config.MappedAuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.suppliers.RegionIdToAdminURISupplier; import org.jclouds.openstack.swift.SwiftKeystoneApiMetadata; import org.jclouds.openstack.swift.blobstore.config.TemporaryUrlExtensionModule; -import org.jclouds.openstack.swift.extensions.KeystoneTemporaryUrlKeyAsyncApi; +import org.jclouds.openstack.swift.extensions.KeystoneTemporaryUrlKeyApi; import org.jclouds.openstack.swift.extensions.TemporaryUrlKeyApi; import org.jclouds.rest.annotations.ApiVersion; -import java.net.URI; -import java.util.Properties; - -import static org.jclouds.hpcloud.objectstorage.config.HPCloudObjectStorageRestClientModule.HPCloudObjectStorageEndpointModule; -import static org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; -import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; -import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE; -import static org.jclouds.rest.config.BinderUtils.bindSyncToAsyncHttpApi; +import com.google.common.collect.ImmutableSet; +import com.google.inject.Module; +import com.google.inject.name.Named; /** * Implementation of {@link org.jclouds.providers.ProviderMetadata} for HP Cloud Services Object Storage */ public class HPCloudObjectStorageApiMetadata extends SwiftKeystoneApiMetadata { - /** - * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(HPCloudObjectStorageApi.class)} as - * {@link HPCloudObjectStorageAsyncApi} interface will be removed in jclouds 1.7. - */ - @Deprecated - public static final TypeToken<org.jclouds.rest.RestContext<HPCloudObjectStorageApi, HPCloudObjectStorageAsyncApi>> CONTEXT_TOKEN = new TypeToken<org.jclouds.rest.RestContext<HPCloudObjectStorageApi, HPCloudObjectStorageAsyncApi>>() { - private static final long serialVersionUID = 1L; - }; - @Override public Builder toBuilder() { return new Builder().fromApiMetadata(this); @@ -75,22 +66,20 @@ public class HPCloudObjectStorageApiMetadata extends SwiftKeystoneApiMetadata { return properties; } - public static class Builder extends SwiftKeystoneApiMetadata.Builder<Builder> { - @SuppressWarnings("deprecation") + public static class Builder extends SwiftKeystoneApiMetadata.Builder<HPCloudObjectStorageApi, Builder> { protected Builder() { - super(HPCloudObjectStorageApi.class, HPCloudObjectStorageAsyncApi.class); + super(HPCloudObjectStorageApi.class); id("hpcloud-objectstorage") .endpointName("identity service url ending in /v2.0/") .defaultEndpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/") .name("HP Cloud Services Object Storage API") .documentation(URI.create("https://build.hpcloud.com/object-storage/api")) .defaultProperties(HPCloudObjectStorageApiMetadata.defaultProperties()) - .context(CONTEXT_TOKEN) .defaultModules(ImmutableSet.<Class<? extends Module>>builder() - .add(MappedAuthenticationApiModule.class) + .add(AuthenticationApiModule.class) .add(HPCloudObjectStorageEndpointModule.class) .add(IgnoreRegionVersionsModule.class) - .add(HPCloudObjectStorageRestClientModule.class) + .add(HPCloudObjectStorageHttpApiModule.class) .add(HPCloudObjectStorageBlobStoreContextModule.class) .add(HPCloudObjectStorageTemporaryUrlExtensionModule.class).build()); } @@ -110,14 +99,15 @@ public class HPCloudObjectStorageApiMetadata extends SwiftKeystoneApiMetadata { * Ensures keystone auth is used instead of swift auth */ public static class HPCloudObjectStorageTemporaryUrlExtensionModule extends - TemporaryUrlExtensionModule<HPCloudObjectStorageAsyncApi> { + TemporaryUrlExtensionModule<HPCloudObjectStorageApi> { @Override protected void bindRequestSigner() { bind(BlobRequestSigner.class).to(HPCloudObjectStorageBlobRequestSigner.class); } @Override protected void bindTemporaryUrlKeyApi() { - bindSyncToAsyncHttpApi(binder(), TemporaryUrlKeyApi.class, KeystoneTemporaryUrlKeyAsyncApi.class); + bindHttpApi(binder(), KeystoneTemporaryUrlKeyApi.class); + bind(TemporaryUrlKeyApi.class).to(KeystoneTemporaryUrlKeyApi.class); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageAsyncApi.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageAsyncApi.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageAsyncApi.java deleted file mode 100644 index 51cb464..0000000 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageAsyncApi.java +++ /dev/null @@ -1,100 +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.hpcloud.objectstorage; - -import java.util.Set; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.hpcloud.objectstorage.extensions.CDNContainerAsyncApi; -import org.jclouds.location.Region; -import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.openstack.swift.CommonSwiftAsyncClient; -import org.jclouds.openstack.swift.Storage; -import org.jclouds.openstack.swift.SwiftFallbacks.TrueOn404FalseOn409; -import org.jclouds.openstack.swift.domain.ContainerMetadata; -import org.jclouds.openstack.swift.options.ListContainerOptions; -import org.jclouds.rest.annotations.Delegate; -import org.jclouds.rest.annotations.Endpoint; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; - -import com.google.common.base.Optional; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.inject.Provides; - -/** - * Provides asynchronous access to HP Cloud Object Storage via the REST API. - * - * <p/> - * All commands return a ListenableFuture of the result. Any exceptions incurred - * during processing will be backend in an - * {@link java.util.concurrent.ExecutionException} as documented in - * {@link ListenableFuture#get()}. - * - * @see HPCloudObjectStorageApi - * @see <a - * href="https://api-docs.hpcloud.com/hpcloud-object-storage/1.0/content/ch_object-storage-dev-overview.html">HP - * Cloud Object Storage API</a> - * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(HPCloudObjectStorageApi.class)} as - * {@link HPCloudObjectStorageAsyncApi} interface will be removed in jclouds 1.7. - */ -@Deprecated -@RequestFilters(AuthenticateRequest.class) -@Endpoint(Storage.class) -public interface HPCloudObjectStorageAsyncApi extends CommonSwiftAsyncClient { - /** - * - * @return the Region codes configured - */ - @Provides - @Region - Set<String> getConfiguredRegions(); - - /** - * @see org.jclouds.openstack.swift.CommonSwiftClient#listContainers - */ - @Named("ListContainers") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @QueryParams(keys = "format", values = "json") - @Path("/") - ListenableFuture<? extends Set<ContainerMetadata>> listContainers(ListContainerOptions... options); - - /** - * @see org.jclouds.openstack.swift.CommonSwiftClient#deleteContainerIfEmpty - */ - @Named("DeleteContainer") - @DELETE - @Fallback(TrueOn404FalseOn409.class) - @Path("/{container}") - ListenableFuture<Boolean> deleteContainerIfEmpty(@PathParam("container") String container); - - /** - * Provides asynchronous access to CDN features. - */ - @Delegate - Optional<CDNContainerAsyncApi> getCDNExtension(); - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageAsyncBlobStore.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageAsyncBlobStore.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageAsyncBlobStore.java deleted file mode 100644 index dca8514..0000000 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageAsyncBlobStore.java +++ /dev/null @@ -1,94 +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.hpcloud.objectstorage.blobstore; - -import static com.google.common.util.concurrent.Futures.immediateFuture; -import static com.google.common.util.concurrent.Futures.transform; - -import java.net.URI; -import java.util.Set; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Provider; -import javax.inject.Singleton; - -import org.jclouds.Constants; -import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.functions.BlobToHttpGetOptions; -import org.jclouds.blobstore.options.CreateContainerOptions; -import org.jclouds.blobstore.strategy.internal.FetchBlobMetadata; -import org.jclouds.blobstore.util.BlobUtils; -import org.jclouds.collect.Memoized; -import org.jclouds.domain.Location; -import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApi; -import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageAsyncApi; -import org.jclouds.hpcloud.objectstorage.blobstore.functions.EnableCDNAndCache; -import org.jclouds.openstack.swift.blobstore.SwiftAsyncBlobStore; -import org.jclouds.openstack.swift.blobstore.functions.BlobStoreListContainerOptionsToListContainerOptions; -import org.jclouds.openstack.swift.blobstore.functions.BlobToObject; -import org.jclouds.openstack.swift.blobstore.functions.ContainerToResourceList; -import org.jclouds.openstack.swift.blobstore.functions.ContainerToResourceMetadata; -import org.jclouds.openstack.swift.blobstore.functions.ObjectToBlob; -import org.jclouds.openstack.swift.blobstore.functions.ObjectToBlobMetadata; -import org.jclouds.openstack.swift.blobstore.strategy.internal.AsyncMultipartUploadStrategy; - -import com.google.common.base.Function; -import com.google.common.base.Supplier; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.ListeningExecutorService; - -/** - * - * @deprecated will be removed in jclouds 1.7, as async interfaces are no longer - * supported. Please use {@link HPCloudObjectStorageBlobStore} - */ -@Deprecated -@Singleton -public class HPCloudObjectStorageAsyncBlobStore extends SwiftAsyncBlobStore { - private final EnableCDNAndCache enableAndCache; - - @Inject - protected HPCloudObjectStorageAsyncBlobStore(BlobStoreContext context, BlobUtils blobUtils, - @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor, Supplier<Location> defaultLocation, - @Memoized Supplier<Set<? extends Location>> locations, HPCloudObjectStorageApi sync, HPCloudObjectStorageAsyncApi async, - ContainerToResourceMetadata container2ResourceMd, - BlobStoreListContainerOptionsToListContainerOptions container2ContainerListOptions, - ContainerToResourceList container2ResourceList, ObjectToBlob object2Blob, BlobToObject blob2Object, - ObjectToBlobMetadata object2BlobMd, BlobToHttpGetOptions blob2ObjectGetOptions, - Provider<FetchBlobMetadata> fetchBlobMetadataProvider, EnableCDNAndCache enableAndCache, - Provider<AsyncMultipartUploadStrategy> multipartUploadStrategy) { - super(context, blobUtils, userExecutor, defaultLocation, locations, sync, async, container2ResourceMd, - container2ContainerListOptions, container2ResourceList, object2Blob, blob2Object, object2BlobMd, - blob2ObjectGetOptions, fetchBlobMetadataProvider, multipartUploadStrategy); - this.enableAndCache = enableAndCache; - } - - @Override - public ListenableFuture<Boolean> createContainerInLocation(Location location, final String container, - CreateContainerOptions options) { - if (options.isPublicRead()) { - return transform(immediateFuture(enableAndCache.apply(container)), new Function<URI, Boolean>() { - public Boolean apply(URI from) { - return from != null; - } - }, userExecutor); - } - - return createContainerInLocation(location, container); - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java index 9453da8..7887f44 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobRequestSigner.java @@ -41,7 +41,7 @@ import org.jclouds.blobstore.functions.BlobToHttpGetOptions; import org.jclouds.crypto.Crypto; import org.jclouds.date.TimeStamp; import org.jclouds.domain.Credentials; -import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageAsyncApi; +import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApi; import org.jclouds.http.HttpRequest; import org.jclouds.http.options.GetOptions; import org.jclouds.openstack.keystone.v2_0.domain.Access; @@ -94,9 +94,9 @@ public class HPCloudObjectStorageBlobRequestSigner implements BlobRequestSigner this.blobToObject = checkNotNull(blobToObject, "blobToObject"); this.blob2HttpGetOptions = checkNotNull(blob2HttpGetOptions, "blob2HttpGetOptions"); - this.getMethod = method(HPCloudObjectStorageAsyncApi.class, "getObject", String.class, String.class, GetOptions[].class); - this.deleteMethod = method(HPCloudObjectStorageAsyncApi.class, "removeObject", String.class, String.class); - this.createMethod = method(HPCloudObjectStorageAsyncApi.class, "putObject", String.class, SwiftObject.class); + this.getMethod = method(HPCloudObjectStorageApi.class, "getObject", String.class, String.class, GetOptions[].class); + this.deleteMethod = method(HPCloudObjectStorageApi.class, "removeObject", String.class, String.class); + this.createMethod = method(HPCloudObjectStorageApi.class, "putObject", String.class, SwiftObject.class); } @Override http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java index 28ea5d5..e33788e 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java @@ -29,8 +29,8 @@ import javax.inject.Singleton; import org.jclouds.blobstore.AsyncBlobStore; import org.jclouds.blobstore.BlobStore; import org.jclouds.blobstore.attr.ConsistencyModel; +import org.jclouds.blobstore.internal.SubmissionAsyncBlobStore; import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApi; -import org.jclouds.hpcloud.objectstorage.blobstore.HPCloudObjectStorageAsyncBlobStore; import org.jclouds.hpcloud.objectstorage.blobstore.HPCloudObjectStorageBlobStore; import org.jclouds.hpcloud.objectstorage.blobstore.functions.HPCloudObjectStorageObjectToBlobMetadata; import org.jclouds.hpcloud.objectstorage.domain.CDNContainer; @@ -46,6 +46,7 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.inject.Provides; +import com.google.inject.Scopes; public class HPCloudObjectStorageBlobStoreContextModule extends SwiftBlobStoreContextModule { @@ -94,8 +95,8 @@ public class HPCloudObjectStorageBlobStoreContextModule extends SwiftBlobStoreCo @Override protected void configure() { bind(ConsistencyModel.class).toInstance(ConsistencyModel.EVENTUAL); - bind(AsyncBlobStore.class).to(HPCloudObjectStorageAsyncBlobStore.class); bind(BlobStore.class).to(HPCloudObjectStorageBlobStore.class); + bind(AsyncBlobStore.class).to(SubmissionAsyncBlobStore.class).in(Scopes.SINGLETON); bind(ObjectToBlobMetadata.class).to(HPCloudObjectStorageObjectToBlobMetadata.class); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageHttpApiModule.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageHttpApiModule.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageHttpApiModule.java new file mode 100644 index 0000000..01f88f1 --- /dev/null +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageHttpApiModule.java @@ -0,0 +1,93 @@ +/* + * 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.hpcloud.objectstorage.config; + +import static org.jclouds.util.Suppliers2.getLastValueInMap; +import static org.jclouds.util.Suppliers2.getValueInMapOrNull; + +import java.net.URI; +import java.util.Map; + +import javax.inject.Named; +import javax.inject.Singleton; + +import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApi; +import org.jclouds.hpcloud.services.HPExtensionCDN; +import org.jclouds.hpcloud.services.HPExtensionServiceType; +import org.jclouds.javax.annotation.Nullable; +import org.jclouds.location.reference.LocationConstants; +import org.jclouds.location.suppliers.RegionIdToURISupplier; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; +import org.jclouds.openstack.services.ServiceType; +import org.jclouds.openstack.swift.CommonSwiftClient; +import org.jclouds.openstack.swift.Storage; +import org.jclouds.openstack.swift.config.SwiftHttpApiModule; +import org.jclouds.rest.ConfiguresHttpApi; +import org.jclouds.rest.annotations.ApiVersion; + +import com.google.common.base.Supplier; +import com.google.inject.Provides; +import com.google.inject.Scopes; + +@ConfiguresHttpApi +public class HPCloudObjectStorageHttpApiModule extends SwiftHttpApiModule<HPCloudObjectStorageApi> { + + public HPCloudObjectStorageHttpApiModule() { + super(HPCloudObjectStorageApi.class); + } + + protected void bindResolvedClientsToCommonSwift() { + bind(CommonSwiftClient.class).to(HPCloudObjectStorageApi.class).in(Scopes.SINGLETON); + } + + private static Supplier<URI> getUriSupplier(String serviceType, String apiVersion, RegionIdToURISupplier.Factory factory, String region) { + Supplier<Map<String, Supplier<URI>>> endpointsSupplier = factory.createForApiTypeAndVersion(serviceType, apiVersion); + + if (region.isEmpty()) { + return getLastValueInMap(endpointsSupplier); + } else { + return getValueInMapOrNull(endpointsSupplier, region); + } + } + + @Provides + @Singleton + @HPExtensionCDN + @Nullable + protected Supplier<URI> provideCDNUrl(RegionIdToURISupplier.Factory factory, + @ApiVersion String apiVersion, + @Named(LocationConstants.PROPERTY_REGION) String region) { + + return getUriSupplier(HPExtensionServiceType.CDN, apiVersion, factory, region); + } + + // Ignores requested apiVersion to work around versionId issue in HP endpoints + public static class HPCloudObjectStorageEndpointModule extends KeystoneAuthenticationModule { + @Provides + @Singleton + @Storage + @Nullable + protected Supplier<URI> provideStorageUrl(RegionIdToURISupplier.Factory factory, + @ApiVersion String apiVersion, + @Named(LocationConstants.PROPERTY_REGION) String region) { + + return getUriSupplier(ServiceType.OBJECT_STORE, null, factory, region); + + } + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java deleted file mode 100644 index 611a6e7..0000000 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageRestClientModule.java +++ /dev/null @@ -1,103 +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.hpcloud.objectstorage.config; -import static org.jclouds.reflect.Reflection2.typeToken; -import static org.jclouds.util.Suppliers2.getLastValueInMap; -import static org.jclouds.util.Suppliers2.getValueInMapOrNull; - -import java.net.URI; -import java.util.Map; - -import javax.inject.Named; -import javax.inject.Singleton; - -import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApi; -import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageAsyncApi; -import org.jclouds.hpcloud.objectstorage.extensions.CDNContainerApi; -import org.jclouds.hpcloud.objectstorage.extensions.CDNContainerAsyncApi; -import org.jclouds.hpcloud.services.HPExtensionCDN; -import org.jclouds.hpcloud.services.HPExtensionServiceType; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.location.reference.LocationConstants; -import org.jclouds.location.suppliers.RegionIdToURISupplier; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; -import org.jclouds.openstack.services.ServiceType; -import org.jclouds.openstack.swift.CommonSwiftAsyncClient; -import org.jclouds.openstack.swift.CommonSwiftClient; -import org.jclouds.openstack.swift.Storage; -import org.jclouds.openstack.swift.config.SwiftRestClientModule; -import org.jclouds.rest.ConfiguresRestClient; -import org.jclouds.rest.annotations.ApiVersion; - -import com.google.common.base.Supplier; -import com.google.common.collect.ImmutableMap; -import com.google.inject.Provides; -import com.google.inject.Scopes; - -@ConfiguresRestClient -public class HPCloudObjectStorageRestClientModule extends - SwiftRestClientModule<HPCloudObjectStorageApi, HPCloudObjectStorageAsyncApi> { - public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder().put( - CDNContainerApi.class, CDNContainerAsyncApi.class).build(); - - public HPCloudObjectStorageRestClientModule() { - super(typeToken(HPCloudObjectStorageApi.class), typeToken(HPCloudObjectStorageAsyncApi.class), - DELEGATE_MAP); - } - - protected void bindResolvedClientsToCommonSwift() { - bind(CommonSwiftClient.class).to(HPCloudObjectStorageApi.class).in(Scopes.SINGLETON); - bind(CommonSwiftAsyncClient.class).to(HPCloudObjectStorageAsyncApi.class).in(Scopes.SINGLETON); - } - - private static Supplier<URI> getUriSupplier(String serviceType, String apiVersion, RegionIdToURISupplier.Factory factory, String region) { - Supplier<Map<String, Supplier<URI>>> endpointsSupplier = factory.createForApiTypeAndVersion(serviceType, apiVersion); - - if (region.isEmpty()) { - return getLastValueInMap(endpointsSupplier); - } else { - return getValueInMapOrNull(endpointsSupplier, region); - } - } - - @Provides - @Singleton - @HPExtensionCDN - @Nullable - protected Supplier<URI> provideCDNUrl(RegionIdToURISupplier.Factory factory, - @ApiVersion String apiVersion, - @Named(LocationConstants.PROPERTY_REGION) String region) { - - return getUriSupplier(HPExtensionServiceType.CDN, apiVersion, factory, region); - } - - // Ignores requested apiVersion to work around versionId issue in HP endpoints - public static class HPCloudObjectStorageEndpointModule extends KeystoneAuthenticationModule { - @Provides - @Singleton - @Storage - @Nullable - protected Supplier<URI> provideStorageUrl(RegionIdToURISupplier.Factory factory, - @ApiVersion String apiVersion, - @Named(LocationConstants.PROPERTY_REGION) String region) { - - return getUriSupplier(ServiceType.OBJECT_STORE, null, factory, region); - - } - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerApi.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerApi.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerApi.java index b3f3e4b..20a006f 100644 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerApi.java +++ b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerApi.java @@ -16,40 +16,98 @@ */ package org.jclouds.hpcloud.objectstorage.extensions; +import static javax.ws.rs.core.MediaType.APPLICATION_JSON; +import static org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; +import static org.jclouds.blobstore.BlobStoreFallbacks.NullOnContainerNotFound; +import static org.jclouds.hpcloud.objectstorage.reference.HPCloudObjectStorageHeaders.CDN_ENABLED; +import static org.jclouds.hpcloud.objectstorage.reference.HPCloudObjectStorageHeaders.CDN_TTL; + import java.net.URI; + +import javax.inject.Named; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.HEAD; +import javax.ws.rs.HeaderParam; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + import org.jclouds.hpcloud.objectstorage.domain.CDNContainer; +import org.jclouds.hpcloud.objectstorage.functions.ParseCDNContainerFromHeaders; +import org.jclouds.hpcloud.objectstorage.functions.ParseCDNUriFromHeaders; import org.jclouds.hpcloud.objectstorage.options.ListCDNContainerOptions; +import org.jclouds.hpcloud.services.HPExtensionCDN; +import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; +import org.jclouds.rest.annotations.Endpoint; +import org.jclouds.rest.annotations.Fallback; +import org.jclouds.rest.annotations.Headers; +import org.jclouds.rest.annotations.QueryParams; +import org.jclouds.rest.annotations.RequestFilters; +import org.jclouds.rest.annotations.ResponseParser; import com.google.common.annotations.Beta; import com.google.common.collect.FluentIterable; -/** - * Provides synchronous access to HP Cloud Object Storage via the REST API. - * - * <p/> - * All commands return a ListenableFuture of the result. Any exceptions incurred during processing - * will be backend in an {@link java.util.concurrent.ExecutionException} as documented in {@link ListenableFuture#get()}. - * - * @see org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApi - * @see <a href="https://manage.hpcloud.com/pages/build/docs/objectstorage-lvs/api">HP Cloud Object - * Storage API</a> - * @see CDNContainerAsyncApi - */ @Beta +@RequestFilters(AuthenticateRequest.class) +@Endpoint(HPExtensionCDN.class) public interface CDNContainerApi { - + + @Beta + @Named("ListCDNEnabledContainers") + @GET + @Consumes(APPLICATION_JSON) + @QueryParams(keys = "format", values = "json") + @Fallback(EmptyFluentIterableOnNotFoundOr404.class) + @Path("/") FluentIterable<CDNContainer> list(); - + + @Beta + @Named("ListCDNEnabledContainers") + @GET + @Consumes(APPLICATION_JSON) + @QueryParams(keys = "format", values = "json") + @Fallback(EmptyFluentIterableOnNotFoundOr404.class) + @Path("/") FluentIterable<CDNContainer> list(ListCDNContainerOptions options); - CDNContainer get(String container); + @Beta + @Named("ListCDNEnabledContainerMetadata") + @HEAD + @ResponseParser(ParseCDNContainerFromHeaders.class) + @Fallback(NullOnContainerNotFound.class) + @Path("/{container}") + CDNContainer get(@PathParam("container") String container); - URI enable(String container, long ttl); + @Beta + @Named("CDNEnableContainer") + @PUT + @Path("/{container}") + @Headers(keys = CDN_ENABLED, values = "True") + @ResponseParser(ParseCDNUriFromHeaders.class) + URI enable(@PathParam("container") String container, @HeaderParam(CDN_TTL) long ttl); - URI enable(String container); + @Beta + @Named("CDNEnableContainer") + @PUT + @Path("/{container}") + @Headers(keys = CDN_ENABLED, values = "True") + @ResponseParser(ParseCDNUriFromHeaders.class) + URI enable(@PathParam("container") String container); - URI update(String container, long ttl); - - boolean disable(String container); + @Beta + @Named("UpdateCDNEnabledContainerMetadata") + @POST + @Path("/{container}") + @ResponseParser(ParseCDNUriFromHeaders.class) + URI update(@PathParam("container") String container, @HeaderParam(CDN_TTL) long ttl); + @Beta + @Named("DisableCDNEnabledContainer") + @PUT + @Path("/{container}") + @Headers(keys = CDN_ENABLED, values = "False") + boolean disable(@PathParam("container") String container); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerAsyncApi.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerAsyncApi.java b/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerAsyncApi.java deleted file mode 100644 index c24e4fb..0000000 --- a/providers/hpcloud-objectstorage/src/main/java/org/jclouds/hpcloud/objectstorage/extensions/CDNContainerAsyncApi.java +++ /dev/null @@ -1,148 +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.hpcloud.objectstorage.extensions; - -import java.net.URI; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.HEAD; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; -import org.jclouds.blobstore.BlobStoreFallbacks.NullOnContainerNotFound; -import org.jclouds.hpcloud.objectstorage.domain.CDNContainer; -import org.jclouds.hpcloud.objectstorage.functions.ParseCDNContainerFromHeaders; -import org.jclouds.hpcloud.objectstorage.functions.ParseCDNUriFromHeaders; -import org.jclouds.hpcloud.objectstorage.options.ListCDNContainerOptions; -import org.jclouds.hpcloud.objectstorage.reference.HPCloudObjectStorageHeaders; -import org.jclouds.hpcloud.services.HPExtensionCDN; -import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.rest.annotations.Endpoint; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.Headers; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; - -import com.google.common.annotations.Beta; -import com.google.common.collect.FluentIterable; -import com.google.common.util.concurrent.ListenableFuture; - -/** - * Provides asynchronous access to HP Cloud Object Storage via the REST API. - * - * <p/> - * All commands return a ListenableFuture of the result. Any exceptions incurred - * during processing will be backend in an - * {@link java.util.concurrent.ExecutionException} as documented in - * {@link ListenableFuture#get()}. - * - * @see HPCloudObjectStorageApi - * @see <a - * href="https://api-docs.hpcloud.com/hpcloud-cdn-storage/1.0/content/ch_cdn-dev-overview.html">HP - * Cloud Object Storage API</a> - */ -@RequestFilters(AuthenticateRequest.class) -@Endpoint(HPExtensionCDN.class) -public interface CDNContainerAsyncApi { - /** - * @see HPCloudObjectStorageApi#list() - */ - @Beta - @Named("ListCDNEnabledContainers") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @QueryParams(keys = "format", values = "json") - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - @Path("/") - ListenableFuture<FluentIterable<CDNContainer>> list(); - - /** - * @see HPCloudObjectStorageApi#list(ListCDNContainerOptions) - */ - @Beta - @Named("ListCDNEnabledContainers") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @QueryParams(keys = "format", values = "json") - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - @Path("/") - ListenableFuture<FluentIterable<CDNContainer>> list(ListCDNContainerOptions options); - - /** - * @see HPCloudObjectStorageApi#get(String) - */ - @Beta - @Named("ListCDNEnabledContainerMetadata") - @HEAD - @ResponseParser(ParseCDNContainerFromHeaders.class) - @Fallback(NullOnContainerNotFound.class) - @Path("/{container}") - ListenableFuture<CDNContainer> get(@PathParam("container") String container); - - /** - * @see HPCloudObjectStorageApi#enable(String, long) - */ - @Beta - @Named("CDNEnableContainer") - @PUT - @Path("/{container}") - @Headers(keys = HPCloudObjectStorageHeaders.CDN_ENABLED, values = "True") - @ResponseParser(ParseCDNUriFromHeaders.class) - ListenableFuture<URI> enable(@PathParam("container") String container, - @HeaderParam(HPCloudObjectStorageHeaders.CDN_TTL) long ttl); - - /** - * @see HPCloudObjectStorageApi#enable(String) - */ - @Beta - @Named("CDNEnableContainer") - @PUT - @Path("/{container}") - @Headers(keys = HPCloudObjectStorageHeaders.CDN_ENABLED, values = "True") - @ResponseParser(ParseCDNUriFromHeaders.class) - ListenableFuture<URI> enable(@PathParam("container") String container); - - /** - * @see HPCloudObjectStorageApi#update(String, long) - */ - @Beta - @Named("UpdateCDNEnabledContainerMetadata") - @POST - @Path("/{container}") - @ResponseParser(ParseCDNUriFromHeaders.class) - ListenableFuture<URI> update(@PathParam("container") String container, - @HeaderParam(HPCloudObjectStorageHeaders.CDN_TTL) long ttl); - - /** - * @see HPCloudObjectStorageApi#disable(String) - */ - @Beta - @Named("DisableCDNEnabledContainer") - @PUT - @Path("/{container}") - @Headers(keys = HPCloudObjectStorageHeaders.CDN_ENABLED, values = "False") - ListenableFuture<Boolean> disable(@PathParam("container") String container); - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageClientLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageClientLiveTest.java b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageClientLiveTest.java index b5c7028..a86123c 100644 --- a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageClientLiveTest.java +++ b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/HPCloudObjectStorageClientLiveTest.java @@ -39,7 +39,7 @@ public class HPCloudObjectStorageClientLiveTest extends CommonSwiftClientLiveTes @Override public HPCloudObjectStorageApi getApi() { - return view.unwrap(HPCloudObjectStorageApiMetadata.CONTEXT_TOKEN).getApi(); + return view.unwrapApi(HPCloudObjectStorageApi.class); } @Override http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java index 874fcf8..4857e98 100644 --- a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java +++ b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java @@ -25,12 +25,12 @@ import org.jclouds.blobstore.internal.BaseBlobSignerExpectTest; import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApiMetadata; import org.jclouds.hpcloud.objectstorage.HPCloudObjectStorageApiMetadata.HPCloudObjectStorageTemporaryUrlExtensionModule; import org.jclouds.hpcloud.objectstorage.blobstore.config.HPCloudObjectStorageBlobStoreContextModule; -import org.jclouds.hpcloud.objectstorage.config.HPCloudObjectStorageRestClientModule; +import org.jclouds.hpcloud.objectstorage.config.HPCloudObjectStorageHttpApiModule; import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; -import org.jclouds.openstack.keystone.v2_0.config.MappedAuthenticationApiModule; +import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; -import org.jclouds.openstack.swift.config.SwiftRestClientModule.KeystoneStorageEndpointModule; +import org.jclouds.openstack.swift.config.SwiftHttpApiModule.KeystoneStorageEndpointModule; import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; @@ -132,10 +132,10 @@ public class HPCloudObjectStorageBlobSignerExpectTest extends BaseBlobSignerExpe protected ApiMetadata createApiMetadata() { return new HPCloudObjectStorageApiMetadata().toBuilder() .defaultModules(ImmutableSet.<Class<? extends Module>>builder() - .add(MappedAuthenticationApiModule.class) + .add(AuthenticationApiModule.class) .add(KeystoneStorageEndpointModule.class) .add(RegionModule.class) - .add(HPCloudObjectStorageRestClientModule.class) + .add(HPCloudObjectStorageHttpApiModule.class) .add(HPCloudObjectStorageBlobStoreContextModule.class) .add(StaticTimeAndTemporaryUrlKeyModule.class).build()).build(); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/e243fa51/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageEndpointModuleTest.java ---------------------------------------------------------------------- diff --git a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageEndpointModuleTest.java b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageEndpointModuleTest.java index 119ea78..dee2547 100644 --- a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageEndpointModuleTest.java +++ b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/config/HPCloudObjectStorageEndpointModuleTest.java @@ -78,7 +78,7 @@ public class HPCloudObjectStorageEndpointModuleTest { @Test public void testObjectStorageRegion() { - final HPCloudObjectStorageRestClientModule.HPCloudObjectStorageEndpointModule moduleToTest = new HPCloudObjectStorageRestClientModule.HPCloudObjectStorageEndpointModule(); + final HPCloudObjectStorageHttpApiModule.HPCloudObjectStorageEndpointModule moduleToTest = new HPCloudObjectStorageHttpApiModule.HPCloudObjectStorageEndpointModule(); for (int i = 1; i <= 3; i++) { Supplier<URI> resultingSupplier = moduleToTest.provideStorageUrl(mockFactory, apiVersion, String.format("region%1$s", i)); @@ -93,7 +93,7 @@ public class HPCloudObjectStorageEndpointModuleTest { @Test public void testCDNRegion() { - final HPCloudObjectStorageRestClientModule moduleToTest = new HPCloudObjectStorageRestClientModule(); + final HPCloudObjectStorageHttpApiModule moduleToTest = new HPCloudObjectStorageHttpApiModule(); for (int i = 1; i <= 3; i++) { Supplier<URI> resultingSupplier = moduleToTest.provideCDNUrl(mockCDNFactory, apiVersion, String.format("region%1$s", i)); @@ -111,7 +111,7 @@ public class HPCloudObjectStorageEndpointModuleTest { */ @Test public void testObjectStorageUndefinedRegion() { - final HPCloudObjectStorageRestClientModule.HPCloudObjectStorageEndpointModule moduleToTest = new HPCloudObjectStorageRestClientModule.HPCloudObjectStorageEndpointModule(); + final HPCloudObjectStorageHttpApiModule.HPCloudObjectStorageEndpointModule moduleToTest = new HPCloudObjectStorageHttpApiModule.HPCloudObjectStorageEndpointModule(); Supplier<URI> resultingSupplier = moduleToTest.provideStorageUrl(mockFactory, apiVersion, "region-that-dne"); assertNotNull(resultingSupplier); @@ -121,7 +121,7 @@ public class HPCloudObjectStorageEndpointModuleTest { @Test public void testCDNUndefinedRegion() { - final HPCloudObjectStorageRestClientModule moduleToTest = new HPCloudObjectStorageRestClientModule(); + final HPCloudObjectStorageHttpApiModule moduleToTest = new HPCloudObjectStorageHttpApiModule(); Supplier<URI> resultingSupplier = moduleToTest.provideCDNUrl(mockCDNFactory, apiVersion, "region-that-dne"); assertNotNull(resultingSupplier);
