You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2012/07/05 21:27:03 UTC

svn commit: r1357819 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/ test/java/org/apache/shindig/gadgets/

Author: rbaxter85
Date: Thu Jul  5 19:27:02 2012
New Revision: 1357819

URL: http://svn.apache.org/viewvc?rev=1357819&view=rev
Log:
SHINDIG-1814
Committed For Erik Bi
Unserializable cache keys

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java Thu Jul  5 19:27:02 2012
@@ -46,7 +46,7 @@ public abstract class AbstractSpecFactor
   private final Class<T> clazz;
   private final ExecutorService executor;
   private final RequestPipeline pipeline;
-  final SoftExpiringCache<Uri, Object> cache;
+  final SoftExpiringCache<String, Object> cache;
   private final long refresh;
 
   /**
@@ -57,11 +57,11 @@ public abstract class AbstractSpecFactor
    * @param refresh the frequency at which to update specs, independent of cache expiration policy
    */
   public AbstractSpecFactory(Class<T> clazz, ExecutorService executor, RequestPipeline pipeline,
-      Cache<Uri, Object> cache, long refresh) {
+      Cache<String, Object> cache, long refresh) {
     this.clazz = clazz;
     this.executor = executor;
     this.pipeline = pipeline;
-    this.cache = new SoftExpiringCache<Uri, Object>(cache);
+    this.cache = new SoftExpiringCache<String, Object>(cache);
     this.refresh = refresh;
   }
 
@@ -75,14 +75,14 @@ public abstract class AbstractSpecFactor
   protected T getSpec(Query query) throws GadgetException {
     Object obj = null;
     if (!query.ignoreCache) {
-      SoftExpiringCache.CachedObject<Object> cached = cache.getElement(query.specUri);
+      SoftExpiringCache.CachedObject<Object> cached = cache.getElement(query.specUri.toString());
       if (cached != null) {
         obj = cached.obj;
         if (cached.isExpired) {
           // We write to the cache to avoid any race conditions with multiple writers.
           // This causes a double write, but that's better than a write per thread or synchronizing
           // this block.
-          cache.addElement(query.specUri, obj, refresh);
+          cache.addElement(query.specUri.toString(), obj, refresh);
           executor.execute(new SpecUpdater(query, obj));
         }
       }
@@ -105,7 +105,7 @@ public abstract class AbstractSpecFactor
         obj = e;
       }
       if (!bypassCache) {
-        cache.addElement(query.specUri, obj, refresh);
+        cache.addElement(query.specUri.toString(), obj, refresh);
       }
     }
 
@@ -215,7 +215,7 @@ public abstract class AbstractSpecFactor
     public void run() {
       try {
         T newSpec = fetchFromNetwork(query);
-        cache.addElement(query.specUri, newSpec, refresh);
+        cache.addElement(query.specUri.toString(), newSpec, refresh);
       } catch (SpecRetrievalFailedException se) {
         if (LOG.isLoggable(Level.INFO)) {
           LOG.logp(Level.INFO, classname, "SpecUpdater", MessageKeys.UPDATE_SPEC_FAILURE_APPLY_NEG_CACHE, new Object[] {query.specUri});
@@ -225,12 +225,12 @@ public abstract class AbstractSpecFactor
           if (LOG.isLoggable(Level.INFO)) {
             LOG.logp(Level.INFO, classname, "SpecUpdater", MessageKeys.UPDATE_SPEC_FAILURE_USE_CACHE_VERSION, new Object[] {query.specUri});
           }
-          cache.addElement(query.specUri, old, refresh);
+          cache.addElement(query.specUri.toString(), old, refresh);
         } else {
           if (LOG.isLoggable(Level.INFO)) {
             LOG.logp(Level.INFO, classname, "SpecUpdater", MessageKeys.UPDATE_SPEC_FAILURE_APPLY_NEG_CACHE, new Object[] {query.specUri});
           }
-          cache.addElement(query.specUri, e, refresh);
+          cache.addElement(query.specUri.toString(), e, refresh);
         }
       }
     }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java Thu Jul  5 19:27:02 2012
@@ -52,7 +52,7 @@ public class DefaultGadgetSpecFactory ex
     super(GadgetSpec.class, executor, pipeline, makeCache(cacheProvider), refresh);
   }
 
-  private static Cache<Uri, Object> makeCache(CacheProvider cacheProvider) {
+  private static Cache<String, Object> makeCache(CacheProvider cacheProvider) {
     return cacheProvider.createCache(CACHE_NAME);
   }
 

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java Thu Jul  5 19:27:02 2012
@@ -50,7 +50,7 @@ public class DefaultMessageBundleFactory
     super(MessageBundle.class, executor, pipeline, makeCache(cacheProvider), refresh);
   }
 
-  private static Cache<Uri, Object> makeCache(CacheProvider cacheProvider) {
+  private static Cache<String, Object> makeCache(CacheProvider cacheProvider) {
     return cacheProvider.createCache(CACHE_NAME);
   }
 

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java Thu Jul  5 19:27:02 2012
@@ -188,7 +188,7 @@ public class DefaultGadgetSpecFactoryTes
     replay(pipeline);
 
     specFactory.cache.addElement(
-        SPEC_URL, new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1);
+        SPEC_URL.toString(), new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1);
 
     GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false));
 
@@ -232,8 +232,8 @@ public class DefaultGadgetSpecFactoryTes
 
     specFactory.getGadgetSpec(createContext(SPEC_URL, true));
 
-    SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL);
-    specFactory.cache.addElement(SPEC_URL, inCache.obj, -1);
+    SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString());
+    specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1);
 
     GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false));
 
@@ -255,8 +255,8 @@ public class DefaultGadgetSpecFactoryTes
 
     specFactory.getGadgetSpec(createContext(SPEC_URL, true));
 
-    SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL);
-    specFactory.cache.addElement(SPEC_URL, inCache.obj, -1);
+    SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString());
+    specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1);
 
     GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false));
 
@@ -349,7 +349,7 @@ public class DefaultGadgetSpecFactoryTes
 
   @Test(expected = SpecParserException.class)
   public void negativeCachingEnforced() throws Exception {
-    specFactory.cache.addElement(SPEC_URL, new SpecParserException("broken"), 1000);
+    specFactory.cache.addElement(SPEC_URL.toString(), new SpecParserException("broken"), 1000);
     specFactory.getGadgetSpec(createContext(SPEC_URL, false));
   }