You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by jo...@apache.org on 2008/09/19 01:48:55 UTC

svn commit: r696856 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/rewrite/ main/java/org/apache/shindig/gadgets/rewrite/lexer/ test/java/org/apache/shindig/gadgets/ test/java/org/apache/shindig/gadgets/http/ test/...

Author: johnh
Date: Thu Sep 18 16:48:55 2008
New Revision: 696856

URL: http://svn.apache.org/viewvc?rev=696856&view=rev
Log:
Returning RewriteResults object from ContentRewriter APIs. This allows rewriters to indicate how long their results are valid.

This allows callers (eg. CachingContentRewriterRegistry) to selectively choose how best to execute and optimize rewriting passes. This CL is part 1 of JIRA issue SHINDIG-616, and covers only the API side. A second CL will accommodate changes to CachingContentRewriterRegistry.


Added:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriterResults.java
Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CachingContentRewriterRegistry.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistry.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HtmlContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/JsTagConcatContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkingTagContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/NoOpContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/StyleLinksContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/DefaultContentRewriter.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.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/rewrite/AppendingRewriter.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CachingContentRewriterRegistry.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CachingContentRewriterRegistry.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CachingContentRewriterRegistry.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CachingContentRewriterRegistry.java Thu Sep 18 16:48:55 2008
@@ -81,6 +81,7 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   public boolean rewriteGadget(Gadget gadget)
       throws GadgetException {
     if (gadget.getContext().getIgnoreCache()) {
@@ -111,6 +112,7 @@
   }
   
   /** {@inheritDoc} */
+  @Override
   public HttpResponse rewriteHttpResponse(HttpRequest req, HttpResponse resp) {
     if (req.getIgnoreCache()) {
       return super.rewriteHttpResponse(req, resp);

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -37,16 +37,19 @@
    * Rewrite the original content located at source.
    * 
    * @param request Originating request, as context.
-   * @param response Original HTTP response, for context.
+   * @param original Original HTTP response, for context.
    * @param content Original content.
+   * @return Object indicating results cacheability, or null (indicates not cacheable).
    */
-  public void rewrite(HttpRequest request, HttpResponse original, MutableContent content);
+  public RewriterResults rewrite(HttpRequest request,
+      HttpResponse original, MutableContent content);
 
   /**
    * Rewrite the gadget. The Gadget object's manipulation methods are used
    * for the bulk of this.
    * 
    * @param gadget Gadget to rewrite.
+   * @return Object indicating results cacheability, or null (indicates not cacheable).
    */
-  public void rewrite(Gadget gadget);
+  public RewriterResults rewrite(Gadget gadget);
 }

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistry.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistry.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistry.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistry.java Thu Sep 18 16:48:55 2008
@@ -36,7 +36,8 @@
  * bootstraps the rewriters list. This enables modularization
  * of {@code ContentRewriter} instances without changing
  * Guice injection bindings. The class also provides a method
- * for manipulating a simple list of rewriters.
+ * for manipulating a simple list of rewriters. It does not
+ * support caching of rewritten contents in any way.
  */
 public class DefaultContentRewriterRegistry implements ContentRewriterRegistry {
   private final List<ContentRewriter> rewriters;

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HtmlContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HtmlContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HtmlContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HtmlContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -34,7 +34,7 @@
  */
 public abstract class HtmlContentRewriter implements ContentRewriter {
   
-  protected abstract void rewrite(GadgetHtmlNode root, URI baseUri);
+  protected abstract RewriterResults rewrite(GadgetHtmlNode root, URI baseUri);
 
   public static String getMimeType(HttpRequest request, HttpResponse original) {
     String mimeType = request.getRewriteMimeType();
@@ -44,22 +44,24 @@
     return mimeType != null ? mimeType.toLowerCase() : null;
   }
   
-  public void rewrite(HttpRequest request, HttpResponse original,
+  public RewriterResults rewrite(HttpRequest request, HttpResponse original,
       MutableContent content) {
     String mimeType = getMimeType(request, original);
     if (mimeType.toLowerCase().contains("html")) {
-      rewriteHtml(content.getParseTree(), request.getUri().toJavaUri());
+      return rewriteHtml(content.getParseTree(), request.getUri().toJavaUri());
     }
+    return null;
   }
 
-  public void rewrite(Gadget gadget) {
-    rewriteHtml(gadget.getParseTree(), gadget.getSpec().getUrl());
+  public RewriterResults rewrite(Gadget gadget) {
+    return rewriteHtml(gadget.getParseTree(), gadget.getSpec().getUrl());
   }
   
-  private void rewriteHtml(GadgetHtmlNode root, URI baseUri) {
+  private RewriterResults rewriteHtml(GadgetHtmlNode root, URI baseUri) {
     if (root != null) {
-      rewrite(root, baseUri);
+      return rewrite(root, baseUri);
     }
+    return null;
   }
 
 }

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/JsTagConcatContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/JsTagConcatContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/JsTagConcatContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/JsTagConcatContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -54,15 +54,16 @@
     }
   }
 
-  public void rewrite(HttpRequest request, HttpResponse original, MutableContent content) {
+  public RewriterResults rewrite(HttpRequest request, HttpResponse original, MutableContent content) {
     // JS Concatenation not supported for HTTP responses at present.
+    return null;
   }
 
-  public void rewrite(Gadget gadget) {
+  public RewriterResults rewrite(Gadget gadget) {
     ContentRewriterFeature rewriterFeature = rewriterFeatureFactory.get(gadget.getSpec());
     if (!rewriterFeature.isRewriteEnabled() ||
         !rewriterFeature.getIncludedTags().contains("script")) {
-      return;
+      return null;
     }
     
     // Bootstrap queue of children over which to iterate,
@@ -137,6 +138,8 @@
         }
       }
     }
+    
+    return RewriterResults.cacheableIndefinitely();
   }
   
   private List<URI> getConcatenatedUris(String concatBase, List<URI> uris) {

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkingTagContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkingTagContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkingTagContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkingTagContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -44,38 +44,38 @@
     }
   }
 
-	protected void rewrite(GadgetHtmlNode root, URI baseUri) {
-	  if (linkRewriter == null) {
-	    // Sanity test.
-	    return;
-	  }
+  @Override
+  protected RewriterResults rewrite(GadgetHtmlNode root, URI baseUri) {
+	if (linkRewriter == null) {
+	  // Sanity test.
+	  return null;
+	}
 	  
-    Queue<GadgetHtmlNode> nodesToProcess =
-      new LinkedList<GadgetHtmlNode>();
+    Queue<GadgetHtmlNode> nodesToProcess = new LinkedList<GadgetHtmlNode>();
     nodesToProcess.addAll(root.getChildren());
-  
+
     while (!nodesToProcess.isEmpty()) {
       GadgetHtmlNode curNode = nodesToProcess.remove();
       if (!curNode.isText()) {
         // Depth-first iteration over children. Order doesn't matter anyway.
         nodesToProcess.addAll(curNode.getChildren());
-        
+
         Set<String> curTagAttrs =
             tagAttributeTargets.get(curNode.getTagName().toLowerCase());
         if (curTagAttrs != null) {
           for (String attrKey : curNode.getAttributeKeys()) {
             if (curTagAttrs.contains(attrKey.toLowerCase())) {
               String attrValue = curNode.getAttributeValue(attrKey);
-            
-              // Attribute marked for rewriting: do it!
-              curNode.setAttribute(attrKey,
-                  linkRewriter.rewrite(attrValue, baseUri));
+               // Attribute marked for rewriting: do it!
+              curNode.setAttribute(attrKey, linkRewriter.rewrite(attrValue, baseUri));
             }
           }
         }
       }
     }
-	}
+      
+    return RewriterResults.cacheableIndefinitely();
+  }
 
   private static Map<String, Set<String>> getDefaultTargets() {
     Map<String, Set<String>> targets  = new HashMap<String, Set<String>>();

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/NoOpContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/NoOpContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/NoOpContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/NoOpContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -28,14 +28,14 @@
  */
 public class NoOpContentRewriter implements ContentRewriter {
 
-  public NoOpContentRewriter() {
-  }
+  public NoOpContentRewriter() { }
 
-  public void rewrite(HttpRequest request, HttpResponse original, MutableContent content) {
-    // Do nothing.
+  public RewriterResults rewrite(HttpRequest request,
+      HttpResponse original, MutableContent content) {
+    return null;
   }
 
-  public void rewrite(Gadget gadget) {
-	  // Do nothing.
+  public RewriterResults rewrite(Gadget gadget) {
+	return null;
   }
 }

Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriterResults.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriterResults.java?rev=696856&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriterResults.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriterResults.java Thu Sep 18 16:48:55 2008
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.shindig.gadgets.rewrite;
+
+/**
+ * Indicates properties of a rewrite operation that can't be determined by
+ * inspecting manipulated content directly. Gives hints to calling code as
+ * to how to cache rewritten results, in particular.
+ */
+public class RewriterResults {
+  private final long cacheTtl;
+  
+  /**
+   * @return Amount of time, in milliseconds, the rewritten results may be cached. <= 0
+   * indicates not cacheable.
+   */
+  public long getCacheTtl() {
+    return cacheTtl;
+  }
+  
+  /**
+   * Helper method indicating whether results are cacheable at all.
+   * @return Whether rewriter operation is cacheable.
+   */
+  public boolean isCacheable() {
+    return cacheTtl > 0;
+  }
+  
+  // Helper methods for creation of RewriterResults objects
+  
+  /**
+   * @return Object indicating that results are not cacheable.
+   */
+  public static RewriterResults notCacheable() {
+    return new RewriterResults(0);
+  }
+  
+  /**
+   * Indicates the results are cacheable for {@code ttl} milliseconds.
+   * @param ttl Time in milliseconds that results are cacheable.
+   * @return RewriterResults object indicating this.
+   */
+  public static RewriterResults cacheable(long ttl) {
+    return new RewriterResults(ttl);
+  }
+  
+  /**
+   * @return Object indicating results can be cached forever.
+   */
+  public static RewriterResults cacheableIndefinitely() {
+    return new RewriterResults(Long.MAX_VALUE);
+  }
+  
+  private RewriterResults(long cacheTtl) {
+    this.cacheTtl = cacheTtl;
+  }
+}

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/StyleLinksContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/StyleLinksContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/StyleLinksContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/StyleLinksContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -41,29 +41,31 @@
     this.linkRewriter = linkRewriter;
   }
 
-  public void rewrite(HttpRequest request, HttpResponse original, MutableContent content) {
+  public RewriterResults rewrite(HttpRequest request, HttpResponse original,
+      MutableContent content) {
     String mimeType = HtmlContentRewriter.getMimeType(request, original);
     if (mimeType.contains("html")) {
       rewriteHtml(content.getParseTree(), request.getUri().toJavaUri());
     } else if (mimeType.contains("css")) {
       content.setContent(rewriteCss(content.getContent(), request.getUri().toJavaUri()));
     }
+    return RewriterResults.cacheableIndefinitely();
   }
 
-  public void rewrite(Gadget gadget) {
+  public RewriterResults rewrite(Gadget gadget) {
     ContentRewriterFeature rewriterFeature = rewriterFeatureFactory.get(gadget.getSpec());
     if (linkRewriter == null || 
         !rewriterFeature.isRewriteEnabled() ||
         !rewriterFeature.getIncludedTags().contains("style")) {
-      return;
+      return null;
     }
     
-    rewriteHtml(gadget.getParseTree(), gadget.getSpec().getUrl());
+    return rewriteHtml(gadget.getParseTree(), gadget.getSpec().getUrl());
   }
   
-  private void rewriteHtml(GadgetHtmlNode root, URI baseUri) {
+  private RewriterResults rewriteHtml(GadgetHtmlNode root, URI baseUri) {
     if (root == null) {
-      return;
+      return null;
     }
     
     Queue<GadgetHtmlNode> nodesToProcess =
@@ -84,6 +86,8 @@
         }
       }
     }
+    
+    return RewriterResults.cacheableIndefinitely();
   }
   
   private String rewriteCss(String styleText, URI baseUri) {

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/DefaultContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/DefaultContentRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/DefaultContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/DefaultContentRewriter.java Thu Sep 18 16:48:55 2008
@@ -32,6 +32,7 @@
 import org.apache.shindig.gadgets.rewrite.CssRewriter;
 import org.apache.shindig.gadgets.rewrite.LinkRewriter;
 import org.apache.shindig.gadgets.rewrite.ProxyingLinkRewriter;
+import org.apache.shindig.gadgets.rewrite.RewriterResults;
 import org.apache.shindig.gadgets.spec.GadgetSpec;
 
 import java.io.ByteArrayOutputStream;
@@ -82,7 +83,8 @@
     }
   }
 
-  public void rewrite(HttpRequest request, HttpResponse original, MutableContent content) {
+  public RewriterResults rewrite(HttpRequest request, HttpResponse original,
+      MutableContent content) {
     try {
       ByteArrayOutputStream baos = new ByteArrayOutputStream(
           (content.getContent().length() * 110) / 100);
@@ -104,14 +106,17 @@
     } catch (GadgetException ge) {
       // Couldn't retrieve gadgetSpec
     }
+    
+    return RewriterResults.cacheableIndefinitely();
   }
 
-  public void rewrite(Gadget gadget) {
+  public RewriterResults rewrite(Gadget gadget) {
     StringWriter sw = new StringWriter();
     GadgetSpec spec = gadget.getSpec();
     if (rewrite(spec, spec.getUrl(), new StringReader(gadget.getContent()), "text/html", sw)) {
       gadget.setContent(sw.toString());
     }
+    return RewriterResults.cacheableIndefinitely();
   }
 
   private boolean rewrite(GadgetSpec spec, URI source, Reader r, String mimeType, Writer w) {

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java Thu Sep 18 16:48:55 2008
@@ -31,6 +31,7 @@
 import org.apache.shindig.gadgets.oauth.OAuthFetcher;
 import org.apache.shindig.gadgets.rewrite.DefaultContentRewriterRegistry;
 import org.apache.shindig.gadgets.rewrite.ContentRewriter;
+import org.apache.shindig.gadgets.rewrite.RewriterResults;
 
 import java.util.concurrent.ExecutorService;
 
@@ -67,16 +68,19 @@
     private boolean rewroteView = false;
     private boolean rewroteResponse = false;
 
-    public void rewrite(HttpRequest request, HttpResponse original, MutableContent content) {
+    public RewriterResults rewrite(HttpRequest request, HttpResponse original,
+        MutableContent content) {
       rewroteResponse = true;
+      return null;
     }
 
     public boolean responseWasRewritten() {
       return rewroteResponse;
     }
 
-    public void rewrite(Gadget gadget) {
+    public RewriterResults rewrite(Gadget gadget) {
       rewroteView = true;
+      return null;
     }
 
     public boolean viewWasRewritten() {

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java Thu Sep 18 16:48:55 2008
@@ -20,6 +20,7 @@
 import org.apache.shindig.gadgets.Gadget;
 import org.apache.shindig.gadgets.MutableContent;
 import org.apache.shindig.gadgets.rewrite.ContentRewriter;
+import org.apache.shindig.gadgets.rewrite.RewriterResults;
 
 import static org.easymock.EasyMock.expect;
 import static org.easymock.classextension.EasyMock.replay;
@@ -42,6 +43,7 @@
 public class AbstractHttpCacheTest extends TestCase {
   private Injector injector;
   
+  @Override
   protected void setUp() throws Exception {
     injector = Guice.createInjector(new TestCacheModule());
   }
@@ -76,14 +78,17 @@
       map = new HashMap<String, HttpResponse>();
     }
     
+    @Override
     public void addResponseImpl(String key, HttpResponse response) {
       map.put(key, response);
     }
     
+    @Override
     public HttpResponse getResponseImpl(String key) {
       return map.get(key);
     }
     
+    @Override
     public HttpResponse removeResponseImpl(String key) {
       return map.remove(key);
     }
@@ -91,16 +96,19 @@
   
   private static String PFX_STR = "--prefixtest--";
   private static class TestContentRewriter implements ContentRewriter {
-    public void rewrite(Gadget gadget) {
+    public RewriterResults rewrite(Gadget gadget) {
       gadget.setContent(PFX_STR + gadget.getContent());
+      return null;
     }
     
-    public void rewrite(HttpRequest req, HttpResponse resp, MutableContent c) {
-      c.setContent(PFX_STR + c.getContent());;
+    public RewriterResults rewrite(HttpRequest req, HttpResponse resp, MutableContent c) {
+      c.setContent(PFX_STR + c.getContent());
+      return null;
     }
   }
   
   private static class TestCacheModule extends AbstractModule {
+    @Override
     protected void configure() {
       bind(ContentRewriter.class).to(TestContentRewriter.class);
     }

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=696856&r1=696855&r2=696856&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 Thu Sep 18 16:48:55 2008
@@ -47,7 +47,7 @@
 
   /**
    * gets the cache provider to use for the set of tests
-   * @return
+   * @return default cache provider
    */
   protected CacheProvider getCacheProvider() {
     return new DefaultCacheProvider();

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/AppendingRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/AppendingRewriter.java?rev=696856&r1=696855&r2=696856&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/AppendingRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/AppendingRewriter.java Thu Sep 18 16:48:55 2008
@@ -34,13 +34,16 @@
     this.appender = appender;
   }
 
-  public void rewrite(HttpRequest request, HttpResponse original, MutableContent c) {
+  public RewriterResults rewrite(HttpRequest request, HttpResponse original,
+      MutableContent c) {
     // Appends appender to the end of the content string.
     c.setContent(c.getContent() + appender);
+    return RewriterResults.cacheableIndefinitely();
   }
 
-  public void rewrite(Gadget gadget) {
+  public RewriterResults rewrite(Gadget gadget) {
     // Appends appender to the end of the input string.
-	  gadget.setContent(gadget.getContent() + appender);
+	gadget.setContent(gadget.getContent() + appender);
+	return RewriterResults.cacheableIndefinitely();
   }
 }
\ No newline at end of file