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);