From 60691544c7d872340d22cb1d738d395c168c93e6 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Mon, 19 Dec 2011 17:40:31 -0800 Subject: [PATCH] updated to guava 11 syntax --- ...loudObjectStorageBlobStoreContextModule.java | 13 +++++++------ .../blobstore/functions/EnableCDNAndCache.java | 6 +++--- .../functions/PublicUriForObjectInfo.java | 17 +++++++++-------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java b/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java index 8306e22bab..66529c989e 100644 --- a/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java +++ b/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/config/HPCloudObjectStorageBlobStoreContextModule.java @@ -19,7 +19,6 @@ package org.jclouds.hpcloud.object.storage.blobstore.config; import java.net.URI; -import java.util.Map; import java.util.concurrent.TimeUnit; import javax.inject.Singleton; @@ -34,8 +33,9 @@ import org.jclouds.openstack.swift.blobstore.SwiftBlobStore; import org.jclouds.openstack.swift.blobstore.config.SwiftBlobStoreContextModule; import org.jclouds.openstack.swift.blobstore.functions.ObjectToBlobMetadata; -import com.google.common.base.Function; -import com.google.common.collect.MapMaker; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; import com.google.inject.Provides; /** @@ -46,9 +46,10 @@ public class HPCloudObjectStorageBlobStoreContextModule extends SwiftBlobStoreCo @Provides @Singleton - protected Map cdnContainer(final HPCloudObjectStorageClient client) { - return new MapMaker().expireAfterWrite(30, TimeUnit.SECONDS).makeComputingMap(new Function() { - public URI apply(String container) { + protected LoadingCache cdnContainer(final HPCloudObjectStorageClient client) { + return CacheBuilder.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build(new CacheLoader() { + @Override + public URI load(String container) { ContainerCDNMetadata md = client.getCDNMetadata(container); return md != null ? md.getCDNUri() : null; } diff --git a/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/EnableCDNAndCache.java b/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/EnableCDNAndCache.java index 3781a696d1..cb33682aab 100644 --- a/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/EnableCDNAndCache.java +++ b/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/EnableCDNAndCache.java @@ -19,7 +19,6 @@ package org.jclouds.hpcloud.object.storage.blobstore.functions; import java.net.URI; -import java.util.Map; import javax.inject.Inject; import javax.inject.Singleton; @@ -27,6 +26,7 @@ import javax.inject.Singleton; import org.jclouds.hpcloud.object.storage.HPCloudObjectStorageClient; import com.google.common.base.Function; +import com.google.common.cache.LoadingCache; /** * @@ -34,11 +34,11 @@ import com.google.common.base.Function; */ @Singleton public class EnableCDNAndCache implements Function { - private final Map cdnContainer; + private final LoadingCache cdnContainer; private final HPCloudObjectStorageClient sync; @Inject - public EnableCDNAndCache(HPCloudObjectStorageClient sync, Map cdnContainer) { + public EnableCDNAndCache(HPCloudObjectStorageClient sync, LoadingCache cdnContainer) { this.sync = sync; this.cdnContainer = cdnContainer; } diff --git a/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/PublicUriForObjectInfo.java b/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/PublicUriForObjectInfo.java index 3cd39501fa..7492adcd8d 100644 --- a/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/PublicUriForObjectInfo.java +++ b/providers/hpcloud-object-storage/src/main/java/org/jclouds/hpcloud/object/storage/blobstore/functions/PublicUriForObjectInfo.java @@ -19,7 +19,6 @@ package org.jclouds.hpcloud.object.storage.blobstore.functions; import java.net.URI; -import java.util.Map; import javax.inject.Inject; import javax.inject.Provider; @@ -29,17 +28,19 @@ import javax.ws.rs.core.UriBuilder; import org.jclouds.openstack.swift.domain.ObjectInfo; import com.google.common.base.Function; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; /** * @author Adrian Cole */ @Singleton public class PublicUriForObjectInfo implements Function { - private final Map cdnContainer; + private final LoadingCache cdnContainer; private final Provider uriBuilders; @Inject - public PublicUriForObjectInfo(Map cdnContainer, Provider uriBuilders) { + public PublicUriForObjectInfo(LoadingCache cdnContainer, Provider uriBuilders) { this.cdnContainer = cdnContainer; this.uriBuilders = uriBuilders; } @@ -48,11 +49,11 @@ public class PublicUriForObjectInfo implements Function { if (from == null) return null; try { - return uriBuilders.get().uri(cdnContainer.get(from.getContainer())).path(from.getName()).replaceQuery("") - .build(); - } catch (NullPointerException e) { - // MapMaker constructed maps are not allowed to return null; + return uriBuilders.get().uri(cdnContainer.getUnchecked(from.getContainer())).path(from.getName()).replaceQuery("") + .build(); + } catch (CacheLoader.InvalidCacheLoadException e) { + // nulls not permitted from cache loader return null; } } -} +} \ No newline at end of file