Author: lryan
Date: Mon Nov 10 17:19:11 2008
New Revision: 712899

URL: http://svn.apache.org/viewvc?rev=712899&view=rev
Log:
When concatenating URLs for CSS/JS eliminate duplicate references
Make ContentRewriterFeatureFactory a singleton

Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureFactory.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureFactory.java?rev=712899&r1=712898&r2=712899&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureFactory.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureFactory.java
 Mon Nov 10 17:19:11 2008
@@ -17,14 +17,16 @@
  */
 package org.apache.shindig.gadgets.rewrite;
 
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.GadgetSpecFactory;
 import org.apache.shindig.gadgets.http.HttpRequest;
 import org.apache.shindig.gadgets.spec.GadgetSpec;
 
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
 import java.net.URI;
 import java.util.HashSet;
 import java.util.Set;
@@ -32,6 +34,7 @@
 /**
  * Factory for content rewriter features
  */
[EMAIL PROTECTED]
 public class ContentRewriterFeatureFactory {
 
   private final GadgetSpecFactory specFactory;

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=712899&r1=712898&r2=712899&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
 Mon Nov 10 17:19:11 2008
@@ -34,6 +34,7 @@
 import com.google.common.collect.Sets;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
@@ -43,7 +44,12 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URLEncoder;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Perform rewriting of HTML content including
@@ -291,7 +297,8 @@
       }
     }));
 
-    List<Uri> nodeRefList = Lists.newArrayListWithExpectedSize(tags.size());
+    // Eliminate duplicates while maintaining order
+    LinkedHashSet<Uri> nodeRefList = Sets.newLinkedHashSet();
     for (Node tag : tags) {
       try {
         nodeRefList.add(
@@ -317,13 +324,14 @@
     }
   }
 
-  private static List<Uri> getConcatenatedUris(String concatBase, List<Uri> 
uris) {
+  private static List<Uri> getConcatenatedUris(String concatBase, 
LinkedHashSet<Uri> uris) {
     List<Uri> concatUris = new LinkedList<Uri>();
     int paramIndex = 1;
     StringBuilder builder = null;
     int maxUriLen = MAX_URL_LENGTH + concatBase.length();
     try {
       int uriIx = 0, lastUriIx = (uris.size() - 1);
+      //
       for (Uri uri : uris) {
         if (paramIndex == 1) {
           builder = new StringBuilder(concatBase);


Reply via email to