You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jt...@apache.org on 2011/08/10 22:50:03 UTC

svn commit: r1156363 - in /shindig/trunk/java: common/src/main/java/org/apache/shindig/config/ gadgets/src/main/java/org/apache/shindig/gadgets/http/ gadgets/src/test/java/org/apache/shindig/gadgets/http/

Author: jtarrio
Date: Wed Aug 10 20:50:03 2011
New Revision: 1156363

URL: http://svn.apache.org/viewvc?rev=1156363&view=rev
Log:
Add the no_expand query parameter to the cache key

Modified:
    shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfigLoader.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java

Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfigLoader.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfigLoader.java?rev=1156363&r1=1156362&r2=1156363&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfigLoader.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfigLoader.java Wed Aug 10 20:50:03 2011
@@ -21,6 +21,7 @@ package org.apache.shindig.config;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 
 import com.google.common.collect.Maps;
@@ -265,8 +266,12 @@ public class JsonContainerConfigLoader {
   }
 
   private static Map<String, Object> jsonToMap(JSONObject json) {
+    String[] keys = JSONObject.getNames(json);
+    if (keys == null) {
+      return ImmutableMap.of();
+    }
     Map<String, Object> values = new HashMap<String, Object>(json.length(), 1);
-    for (String key : JSONObject.getNames(json)) {
+    for (String key : keys) {
       Object val = jsonToConfig(json.opt(key));
       values.put(key, val);
     }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java?rev=1156363&r1=1156362&r2=1156363&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java Wed Aug 10 20:50:03 2011
@@ -77,6 +77,7 @@ public abstract class AbstractHttpCache 
   private static final String RESIZE_HEIGHT = UriCommon.Param.RESIZE_HEIGHT.getKey();
   private static final String RESIZE_WIDTH = UriCommon.Param.RESIZE_WIDTH.getKey();
   private static final String RESIZE_QUALITY = UriCommon.Param.RESIZE_QUALITY.getKey();
+  private static final String NO_EXPAND = UriCommon.Param.NO_EXPAND.getKey();
 
   // Amount of time after which the entry in cache should be considered for a refetch for a
   // non-userfacing internal fetch when the response is strict-no-cache. 
@@ -205,6 +206,7 @@ public abstract class AbstractHttpCache 
    * - the resize height parameter
    * - the resize width parameter
    * - the resize quality parameter
+   * - the no_expand parameter
    *
    * Except for the first two, all of these may be unset or <code>null</code>,
    * depending on authentication rules. See individual methods for details.  New cache key items
@@ -230,6 +232,7 @@ public abstract class AbstractHttpCache 
         .setParam("rh", request.getParam(RESIZE_HEIGHT))
         .setParam("rw", request.getParam(RESIZE_WIDTH))
         .setParam("rq", request.getParam(RESIZE_QUALITY))
+        .setParam("ne", request.getParam(NO_EXPAND))
         .setParam("rm", request.getRewriteMimeType());
 
     return keyBuilder.build();

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java?rev=1156363&r1=1156362&r2=1156363&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java Wed Aug 10 20:50:03 2011
@@ -69,7 +69,7 @@ public class AbstractHttpCacheTest {
   }
 
   private HttpRequest getMockImageRequest(String height, String width, String quality,
-      String mimeType) {
+      boolean noExpand, String mimeType) {
     HttpRequest request = EasyMock.createMock(HttpRequest.class);
     expect(request.getUri()).andReturn(IMAGE_URI).anyTimes();
     expect(request.getAuthType()).andReturn(AuthType.NONE).anyTimes();
@@ -77,6 +77,7 @@ public class AbstractHttpCacheTest {
     expect(request.getParam(Param.RESIZE_HEIGHT.getKey())).andReturn(height).anyTimes();
     expect(request.getParam(Param.RESIZE_WIDTH.getKey())).andReturn(width).anyTimes();
     expect(request.getParam(Param.RESIZE_QUALITY.getKey())).andReturn(quality).anyTimes();
+    expect(request.getParam(Param.NO_EXPAND.getKey())).andReturn(noExpand ? "1" : null).anyTimes();
     expect(request.getRewriteMimeType()).andReturn(mimeType).anyTimes();
     replay(request);
     return request;
@@ -85,7 +86,7 @@ public class AbstractHttpCacheTest {
   @Test
   public void createKeySimpleImageRequest() throws Exception {
     // Mock the Request with Image Resize (Quality) params, without rewrite mimeType.
-    HttpRequest request = getMockImageRequest("100", "80", "70", null);
+    HttpRequest request = getMockImageRequest("100", "80", "70", false, null);
     CacheKeyBuilder key = new CacheKeyBuilder()
         .setLegacyParam(0, IMAGE_URI)
         .setLegacyParam(1, AuthType.NONE)
@@ -99,13 +100,14 @@ public class AbstractHttpCacheTest {
   @Test
   public void createKeyImageRequestRewrite() throws Exception {
     // Mock the Request with Image Resize (Quality) params and specified rewrite mimeType.
-    HttpRequest request = getMockImageRequest("100", "80", "70", "image/jpg");
+    HttpRequest request = getMockImageRequest("100", "80", "70", true, "image/jpg");
     CacheKeyBuilder key = new CacheKeyBuilder()
         .setLegacyParam(0, IMAGE_URI)
         .setLegacyParam(1, AuthType.NONE)
         .setParam("rh", "100")
         .setParam("rw", "80")
         .setParam("rq", "70")
+        .setParam("ne", "1")
         .setParam("rm", "image/jpg");
 
     assertEquals(key.build(), cache.createKey(request));