Hope you dont mind, I did a patch anyway, SHINDIG-279, its not much code.
Ian


On 18 May 2008, at 05:50, [EMAIL PROTECTED] wrote:

Author: etnu
Date: Sat May 17 21:50:15 2008
New Revision: 657495

URL: http://svn.apache.org/viewvc?rev=657495&view=rev
Log:
Modified BasicHttpCache to use an LRU cache instead of a map.


Modified:
    incubator/shindig/trunk/java/gadgets/conf/gadgets.properties
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/ shindig/gadgets/http/BasicHttpCache.java incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/SigningFetcherTest.java incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/http/BasicHttpCacheTest.java incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/http/BasicHttpFetcherTest.java

Modified: incubator/shindig/trunk/java/gadgets/conf/gadgets.properties
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/ gadgets/conf/gadgets.properties? rev=657495&r1=657494&r2=657495&view=diff ====================================================================== ======== --- incubator/shindig/trunk/java/gadgets/conf/gadgets.properties (original) +++ incubator/shindig/trunk/java/gadgets/conf/gadgets.properties Sat May 17 21:50:15 2008
@@ -7,3 +7,4 @@
 signing.key-file=
 locked-domain.enabled=false
 locked-domain.embed-host=127.0.0.1:8080
+cache.capacity=10000

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/ apache/shindig/gadgets/http/BasicHttpCache.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/ gadgets/src/main/java/org/apache/shindig/gadgets/http/ BasicHttpCache.java?rev=657495&r1=657494&r2=657495&view=diff ====================================================================== ======== --- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/ shindig/gadgets/http/BasicHttpCache.java (original) +++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/ shindig/gadgets/http/BasicHttpCache.java Sat May 17 21:50:15 2008
@@ -17,30 +17,38 @@
  */
 package org.apache.shindig.gadgets.http;

+import org.apache.shindig.common.cache.Cache;
+import org.apache.shindig.common.cache.LruCache;
+
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 import java.net.URI;
-import java.util.Map;
-import java.util.WeakHashMap;

 /**
* Simple cache of HttpResponse. Uses WeakHashMap for memory management
  */
 public class BasicHttpCache extends AbstractHttpCache {

-  private final Map<URI, HttpResponse> cache
-      = new WeakHashMap<URI, HttpResponse>();
+  private final Cache<URI, HttpResponse> cache;

   @Override
   protected HttpResponse getResponseImpl(URI uri) {
-    return cache.get(uri);
+    return cache.getElement(uri);
   }

   @Override
   protected void addResponseImpl(URI uri, HttpResponse response) {
-    cache.put(uri, response);
+    cache.addElement(uri, response);
   }

   @Override
   protected HttpResponse removeResponseImpl(URI uri) {
-    return cache.remove(uri);
+    return cache.removeElement(uri);
+  }
+
+  @Inject
+  public BasicHttpCache(@Named("cache.capacity") int capacity) {
+    cache = LruCache.create(capacity);
   }
 }

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/ apache/shindig/gadgets/SigningFetcherTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/ gadgets/src/test/java/org/apache/shindig/gadgets/ SigningFetcherTest.java?rev=657495&r1=657494&r2=657495&view=diff ====================================================================== ======== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/SigningFetcherTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/SigningFetcherTest.java Sat May 17 21:50:15 2008
@@ -14,22 +14,22 @@

 package org.apache.shindig.gadgets;

-import junit.framework.TestCase;
-
 import org.apache.shindig.common.BasicSecurityToken;
 import org.apache.shindig.gadgets.http.BasicHttpCache;
 import org.apache.shindig.gadgets.http.HttpCache;
 import org.apache.shindig.gadgets.http.HttpRequest;

 import net.oauth.OAuth;
-import net.oauth.OAuth.Parameter;
 import net.oauth.OAuthAccessor;
 import net.oauth.OAuthConsumer;
 import net.oauth.OAuthMessage;
 import net.oauth.OAuthValidator;
 import net.oauth.SimpleOAuthValidator;
+import net.oauth.OAuth.Parameter;
 import net.oauth.signature.RSA_SHA1;

+import junit.framework.TestCase;
+
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -41,7 +41,7 @@
  */
 public class SigningFetcherTest extends TestCase {
   private static final String PRIVATE_KEY_TEXT =
- "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALRiMLAh9iimur8V" + + "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALRiMLAh9iimur8V" + "A7qVvdqxevEuUkW4K+2KdMXmnQbG9Aa7k7eBjK1S +0LYmVjPKlJGNXHDGuy5Fw/d" + "7rjVJ0BLB+ubPK8iA/ Tw3hLQgXMRRGRXXCn8ikfuQfjUS1uZSatdLB81mydBETlJ" + "hI6GH4twrbDJCR2Bwy/ XWXgqgGRzAgMBAAECgYBYWVtleUzavkbrPjy0T5FMou8H" +
@@ -79,7 +79,7 @@
   @Override
   public void setUp() throws Exception {
     super.setUp();
-    cache = new BasicHttpCache();
+    cache = new BasicHttpCache(10);
     interceptor = new InterceptingContentFetcher();
     authToken = new BasicSecurityToken("o", "v", "a", "d", "u", "m");
     signer = SigningFetcher.makeFromB64PrivateKey(cache,
@@ -190,7 +190,7 @@
     assertTrue(contains(queryParams, "a", "b"));
     assertTrue(contains(queryParams, "a", "c"));
   }
-
+
   public void testValidParameterCharacters() throws Exception {
     String weird = "[EMAIL PROTECTED]()-_[]:,./";
     HttpRequest unsigned

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/ apache/shindig/gadgets/http/BasicHttpCacheTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/ gadgets/src/test/java/org/apache/shindig/gadgets/http/ BasicHttpCacheTest.java?rev=657495&r1=657494&r2=657495&view=diff ====================================================================== ======== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/http/BasicHttpCacheTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/http/BasicHttpCacheTest.java Sat May 17 21:50:15 2008
@@ -17,19 +17,16 @@
  */
 package org.apache.shindig.gadgets.http;

-import junit.framework.TestCase;
-
 import org.apache.shindig.gadgets.servlet.HttpUtil;

+import junit.framework.TestCase;
+
 import java.net.URI;
-import java.text.DateFormat;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
-import java.util.TimeZone;

 /**
  * Tests for basic content cache
@@ -41,7 +38,7 @@
   @Override
   public void setUp() throws Exception {
     super.setUp();
-    cache = new BasicHttpCache();
+    cache = new BasicHttpCache(10);
   }

   @Override

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/ apache/shindig/gadgets/http/BasicHttpFetcherTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/ gadgets/src/test/java/org/apache/shindig/gadgets/http/ BasicHttpFetcherTest.java?rev=657495&r1=657494&r2=657495&view=diff ====================================================================== ======== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/http/BasicHttpFetcherTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/ shindig/gadgets/http/BasicHttpFetcherTest.java Sat May 17 21:50:15 2008
@@ -25,7 +25,7 @@
 import java.net.URI;

 public class BasicHttpFetcherTest extends TestCase {
-  private HttpCache cache = new BasicHttpCache();
+  private HttpCache cache = new BasicHttpCache(10);
   private HttpFetcher fetcher
       = new BasicHttpFetcher(cache, Integer.MAX_VALUE);




Reply via email to