Author: lindner
Date: Fri Feb 17 07:33:31 2012
New Revision: 1245335

URL: http://svn.apache.org/viewvc?rev=1245335&view=rev
Log:
SHINDIG-1687 | upgrade to guava 11.0.1

Modified:
    shindig/trunk/UPGRADING
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
    shindig/trunk/pom.xml

Modified: shindig/trunk/UPGRADING
URL: 
http://svn.apache.org/viewvc/shindig/trunk/UPGRADING?rev=1245335&r1=1245334&r2=1245335&view=diff
==============================================================================
--- shindig/trunk/UPGRADING (original)
+++ shindig/trunk/UPGRADING Fri Feb 17 07:33:31 2012
@@ -1,4 +1,4 @@
-FROM 2.0.x TO 3.0.x
+FROM 2.0.x TO 2.5.x
 ===================
 
 == container.js config changes ==
@@ -14,7 +14,7 @@ details.
 * commons-codec 1.5 -> 1.6
 * commons-lang to commons-lang3 3.1
 * ehcache  2.3.2 -> 2.5.0
-* guava r09->10.0.1
+* guava r09->11.0.1
 * guice 2.0->3.0
 * htmlunit 2.8->2.9 
 * nekohtml 1.9.14->1.9.15

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java?rev=1245335&r1=1245334&r2=1245335&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
 Fri Feb 17 07:33:31 2012
@@ -18,11 +18,14 @@
  */
 package org.apache.shindig.gadgets.render;
 
-import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 
+import com.google.common.base.Objects;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
 import com.google.common.collect.ImmutableMultimap;
-import com.google.common.collect.MapMaker;
 import com.google.common.collect.Multimap;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
@@ -43,7 +46,7 @@ import com.google.inject.name.Named;
 @Singleton
 public class DefaultRpcServiceLookup implements RpcServiceLookup {
 
-  private final ConcurrentMap<String, Multimap<String, String>> 
containerServices;
+  private final Cache<String, Multimap<String, String>> containerServices;
 
   private final DefaultServiceFetcher fetcher;
 
@@ -54,8 +57,10 @@ public class DefaultRpcServiceLookup imp
   @Inject
   public DefaultRpcServiceLookup(DefaultServiceFetcher fetcher,
       @Named("org.apache.shindig.serviceExpirationDurationMinutes")Long 
duration) {
-    containerServices = new MapMaker().expireAfterWrite(duration * 60, 
TimeUnit.SECONDS).makeMap();
-    this.fetcher = fetcher;
+    containerServices = CacheBuilder.newBuilder()
+        .expireAfterWrite(duration * 60, TimeUnit.SECONDS)
+        .build();
+        this.fetcher = fetcher;
   }
 
   /**
@@ -63,23 +68,24 @@ public class DefaultRpcServiceLookup imp
    * @param host      Host for which gadget is being rendered, used to do 
substitution in endpoints
    * @return Map of Services, by endpoint for the given container.
    */
-  public Multimap<String, String> getServicesFor(String container, String 
host) {
+  public Multimap<String, String> getServicesFor(final String container, final 
String host) {
     // Support empty container or host by providing empty services:
     if (container == null || container.length() == 0 || host == null) {
-      return ImmutableMultimap.<String, String>builder().build();
+      return ImmutableMultimap.of();
     }
-
-    Multimap<String, String> foundServices = containerServices.get(container);
-    if (foundServices == null) {
-      foundServices = fetcher.getServicesForContainer(container, host);
-      if (foundServices != null) {
-        setServicesFor(container, foundServices);
-      }
-    }
-    if (foundServices == null) {
-      foundServices = ImmutableMultimap.<String, String>builder().build();
+    try {
+      return containerServices.get(container,
+        new Callable<Multimap<String, String>>() {
+          @Override
+          public Multimap<String, String> call() {
+            return 
Objects.firstNonNull(fetcher.getServicesForContainer(container, host),
+                ImmutableMultimap.<String,String>of());
+          }
+        }
+    );
+    } catch (ExecutionException e) {
+      return ImmutableMultimap.of();
     }
-    return foundServices;
   }
 
   /**
@@ -89,7 +95,6 @@ public class DefaultRpcServiceLookup imp
    * @param foundServices Map of services, keyed by endpoint.
    */
   void setServicesFor(String container, Multimap<String, String> 
foundServices) {
-    containerServices.put(container, foundServices);
+    containerServices.asMap().put(container, foundServices);
   }
-
 }

Modified: shindig/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/pom.xml?rev=1245335&r1=1245334&r2=1245335&view=diff
==============================================================================
--- shindig/trunk/pom.xml (original)
+++ shindig/trunk/pom.xml Fri Feb 17 07:33:31 2012
@@ -1577,7 +1577,7 @@
       <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
-        <version>10.0.1</version>
+        <version>11.0.1</version>
       </dependency>
 
       <dependency>


Reply via email to