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

svn commit: r745928 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/rewrite/TemplateRewriter.java test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java

Author: awiner
Date: Thu Feb 19 17:09:54 2009
New Revision: 745928

URL: http://svn.apache.org/viewvc?rev=745928&view=rev
Log:
Server-side template rewriting: temporarily, require
  <Param name="process-on-server">true</Param>
for server-side templating to kick in.  Once the server-side templating is feature
complete, this can be removed (or switched to a param that forces client-side
processing)

Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/TemplateRewriter.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/TemplateRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/TemplateRewriter.java?rev=745928&r1=745927&r2=745928&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/TemplateRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/TemplateRewriter.java Thu Feb 19 17:09:54 2009
@@ -52,6 +52,9 @@
 public class TemplateRewriter implements ContentRewriter {
 
   public final static Set<String> TAGS = ImmutableSet.of("script");
+
+  /** A temporary parameter while server-side templating is in development */
+  static final String SERVER_TEMPLATING_PARAM = "process-on-server";
   
   /**
    * Provider of the processor.  TemplateRewriters are stateless and multithreaded,
@@ -72,12 +75,20 @@
   public RewriterResults rewrite(Gadget gadget, MutableContent content) {
     Feature f = gadget.getSpec().getModulePrefs().getFeatures()
         .get("opensocial-templates");
-    if (f != null) {
+    if (f != null && isServerTemplatingEnabled(f)) {
       return rewriteImpl(gadget, content);   
     }
     return null;
   }
-  
+
+  /**
+   * For now, only enable server-side templating when the feature contains:
+   *   <Param name="process-on-server">true</Param>
+   */
+  private boolean isServerTemplatingEnabled(Feature f) {
+    return ("true".equalsIgnoreCase(f.getParams().get(SERVER_TEMPLATING_PARAM)));
+  }
+
   private RewriterResults rewriteImpl(Gadget gadget, MutableContent content) {
     List<Element> tagList =
       DomUtil.getElementsByTagNameCaseInsensitive(content.getDocument(), TAGS);

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java?rev=745928&r1=745927&r2=745928&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/TemplateRewriterTest.java Thu Feb 19 17:09:54 2009
@@ -150,7 +150,9 @@
   
   private static String getGadgetXml(String content, boolean requireFeature) {
     String feature = requireFeature ?
-        "<Require feature='opensocial-templates'/>" : "";
+        "<Require feature='opensocial-templates'>" +
+        "  <Param name='" + TemplateRewriter.SERVER_TEMPLATING_PARAM + "'>true</Param>" +
+        "</Require>" : "";
     return "<Module>" + "<ModulePrefs title='Title'>"
         + feature + "</ModulePrefs>"
         + "<Content>"