Author: johnh
Date: Wed Aug 27 18:16:19 2008
New Revision: 689691

URL: http://svn.apache.org/viewvc?rev=689691&view=rev
Log:
Slight clean-up of recently-submitted refactoring of 
CachingWebRetrievalFactory. The name is already
a bad one, but the method signatures can be cleaned up a bit, and are. 
fetchFromWeb is now retrieveRawObject,
and the cache key type is templatized.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractMessageBundleFactory.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/CachingWebRetrievalFactory.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractMessageBundleFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractMessageBundleFactory.java?rev=689691&r1=689690&r2=689691&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractMessageBundleFactory.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractMessageBundleFactory.java
 Wed Aug 27 18:16:19 2008
@@ -30,7 +30,7 @@
  * delegates caching and network retrieval to concreate implementations.
  */
 public abstract class AbstractMessageBundleFactory
-    extends CachingWebRetrievalFactory<MessageBundle, LocaleSpec>
+    extends CachingWebRetrievalFactory<MessageBundle, LocaleSpec, URI>
     implements MessageBundleFactory {
   
   protected AbstractMessageBundleFactory(CacheProvider cacheProvider,

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java?rev=689691&r1=689690&r2=689691&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
 Wed Aug 27 18:16:19 2008
@@ -37,13 +37,15 @@
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
+import java.util.logging.Logger;
 
 /**
  * Basic implementation of a gadget spec factory.
  */
 @Singleton
-public class BasicGadgetSpecFactory extends 
CachingWebRetrievalFactory<GadgetSpec, URI> 
+public class BasicGadgetSpecFactory extends 
CachingWebRetrievalFactory<GadgetSpec, URI, URI> 
     implements GadgetSpecFactory {
+  static final Logger logger = 
Logger.getLogger(BasicGadgetSpecFactory.class.getName());
 
   private final HttpFetcher fetcher;
   private final ContentRewriterRegistry rewriterRegistry;
@@ -53,6 +55,11 @@
   protected URI getCacheKeyFromQueryObj(URI queryObj) {
     return queryObj;
   }
+  
+  @Override
+  protected Logger getLogger() {
+    return logger;
+  }
 
   public GadgetSpec getGadgetSpec(GadgetContext context) throws 
GadgetException {
     return getGadgetSpec(context.getUrl(), context.getIgnoreCache());
@@ -69,7 +76,7 @@
    * Retrieves a gadget specification from the Internet, processes its views 
and
    * adds it to the cache.
    */
-  protected FetchedObject<GadgetSpec> fetchFromWeb(URI url, boolean 
ignoreCache)
+  protected FetchedObject<GadgetSpec> retrieveRawObject(URI url, boolean 
ignoreCache)
       throws GadgetException {
     HttpRequest request = new 
HttpRequest(Uri.fromJavaUri(url)).setIgnoreCache(ignoreCache);
     HttpResponse response = fetcher.fetch(request);

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java?rev=689691&r1=689690&r2=689691&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
 Wed Aug 27 18:16:19 2008
@@ -31,17 +31,18 @@
 import com.google.inject.name.Named;
 
 import java.net.URI;
+import java.util.logging.Logger;
 
 /**
  * Basic implementation of a message bundle factory.
  */
 @Singleton
 public class BasicMessageBundleFactory extends AbstractMessageBundleFactory {
-
+  static final Logger logger = 
Logger.getLogger(BasicMessageBundleFactory.class.getName());
   private final HttpFetcher fetcher;
 
   @Override
-  protected FetchedObject<MessageBundle> fetchFromWeb(LocaleSpec locale,
+  protected FetchedObject<MessageBundle> retrieveRawObject(LocaleSpec locale,
       boolean ignoreCache) throws GadgetException {
     URI url = locale.getMessages();
     HttpRequest request = new 
HttpRequest(Uri.fromJavaUri(url)).setIgnoreCache(ignoreCache);
@@ -60,6 +61,11 @@
   protected URI getCacheKeyFromQueryObj(LocaleSpec queryObj) {
     return queryObj.getMessages();
   }
+  
+  @Override
+  protected Logger getLogger() {
+    return logger;
+  }
 
   protected MessageBundle fetchBundle(LocaleSpec locale, boolean ignoreCache)
       throws GadgetException {

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/CachingWebRetrievalFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/CachingWebRetrievalFactory.java?rev=689691&r1=689690&r2=689691&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/CachingWebRetrievalFactory.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/CachingWebRetrievalFactory.java
 Wed Aug 27 18:16:19 2008
@@ -18,20 +18,19 @@
  */
 package org.apache.shindig.gadgets;
 
-import java.net.URI;
 import java.util.logging.Logger;
 
 import org.apache.shindig.common.cache.Cache;
 import org.apache.shindig.common.cache.CacheProvider;
 import org.apache.shindig.gadgets.GadgetException;
 
-public abstract class CachingWebRetrievalFactory<T, Q> {
+public abstract class CachingWebRetrievalFactory<T, Q, K> {
   // Subclasses must override these.
-  protected abstract FetchedObject<T> fetchFromWeb(Q queryObj, boolean 
ignoreCache) throws GadgetException;
-  protected abstract URI getCacheKeyFromQueryObj(Q queryObj);
+  protected abstract FetchedObject<T> retrieveRawObject(Q queryObj, boolean 
ignoreCache) throws GadgetException;
+  protected abstract K getCacheKeyFromQueryObj(Q queryObj);
+  protected abstract Logger getLogger();
   
-  private static final Logger logger = 
Logger.getLogger(CachingWebRetrievalFactory.class.getName());
-  private final Cache<URI, TimeoutPair<T>> cache;
+  private final Cache<K, TimeoutPair<T>> cache;
   private final long minTtl, maxTtl;
 
   protected CachingWebRetrievalFactory(CacheProvider cacheProvider,
@@ -48,7 +47,7 @@
     
     T resultObj = null;
     long expiration = -1;
-    URI cacheKey = getCacheKeyFromQueryObj(queryObj);
+    K cacheKey = getCacheKeyFromQueryObj(queryObj);
     
     synchronized(cache) {
       TimeoutPair<T> cachedEntry = cache.getElement(cacheKey);
@@ -68,7 +67,7 @@
         if (resultObj == null) {
           throw e;
         } else {
-          logger.info("Object fetch failed for " + cacheKey + " -  using 
cached ");
+          getLogger().info("Object fetch failed for " + cacheKey + " -  using 
cached ");
           // Try again later...
           synchronized (cache) {
             cache.addElement(cacheKey, new TimeoutPair<T>(resultObj, now + 
minTtl));
@@ -81,7 +80,7 @@
   }
   
   private T fetchObjectAndCache(Q queryObj, boolean ignoreCache) throws 
GadgetException {
-    FetchedObject<T> fetched = fetchFromWeb(queryObj, ignoreCache);
+    FetchedObject<T> fetched = retrieveRawObject(queryObj, ignoreCache);
     
     long now = System.currentTimeMillis();
     long expiration = fetched.expirationTime;


Reply via email to