Author: lryan
Date: Tue Nov 11 11:01:42 2008
New Revision: 713110
URL: http://svn.apache.org/viewvc?rev=713110&view=rev
Log:
Use Uri instead of java.net.URI consistently in rewriters
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/HashUtil.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRewriter.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/LinkRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/DefaultContentRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMerger.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/StyleTagRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRewriterTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriterTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMergerTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriterTest.java
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/HashUtil.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/HashUtil.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/HashUtil.java
(original)
+++
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/HashUtil.java
Tue Nov 11 11:01:42 2008
@@ -52,4 +52,24 @@
}
return hexString.toString();
}
+
+ /**
+ * Produces a raw checksum for the given input data.
+ *
+ * @param data
+ * @return The checksum.
+ */
+ public static String rawChecksum(byte[] data) {
+ MessageDigest md;
+ try {
+ md = MessageDigest.getInstance("MD5");
+ } catch (NoSuchAlgorithmException noMD5) {
+ try {
+ md = MessageDigest.getInstance("SHA");
+ } catch (NoSuchAlgorithmException noSha) {
+ throw new RuntimeException("No suitable MessageDigest found!");
+ }
+ }
+ return new String(md.digest(data));
+ }
}
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriter.java
Tue Nov 11 11:01:42 2008
@@ -17,6 +17,7 @@
*/
package org.apache.shindig.gadgets.rewrite;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
@@ -24,8 +25,6 @@
import com.google.inject.Inject;
import com.google.inject.name.Named;
-import java.net.URI;
-
/**
* Rewrite links to referenced content in stylsheets
*/
@@ -51,13 +50,13 @@
return null;
}
ContentRewriterFeature feature = rewriterFeatureFactory.get(request);
- content.setContent(CssRewriter.rewrite(content.getContent(),
request.getUri().toJavaUri(),
- createLinkRewriter(request.getGadget().toJavaUri(), feature)));
+ content.setContent(CssRewriter.rewrite(content.getContent(),
request.getUri(),
+ createLinkRewriter(request.getGadget(), feature)));
return RewriterResults.cacheableIndefinitely();
}
- protected LinkRewriter createLinkRewriter(URI gadgetUri,
ContentRewriterFeature feature) {
+ protected LinkRewriter createLinkRewriter(Uri gadgetUri,
ContentRewriterFeature feature) {
return new ProxyingLinkRewriter(gadgetUri, feature, proxyBaseNoGadget);
}
}
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRewriter.java
Tue Nov 11 11:01:42 2008
@@ -17,11 +17,12 @@
*/
package org.apache.shindig.gadgets.rewrite;
+import org.apache.shindig.common.uri.Uri;
+
import com.google.caja.lexer.*;
import com.google.common.collect.Lists;
import java.io.*;
-import java.net.URI;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -35,20 +36,20 @@
Pattern.compile("(url\\s*\\(\\s*['\"]?)([^\\)'\"]*)(['\"]?\\s*\\))",
Pattern.CASE_INSENSITIVE);
- public static String rewrite(String content, URI source,
+ public static String rewrite(String content, Uri source,
LinkRewriter linkRewriter) {
StringWriter sw = new StringWriter((content.length() * 110) / 100);
rewrite(new StringReader(content), source, linkRewriter, sw, false);
return sw.toString();
}
- public static List<String> rewrite(Reader content, URI source,
+ public static List<String> rewrite(Reader content, Uri source,
LinkRewriter rewriter,
Writer writer,
boolean extractImports) {
List<String> imports = Lists.newArrayList();
CharProducer producer = CharProducer.Factory.create(content,
- new InputSource(source));
+ new InputSource(source.toJavaUri()));
CssLexer lexer = new CssLexer(producer);
try {
boolean inImport = false;
@@ -89,7 +90,7 @@
return imports;
}
- private static String rewriteLink(Token<CssTokenType> token, URI base,
LinkRewriter rewriter) {
+ private static String rewriteLink(Token<CssTokenType> token, Uri base,
LinkRewriter rewriter) {
Matcher matcher = urlMatcher.matcher(token.text);
if (!matcher.find()) return token.text;
return "url(\"" + rewriter.rewrite(matcher.group(2).trim(), base) + "\")";
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=713110&r1=713109&r2=713110&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
Tue Nov 11 11:01:42 2008
@@ -34,7 +34,6 @@
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;
@@ -44,12 +43,7 @@
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
/**
* Perform rewriting of HTML content including
@@ -153,7 +147,7 @@
}
}));
- LinkRewriter linkRewriter = createLinkRewriter(gadgetUri.toJavaUri(),
feature);
+ LinkRewriter linkRewriter = createLinkRewriter(gadgetUri, feature);
for (Node styleNode : styleTags) {
mutated |= true;
@@ -164,7 +158,7 @@
String styleText = styleNode.getTextContent();
StringWriter sw = new StringWriter(styleText.length());
List<String> extractedUrls = CssRewriter.rewrite(new
StringReader(styleText),
- contentBase.toJavaUri(), linkRewriter, sw, true);
+ contentBase, linkRewriter, sw, true);
styleText = sw.toString().trim();
if (styleText.length() == 0 || (styleText.length() < 25 &&
styleText.replace("<!--", "").replace("//-->", "").
@@ -204,7 +198,7 @@
return mutated;
}
- protected LinkRewriter createLinkRewriter(URI gadgetUri,
ContentRewriterFeature feature) {
+ protected LinkRewriter createLinkRewriter(Uri gadgetUri,
ContentRewriterFeature feature) {
return new ProxyingLinkRewriter(gadgetUri, feature, proxyBaseNoGadget);
}
@@ -260,7 +254,7 @@
protected boolean rewriteContentReferences(List<Node> nodeList,
ContentRewriterFeature feature,
Uri gadgetUri, Uri contentBase) {
boolean mutated = false;
- LinkRewriter rewriter = createLinkRewriter(gadgetUri.toJavaUri(), feature);
+ LinkRewriter rewriter = createLinkRewriter(gadgetUri, feature);
final Set<String> tagNames = LINKING_TAG_ATTRS.keySet();
tagNames.retainAll(feature.getIncludedTags());
@@ -279,7 +273,7 @@
Node attr = attributes.item(i);
if (rewriteable.contains(attr.getNodeName().toLowerCase())) {
mutated = true;
- attr.setNodeValue(rewriter.rewrite(attr.getNodeValue(),
contentBase.toJavaUri()));
+ attr.setNodeValue(rewriter.rewrite(attr.getNodeValue(),
contentBase));
}
}
}
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/LinkRewriter.java
Tue Nov 11 11:01:42 2008
@@ -18,13 +18,13 @@
*/
package org.apache.shindig.gadgets.rewrite;
-import java.net.URI;
+import org.apache.shindig.common.uri.Uri;
/**
* Rewrite a link
*/
public interface LinkRewriter {
- public String rewrite(String link, URI context);
+ public String rewrite(String link, Uri context);
}
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
Tue Nov 11 11:01:42 2008
@@ -18,12 +18,10 @@
*/
package org.apache.shindig.gadgets.rewrite;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.util.Utf8UrlCoder;
import org.apache.shindig.gadgets.servlet.ProxyBase;
-import java.net.URI;
-import java.net.URISyntaxException;
-
/**
* Simple link rewriter that will rewrite a link to the form
http://www.host.com/proxy/url=<url
* encoded link>&gadget=<gadget spec url>&fp=<fingeprint of rewriting rule>
@@ -34,16 +32,16 @@
private final ContentRewriterFeature rewriterFeature;
- private final URI gadgetUri;
+ private final Uri gadgetUri;
- public ProxyingLinkRewriter(URI gadgetUri, ContentRewriterFeature
rewriterFeature,
+ public ProxyingLinkRewriter(Uri gadgetUri, ContentRewriterFeature
rewriterFeature,
String prefix) {
this.prefix = prefix;
this.rewriterFeature = rewriterFeature;
this.gadgetUri = gadgetUri;
}
- public String rewrite(String link, URI context) {
+ public String rewrite(String link, Uri context) {
link = link.trim();
// We shouldnt bother proxying empty URLs
if (link.length() == 0) {
@@ -51,8 +49,8 @@
}
try {
- URI linkUri = new URI(link);
- URI uri = context.resolve(linkUri);
+ Uri linkUri = Uri.parse(link);
+ Uri uri = context.resolve(linkUri);
if (rewriterFeature.shouldRewriteURL(uri.toString())) {
String result = prefix
+ Utf8UrlCoder.encode(uri.toString())
@@ -66,7 +64,7 @@
} else {
return uri.toString();
}
- } catch (URISyntaxException use) {
+ } catch (IllegalArgumentException use) {
// Unrecoverable. Just return link
return link;
}
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=713110&r1=713109&r2=713110&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
Tue Nov 11 11:01:42 2008
@@ -32,7 +32,6 @@
import com.google.inject.name.Named;
import java.io.*;
-import java.net.URI;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -95,7 +94,7 @@
if (request.getGadget() != null) {
spec = specFactory.getGadgetSpec(request.getGadget().toJavaUri(),
false);
}
- if (rewrite(spec, request.getUri().toJavaUri(),
+ if (rewrite(spec, request.getUri(),
new StringReader(content.getContent()),
mimeType,
output)) {
@@ -119,13 +118,13 @@
if (view != null && view.getHref() != null) {
base = view.getHref();
}
- if (rewrite(spec, base.toJavaUri(), reader, "text/html", sw)) {
+ if (rewrite(spec, base, reader, "text/html", sw)) {
content.setContent(sw.toString());
}
return RewriterResults.cacheableIndefinitely();
}
- private boolean rewrite(GadgetSpec spec, URI source, Reader r, String
mimeType, Writer w) {
+ private boolean rewrite(GadgetSpec spec, Uri source, Reader r, String
mimeType, Writer w) {
// Dont rewrite content if the spec is unavailable
if (spec == null) {
return false;
@@ -192,6 +191,6 @@
protected LinkRewriter createLinkRewriter(GadgetSpec spec,
ContentRewriterFeature rewriterFeature) {
- return new ProxyingLinkRewriter(spec.getUrl().toJavaUri(),
rewriterFeature, getProxyUrl());
+ return new ProxyingLinkRewriter(spec.getUrl(), rewriterFeature,
getProxyUrl());
}
}
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriter.java
Tue Nov 11 11:01:42 2008
@@ -18,19 +18,11 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
-import com.google.caja.lexer.CharProducer;
-import com.google.caja.lexer.HtmlLexer;
-import com.google.caja.lexer.HtmlTokenType;
-import com.google.caja.lexer.InputSource;
-import com.google.caja.lexer.ParseException;
-import com.google.caja.lexer.Token;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.net.URI;
+import org.apache.shindig.common.uri.Uri;
+
+import com.google.caja.lexer.*;
+
+import java.io.*;
import java.util.Map;
/**
@@ -41,18 +33,18 @@
private HtmlRewriter() {
}
- public static String rewrite(String content, URI source,
+ public static String rewrite(String content, Uri source,
Map<String, HtmlTagTransformer> transformers) {
StringWriter sw = new StringWriter((content.length() * 110) / 100);
rewrite(new StringReader(content), source, transformers, sw);
return sw.toString();
}
- public static void rewrite(Reader content, URI source,
+ public static void rewrite(Reader content, Uri source,
Map<String, HtmlTagTransformer> transformers,
Writer writer) {
CharProducer producer = CharProducer.Factory.create(content,
- new InputSource(source));
+ new InputSource(source.toJavaUri()));
HtmlLexer lexer = new HtmlLexer(producer);
try {
Token<HtmlTokenType> lastToken = null;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMerger.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMerger.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMerger.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMerger.java
Tue Nov 11 11:01:42 2008
@@ -18,6 +18,7 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.util.Utf8UrlCoder;
import org.apache.shindig.gadgets.rewrite.ContentRewriterFeature;
import org.apache.shindig.gadgets.servlet.ProxyBase;
@@ -27,8 +28,6 @@
import com.google.caja.lexer.Token;
import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
@@ -47,7 +46,7 @@
private final String concatBase;
- private final URI relativeUrlBase;
+ private final Uri relativeUrlBase;
private boolean isTagOpen = true;
@@ -57,7 +56,7 @@
* @param relativeUrlBase to resolve relative urls
*/
public JavascriptTagMerger(GadgetSpec spec, ContentRewriterFeature
rewriterFeature,
- String concatBase, URI relativeUrlBase) {
+ String concatBase, Uri relativeUrlBase) {
// Force the mime-type to mimic browser expectation so rewriters
// can function properly
this.concatBase = concatBase
@@ -80,12 +79,12 @@
if (lastToken != null &&
lastToken.type == HtmlTokenType.ATTRNAME &&
lastToken.text.equalsIgnoreCase("src")) {
- scripts.add(new URI(stripQuotes(token.text)));
+ scripts.add(Uri.parse(stripQuotes(token.text)));
} else if (token.type == HtmlTokenType.UNESCAPED) {
scripts.add(token);
}
}
- } catch (URISyntaxException use) {
+ } catch (IllegalArgumentException use) {
throw new RuntimeException(use);
}
}
@@ -103,11 +102,11 @@
@SuppressWarnings("unchecked")
public String close() {
- List<URI> concat = new ArrayList<URI>();
+ List<Uri> concat = new ArrayList<Uri>();
StringBuilder builder = new StringBuilder(100);
for (Object o : scripts) {
- if (o instanceof URI) {
- concat.add((URI) o);
+ if (o instanceof Uri) {
+ concat.add((Uri) o);
} else {
flushConcat(concat, builder);
builder.append("<script type=\"text/javascript\">")
@@ -120,7 +119,7 @@
return builder.toString();
}
- private void flushConcat(List<URI> concat, StringBuilder builder) {
+ private void flushConcat(List<Uri> concat, StringBuilder builder) {
if (concat.isEmpty()) {
return;
}
@@ -129,7 +128,7 @@
int paramIndex = 1;
try {
for (int i = 0; i < concat.size(); i++) {
- URI srcUrl = concat.get(i);
+ Uri srcUrl = concat.get(i);
if (!srcUrl.isAbsolute()) {
srcUrl = relativeUrlBase.resolve(srcUrl);
}
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriter.java
Tue Nov 11 11:01:42 2008
@@ -18,22 +18,18 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.rewrite.LinkRewriter;
import com.google.caja.lexer.HtmlTokenType;
import com.google.caja.lexer.Token;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
/** Rewrite a linking attribute of an HTML tag to an arbitrary scheme */
public class LinkingTagRewriter implements HtmlTagTransformer {
- private final URI relativeBase;
+ private final Uri relativeBase;
private final LinkRewriter linkRewriter;
@@ -51,12 +47,12 @@
return targets;
}
- public LinkingTagRewriter(LinkRewriter linkRewriter, URI relativeBase) {
+ public LinkingTagRewriter(LinkRewriter linkRewriter, Uri relativeBase) {
this(getDefaultTargets(), linkRewriter, relativeBase);
}
public LinkingTagRewriter(Map<String, Set<String>> tagAttributeTargets,
- LinkRewriter linkRewriter, URI relativeBase) {
+ LinkRewriter linkRewriter, Uri relativeBase) {
this.tagAttributeTargets = tagAttributeTargets;
this.linkRewriter = linkRewriter;
this.relativeBase = relativeBase;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/StyleTagRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/StyleTagRewriter.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/StyleTagRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/lexer/StyleTagRewriter.java
Tue Nov 11 11:01:42 2008
@@ -18,25 +18,24 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.rewrite.CssRewriter;
import org.apache.shindig.gadgets.rewrite.LinkRewriter;
import com.google.caja.lexer.HtmlTokenType;
import com.google.caja.lexer.Token;
-import java.net.URI;
-
/**
* Rewrite the CSS content of a style tag
*/
public class StyleTagRewriter implements HtmlTagTransformer {
- private URI source;
+ private Uri source;
private LinkRewriter linkRewriter;
private StringBuffer sb;
- public StyleTagRewriter(URI source, LinkRewriter linkRewriter) {
+ public StyleTagRewriter(Uri source, LinkRewriter linkRewriter) {
this.source = source;
this.linkRewriter = linkRewriter;
sb = new StringBuffer(500);
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
Tue Nov 11 11:01:42 2008
@@ -18,27 +18,22 @@
package org.apache.shindig.gadgets.servlet;
-import com.google.inject.Inject;
-
import org.apache.shindig.common.servlet.InjectedServlet;
import org.apache.shindig.gadgets.GadgetException;
+import com.google.inject.Inject;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.*;
import java.io.IOException;
+import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
-import java.util.Locale;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
/**
* Servlet which concatenates the content of several proxied HTTP responses
*
- * @see org.apache.shindig.gadgets.rewrite.JavascriptTagMerger
+ * @see org.apache.shindig.gadgets.rewrite.HTMLContentRewriter
*/
public class ConcatProxyServlet extends InjectedServlet {
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
Tue Nov 11 11:01:42 2008
@@ -18,6 +18,7 @@
package org.apache.shindig.gadgets.rewrite;
import org.apache.commons.lang.StringUtils;
+import org.apache.shindig.common.PropertiesModule;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.EasyMockTestCase;
import org.apache.shindig.gadgets.Gadget;
@@ -57,10 +58,10 @@
defaultRewriterFeature = rewriterFeatureFactory.getDefault();
tags = defaultRewriterFeature.getIncludedTags();
defaultLinkRewriter = new ProxyingLinkRewriter(
- SPEC_URL.toJavaUri(),
+ SPEC_URL,
defaultRewriterFeature,
DEFAULT_PROXY_BASE);
- injector = Guice.createInjector(new ParseModule());
+ injector = Guice.createInjector(new ParseModule(), new PropertiesModule());
parser = injector.getInstance(GadgetHtmlParser.class);
}
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRewriterTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRewriterTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRewriterTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRewriterTest.java
Tue Nov 11 11:01:42 2008
@@ -17,11 +17,12 @@
*/
package org.apache.shindig.gadgets.rewrite;
+import org.apache.shindig.common.uri.Uri;
+
import com.google.common.collect.Lists;
import java.io.StringReader;
import java.io.StringWriter;
-import java.net.URI;
import java.util.List;
/**
@@ -29,15 +30,15 @@
*/
public class CssRewriterTest extends BaseRewriterTestCase {
- private URI dummyUri;
+ private Uri dummyUri;
@Override
protected void setUp() throws Exception {
super.setUp();
- dummyUri = new URI("http://www.w3c.org");
+ dummyUri = Uri.parse("http://www.w3c.org");
}
- private void validateRewritten(String content, URI base,
+ private void validateRewritten(String content, Uri base,
LinkRewriter rewriter, String expected) {
assertEquals(expected, CssRewriter.rewrite(content, base, rewriter));
}
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java
Tue Nov 11 11:01:42 2008
@@ -17,10 +17,7 @@
*/
package org.apache.shindig.gadgets.rewrite;
-import com.google.common.collect.Lists;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import junit.framework.TestCase;
+import org.apache.shindig.common.PropertiesModule;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetContext;
@@ -30,6 +27,11 @@
import org.apache.shindig.gadgets.parse.ParseModule;
import org.apache.shindig.gadgets.spec.GadgetSpec;
+import com.google.common.collect.Lists;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import junit.framework.TestCase;
+
import java.util.Arrays;
import java.util.List;
@@ -41,7 +43,7 @@
private GadgetHtmlParser parser;
protected void setUp() throws Exception {
- Injector injector = Guice.createInjector(new ParseModule());
+ Injector injector = Guice.createInjector(new ParseModule(), new
PropertiesModule());
parser = injector.getInstance(GadgetHtmlParser.class);
rewriters = Arrays.asList(new CaptureRewriter(), new CaptureRewriter());
contentRewriters = Lists.<ContentRewriter>newArrayList(rewriters);
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/MutableContentTest.java
Tue Nov 11 11:01:42 2008
@@ -18,15 +18,13 @@
*/
package org.apache.shindig.gadgets.rewrite;
+import org.apache.shindig.common.PropertiesModule;
import org.apache.shindig.gadgets.parse.GadgetHtmlParser;
import org.apache.shindig.gadgets.parse.ParseModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -40,7 +38,7 @@
// Note dependency on CajaHtmlParser - this isn't particularly ideal but is
// sufficient given that this test doesn't exercise the parser extensively
at all,
// instead focusing on the additional utility provided by
MutableHtmlContent
- Injector injector = Guice.createInjector(new ParseModule());
+ Injector injector = Guice.createInjector(new ParseModule(), new
PropertiesModule());
mhc = new MutableContent(injector.getInstance(GadgetHtmlParser.class),
"DEFAULT VIEW", null);
}
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
Tue Nov 11 11:01:42 2008
@@ -25,7 +25,7 @@
public class ProxyingLinkRewriterTest extends BaseRewriterTestCase {
private String rewrite(String uri) {
- return defaultLinkRewriter.rewrite(uri, SPEC_URL.toJavaUri());
+ return defaultLinkRewriter.rewrite(uri, SPEC_URL);
}
public void testAbsoluteRewrite() {
@@ -57,12 +57,12 @@
createSpecWithoutRewrite(), ".*", "", "86400",
Sets.newHashSet("embed", "img", "script", "link", "style"));
ProxyingLinkRewriter rewriter = new ProxyingLinkRewriter(
- SPEC_URL.toJavaUri(),
+ SPEC_URL,
contentRewriterFeature,
DEFAULT_PROXY_BASE);
String val = " test.gif ";
assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=86400",
- rewriter.rewrite(val, SPEC_URL.toJavaUri()));
+ rewriter.rewrite(val, SPEC_URL));
}
public void testInvalidCharRewrite() {
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriterTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriterTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriterTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/HtmlRewriterTest.java
Tue Nov 11 11:01:42 2008
@@ -18,9 +18,9 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase;
-import java.net.URI;
import java.util.HashMap;
import java.util.Map;
@@ -29,18 +29,18 @@
*/
public class HtmlRewriterTest extends BaseRewriterTestCase {
- private URI dummyUri;
+ private Uri dummyUri;
private Map<String, HtmlTagTransformer> defaultTransformerMap;
@Override
protected void setUp() throws Exception {
super.setUp();
- dummyUri = new URI("http://www.w3c.org");
+ dummyUri = Uri.parse("http://www.w3c.org");
defaultTransformerMap = new HashMap<String, HtmlTagTransformer>();
}
- private void validateRewritten(String content, URI base,
+ private void validateRewritten(String content, Uri base,
Map<String, HtmlTagTransformer> transformerMap,
String expected) {
assertEquals(expected, HtmlRewriter.rewrite(content, base,
transformerMap));
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMergerTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMergerTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMergerTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/JavascriptTagMergerTest.java
Tue Nov 11 11:01:42 2008
@@ -18,9 +18,9 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase;
-import java.net.URI;
import java.util.HashMap;
import java.util.Map;
@@ -29,22 +29,22 @@
*/
public class JavascriptTagMergerTest extends BaseRewriterTestCase {
- private URI dummyUri;
+ private Uri dummyUri;
private Map<String, HtmlTagTransformer> defaultTransformerMap;
@Override
protected void setUp() throws Exception {
super.setUp();
- dummyUri = new URI("http://www.w3c.org");
- URI relativeBase = new URI("http://a.b.com/");
+ dummyUri = Uri.parse("http://www.w3c.org");
+ Uri relativeBase = Uri.parse("http://a.b.com/");
defaultTransformerMap = new HashMap<String, HtmlTagTransformer>();
defaultTransformerMap
.put("script", new JavascriptTagMerger(createSpecWithoutRewrite(),
defaultRewriterFeature,
"http://www.test.com/concat?", relativeBase));
}
- private void validateRewritten(String content, URI base,
+ private void validateRewritten(String content, Uri base,
Map<String, HtmlTagTransformer> transformerMap,
String expected) {
assertEquals(expected, HtmlRewriter.rewrite(content, base,
transformerMap));
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriterTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriterTest.java?rev=713110&r1=713109&r2=713110&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriterTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/lexer/LinkingTagRewriterTest.java
Tue Nov 11 11:01:42 2008
@@ -18,9 +18,9 @@
*/
package org.apache.shindig.gadgets.rewrite.lexer;
+import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase;
-import java.net.URI;
import java.util.HashMap;
import java.util.Map;
@@ -29,15 +29,15 @@
*/
public class LinkingTagRewriterTest extends BaseRewriterTestCase {
- private URI dummyUri;
+ private Uri dummyUri;
private Map<String, HtmlTagTransformer> defaultTransformerMap;
@Override
protected void setUp() throws Exception {
super.setUp();
- dummyUri = new URI("http://www.w3c.org");
- URI relativeBase = new URI("http://a.b.com/");
+ dummyUri = Uri.parse("http://www.w3c.org");
+ Uri relativeBase = Uri.parse("http://a.b.com/");
LinkingTagRewriter rewriter = new LinkingTagRewriter(defaultLinkRewriter,
relativeBase);
defaultTransformerMap = new HashMap<String, HtmlTagTransformer>();
for (String tag : rewriter.getSupportedTags()) {
@@ -46,7 +46,7 @@
}
}
- private void validateRewritten(String content, URI base,
+ private void validateRewritten(String content, Uri base,
Map<String, HtmlTagTransformer> transformerMap,
String expected) {
assertEquals(expected, HtmlRewriter.rewrite(content, base,
transformerMap));