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);