You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by hs...@apache.org on 2012/06/28 20:31:42 UTC

svn commit: r1355096 - in /shindig/trunk/java: common/conf/shindig.properties gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceRewriter.java

Author: hsaputra
Date: Thu Jun 28 18:31:41 2012
New Revision: 1355096

URL: http://svn.apache.org/viewvc?rev=1355096&view=rev
Log:
Add optional shindig property shindig.gadgets.rewriter.absolutePath.tags to add possible tags that could have its path to be rewritten as absolute. Set default as RESOURCES.

Modified:
    shindig/trunk/java/common/conf/shindig.properties
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceRewriter.java

Modified: shindig/trunk/java/common/conf/shindig.properties
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/conf/shindig.properties?rev=1355096&r1=1355095&r2=1355096&view=diff
==============================================================================
--- shindig/trunk/java/common/conf/shindig.properties (original)
+++ shindig/trunk/java/common/conf/shindig.properties Thu Jun 28 18:31:41 2012
@@ -204,4 +204,8 @@ shindig.oauth2.accessTokenExpiration=180
 shindig.oauth2.refreshTokenExpiration=432000000
 
 # Allows unauthenticated requests to Shindig
-shindig.allowUnauthenticated=true
\ No newline at end of file
+shindig.allowUnauthenticated=true
+
+# Comma separated tags that need to have its relative path to be resolved as absolute.
+# Possible values are RESOURCES and HYPERLINKS
+shindig.gadgets.rewriter.absolutePath.tags=RESOURCES

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceRewriter.java?rev=1355096&r1=1355095&r2=1355096&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/AbsolutePathReferenceRewriter.java Thu Jun 28 18:31:41 2012
@@ -19,12 +19,16 @@
 package org.apache.shindig.gadgets.rewrite;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
 import com.google.inject.Inject;
+import com.google.inject.name.Named;
 
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.Gadget;
 
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Rewriter that converts all url's to absolute.
@@ -32,12 +36,37 @@ import java.util.List;
  * @since 2.0.0
  */
 public class AbsolutePathReferenceRewriter extends DomWalker.Rewriter {
+  private static final Logger LOG = Logger.getLogger(AbsolutePathReferenceRewriter.class.getName());
+
+  private AbsolutePathReferenceVisitor.Tags[] tags = {AbsolutePathReferenceVisitor.Tags.RESOURCES};
+
   @Inject
   public AbsolutePathReferenceRewriter() {}
 
+  @Inject(optional=true)
+  public void setAbsolutePathTags(@Named("shindig.gadgets.rewriter.absolutePath.tags")
+                                         String absolutePathTags) {
+    if(LOG.isLoggable(Level.FINE)) {
+      LOG.fine("Tags that should have the reference resolved to absolute path: " + absolutePathTags);
+    }
+    String[] tagsArray = absolutePathTags.split(",");
+    List<AbsolutePathReferenceVisitor.Tags> tagsList = Lists.newArrayList();
+    for(String tagValue : tagsArray) {
+      try {
+        AbsolutePathReferenceVisitor.Tags tag = AbsolutePathReferenceVisitor.Tags.valueOf(tagValue);
+        if(!tagsList.contains(tag)) {
+          tagsList.add(tag);
+        }
+      } catch (Exception ex) {
+        LOG.warning("Invalid absolute path tag name : " + tagValue);
+        continue;
+      }
+    }
+    this.tags = tagsList.toArray(new AbsolutePathReferenceVisitor.Tags[tagsList.size()]);
+  }
+
   @Override
   protected List<DomWalker.Visitor> makeVisitors(Gadget context, Uri gadgetUri) {
-    return ImmutableList.<DomWalker.Visitor>of(
-        new AbsolutePathReferenceVisitor(AbsolutePathReferenceVisitor.Tags.RESOURCES));
+    return ImmutableList.<DomWalker.Visitor>of(new AbsolutePathReferenceVisitor(tags));
   }
 }