You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2010/02/23 04:06:19 UTC
svn commit: r915152 [1/2] - in /shindig/trunk/java: common/conf/
gadgets/src/main/java/org/apache/shindig/gadgets/render/
gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/
gadgets/src/test/java/org/apache/shindig/gadgets/render/ gadgets/src/tes...
Author: johnh
Date: Tue Feb 23 03:06:18 2010
New Revision: 915152
URL: http://svn.apache.org/viewvc?rev=915152&view=rev
Log:
Removes ContentRewriterFeatureFactory and instead stuffs it into
ContentRewriterFeature, whose data-containing class in turn is
subdivided to ContentRewriterFeature.Config for differentiation.
It (hopefully) cleans up the ContentRewriter configuration logic into a
more direct inheritance model:
* DefaultConfig provides "default" values as bound previously.
* Config provides a constructor that uses a Spec's Feature values to
override those found in DefaultConfig, as appropriate.
* Includes/excludes also separated into a MatchBundle class to avoid
repeated logic.
Removed:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureFactory.java
Modified:
shindig/trunk/java/common/conf/shindig.properties
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultSanitizingProxyingLinkRewriterFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriterFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriterFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultConcatLinkRewriterFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultProxyingLinkRewriterFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterFactory.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
Modified: shindig/trunk/java/common/conf/shindig.properties
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/conf/shindig.properties?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/common/conf/shindig.properties (original)
+++ shindig/trunk/java/common/conf/shindig.properties Tue Feb 23 03:06:18 2010
@@ -55,6 +55,7 @@
shindig.content-rewrite.expires=86400
shindig.content-rewrite.proxy-url=/gadgets/proxy?url=
shindig.content-rewrite.concat-url=/gadgets/concat?
+shindig.content-rewrite.enable-split-js-concat=false
#
# Default set of forced libs to allow for better caching
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultSanitizingProxyingLinkRewriterFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultSanitizingProxyingLinkRewriterFactory.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultSanitizingProxyingLinkRewriterFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultSanitizingProxyingLinkRewriterFactory.java Tue Feb 23 03:06:18 2010
@@ -38,7 +38,7 @@
}
public SanitizingProxyingLinkRewriter create(Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container,
+ ContentRewriterFeature.Config rewriterFeature, String container,
String expectedMime, boolean debug, boolean nocache) {
return new SanitizingProxyingLinkRewriter(rewriterUris, gadgetUri,
rewriterFeature, container, expectedMime, debug, nocache);
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriter.java Tue Feb 23 03:06:18 2010
@@ -22,7 +22,6 @@
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.parse.caja.CajaCssSanitizer;
import org.apache.shindig.gadgets.rewrite.ContentRewriterFeature;
-import org.apache.shindig.gadgets.rewrite.ContentRewriterFeatureFactory;
import org.apache.shindig.gadgets.rewrite.GadgetRewriter;
import org.apache.shindig.gadgets.rewrite.LinkRewriter;
import org.apache.shindig.gadgets.rewrite.MutableContent;
@@ -99,13 +98,13 @@
private final Set<String> allowedTags;
private final Set<String> allowedAttributes;
private final CajaCssSanitizer cssSanitizer;
- private final ContentRewriterFeatureFactory rewriterFeatureFactory;
+ private final ContentRewriterFeature.Factory rewriterFeatureFactory;
private final SanitizingProxyingLinkRewriterFactory sanitizingProxyingLinkRewriterFactory;
@Inject
public SanitizingGadgetRewriter(@AllowedTags Set<String> allowedTags,
@AllowedAttributes Set<String> allowedAttributes,
- ContentRewriterFeatureFactory rewriterFeatureFactory,
+ ContentRewriterFeature.Factory rewriterFeatureFactory,
CajaCssSanitizer cssSanitizer,
SanitizingProxyingLinkRewriterFactory sanitizingProxyingLinkRewriterFactory) {
this.allowedTags = allowedTags;
@@ -142,7 +141,7 @@
NodeSanitizer(Gadget gadget) {
this.context = gadget.getSpec().getUrl();
Integer expires = rewriterFeatureFactory.getDefault().getExpires();
- ContentRewriterFeature rewriterFeature =
+ ContentRewriterFeature.Config rewriterFeature =
rewriterFeatureFactory.createRewriteAllFeature(expires == null ? -1 : expires);
SanitizingProxyingLinkRewriter cssImportRewriter = sanitizingProxyingLinkRewriterFactory
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriter.java Tue Feb 23 03:06:18 2010
@@ -34,7 +34,7 @@
private final String expectedMime;
public SanitizingProxyingLinkRewriter(ContentRewriterUris rewriterUris,
- Uri gadgetUri, ContentRewriterFeature rewriterFeature, String container,
+ Uri gadgetUri, ContentRewriterFeature.Config rewriterFeature, String container,
String expectedMime, boolean debug, boolean nocache) {
super(rewriterUris, gadgetUri, rewriterFeature, container, debug, nocache);
this.expectedMime = expectedMime;
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriterFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriterFactory.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriterFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingProxyingLinkRewriterFactory.java Tue Feb 23 03:06:18 2010
@@ -26,6 +26,6 @@
@ImplementedBy(DefaultSanitizingProxyingLinkRewriterFactory.class)
public interface SanitizingProxyingLinkRewriterFactory {
public SanitizingProxyingLinkRewriter create(Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container,
+ ContentRewriterFeature.Config rewriterFeature, String container,
String expectedMime, boolean debug, boolean nocache);
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriter.java Tue Feb 23 03:06:18 2010
@@ -27,7 +27,6 @@
import org.apache.shindig.gadgets.http.HttpResponse;
import org.apache.shindig.gadgets.parse.caja.CajaCssSanitizer;
import org.apache.shindig.gadgets.rewrite.ContentRewriterFeature;
-import org.apache.shindig.gadgets.rewrite.ContentRewriterFeatureFactory;
import org.apache.shindig.gadgets.rewrite.MutableContent;
import org.apache.shindig.gadgets.rewrite.RequestRewriter;
@@ -45,12 +44,12 @@
Logger.getLogger(SanitizingRequestRewriter.class.getName());
private final CajaCssSanitizer cssSanitizer;
- private final ContentRewriterFeatureFactory rewriterFeatureFactory;
+ private final ContentRewriterFeature.Factory rewriterFeatureFactory;
private final SanitizingProxyingLinkRewriterFactory sanitizingProxyingLinkRewriterFactory;
@Inject
public SanitizingRequestRewriter(
- ContentRewriterFeatureFactory rewriterFeatureFactory,
+ ContentRewriterFeature.Factory rewriterFeatureFactory,
CajaCssSanitizer cssSanitizer,
SanitizingProxyingLinkRewriterFactory sanitizingProxyingLinkRewriterFactory) {
this.cssSanitizer = cssSanitizer;
@@ -61,7 +60,7 @@
public boolean rewrite(HttpRequest request, HttpResponse resp, MutableContent content) {
// Content fetched through the proxy can stipulate that it must be sanitized.
if (request.isSanitizationRequested()) {
- ContentRewriterFeature rewriterFeature =
+ ContentRewriterFeature.Config rewriterFeature =
rewriterFeatureFactory.createRewriteAllFeature(request.getCacheTtl());
if (StringUtils.isEmpty(request.getRewriteMimeType())) {
logger.log(Level.WARNING, "Request to sanitize without content type for "
@@ -130,7 +129,7 @@
* Sanitize a CSS file.
*/
private boolean rewriteProxiedCss(HttpRequest request, HttpResponse response,
- MutableContent content, ContentRewriterFeature rewriterFeature) {
+ MutableContent content, ContentRewriterFeature.Config rewriterFeature) {
String sanitized = "";
try {
String contentType = response.getHeader("Content-Type");
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriter.java Tue Feb 23 03:06:18 2010
@@ -34,14 +34,14 @@
private final ContentRewriterUris rewriterUris;
- private final ContentRewriterFeature rewriterFeature;
+ private final ContentRewriterFeature.Config rewriterFeature;
private final Uri gadgetUri;
private final String container;
private final boolean debug;
private final boolean ignoreCache;
public ConcatLinkRewriter(ContentRewriterUris rewriterUris, Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container, boolean debug,
+ ContentRewriterFeature.Config rewriterFeature, String container, boolean debug,
boolean ignoreCache) {
this.rewriterUris = rewriterUris;
this.rewriterFeature = rewriterFeature;
@@ -102,7 +102,7 @@
return concatUris;
}
- protected String getConcatBase(Uri gadgetUri, ContentRewriterFeature feature,
+ protected String getConcatBase(Uri gadgetUri, ContentRewriterFeature.Config feature,
String mimeType, String container) {
String concatBaseNoGadget = rewriterUris.getConcatBase(container);
return concatBaseNoGadget
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriterFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriterFactory.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriterFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatLinkRewriterFactory.java Tue Feb 23 03:06:18 2010
@@ -25,7 +25,7 @@
@ImplementedBy(DefaultConcatLinkRewriterFactory.class)
public interface ConcatLinkRewriterFactory {
public ConcatLinkRewriter create(Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container, boolean debug,
+ ContentRewriterFeature.Config rewriterFeature, String container, boolean debug,
boolean ignoreCache);
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java Tue Feb 23 03:06:18 2010
@@ -17,18 +17,25 @@
*/
package org.apache.shindig.gadgets.rewrite;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
import org.apache.commons.lang.StringUtils;
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.gadgets.GadgetContext;
+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.Feature;
import org.apache.shindig.gadgets.spec.GadgetSpec;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
@@ -40,338 +47,361 @@
* result. For legacy applications include-urls and exclude-urls, which are
* regular expressions as well as a common seperated list in include-tags.
* Default values are container specific.
- *
- * TODO: This really needs to be fixed, because it makes GadgetSpec mutable. It
- * is *ONLY* needed by code in the rewrite package.
*/
public class ContentRewriterFeature {
-
protected static final String INCLUDE_URLS = "include-urls";
protected static final String EXCLUDE_URLS = "exclude-urls";
protected static final String INCLUDE_URL = "include-url";
protected static final String EXCLUDE_URL = "exclude-url";
protected static final String INCLUDE_TAGS = "include-tags";
protected static final String EXPIRES = "expires";
+
+ public static final Integer EXPIRES_DEFAULT = -1; // -1 = Use HTTP.
- public static final String EXPIRES_DEFAULT = "HTTP";
-
- // Use tree set to maintain order for fingerprint
- protected Set<String> includeTags;
-
- protected enum PATTERNS {
+ protected enum PatternOptions {
ALL, NONE, REGEX, STRINGS
}
-
- protected PATTERNS includePatterns;
- protected PATTERNS excludePatterns;
-
- protected Pattern includePattern;
- protected Pattern excludePattern;
- protected Pattern excludeOverridePattern;
- protected Collection<String> includes;
- protected Collection<String> excludes;
-
- // If null then dont enforce a min TTL for proxied content. Use contents
- // headers
- protected Integer expires;
-
- protected Integer fingerprint;
-
+
/**
- * Constructor which takes a gadget spec and the default container settings
- *
- * @param spec
- * @param defaultInclude
- * As a regex
- * @param defaultExclude
- * As a regex
- * @param defaultExpires
- * Either "HTTP" or a ttl in seconds
- * @param defaultTags
- * Set of default tags that can be rewritten
+ * Factory for content rewriter features.
*/
- public ContentRewriterFeature(GadgetSpec spec, String defaultInclude,
- String defaultExclude, String defaultExpires, Set<String> defaultTags,
- boolean onlyAllowExcludes) {
- Feature f = null;
- if (spec != null) {
- f = spec.getModulePrefs().getFeatures().get("content-rewrite");
- }
- setUpIncludes(f, defaultInclude, onlyAllowExcludes);
- setUpExcludes(f, defaultExclude, onlyAllowExcludes);
- setUpIncludeTags(f, defaultTags, onlyAllowExcludes);
- setUpExpires(f, defaultExpires, onlyAllowExcludes);
- }
+ @Singleton
+ public static class Factory {
+ private final GadgetSpecFactory specFactory;
+ private final Config defaultConfig;
+
+ @Inject
+ public Factory(GadgetSpecFactory specFactory, DefaultConfig defaultConfig) {
+ this.specFactory = specFactory;
+ this.defaultConfig = defaultConfig;
+ }
- protected void setUpExpires(Feature f, String defaultExpires,
- boolean onlyAllowExcludes) {
- Integer defaultExpiresVal = null;
- try {
- defaultExpiresVal = new Integer(defaultExpires);
- } catch (NumberFormatException e) {
- // ignore
- }
- List<String> expiresOptions = Lists.newArrayListWithCapacity(3);
- if (f != null) {
- if (f.getParams().containsKey(EXPIRES)) {
- String p = normalizeParam(f.getParam(EXPIRES), null);
- Integer expiresParamVal = null;
+ public Config getDefault() {
+ return defaultConfig;
+ }
+
+ public Config get(HttpRequest request) {
+ return get(request.getGadget());
+ }
+
+ public Config get(final Uri gadgetUri) {
+ GadgetSpec spec;
+ if (gadgetUri != null) {
try {
- expiresParamVal = new Integer(p);
- } catch (NumberFormatException e) {
- // ignore
+ GadgetContext context = new GadgetContext() {
+ @Override
+ public Uri getUrl() {
+ return gadgetUri;
+ }
+ };
+
+ spec = specFactory.getGadgetSpec(context);
+ if (spec != null) {
+ return get(spec);
+ }
+ } catch (GadgetException ge) {
+ // Falls through to default.
}
- if (!onlyAllowExcludes || defaultExpiresVal == null
- || (expiresParamVal != null && expiresParamVal < defaultExpiresVal))
- expiresOptions.add(p);
}
+ return defaultConfig;
}
- expiresOptions.add(defaultExpires);
- expiresOptions.add(EXPIRES_DEFAULT);
-
- for (String expiryOption : expiresOptions) {
+ public Config get(GadgetSpec spec) {
+ Config rewriterFeature =
+ (Config)spec.getAttribute("content-rewriter");
+ if (rewriterFeature != null) return rewriterFeature;
+ rewriterFeature = new Config(spec, defaultConfig);
+ spec.setAttribute("content-rewriter", rewriterFeature);
+ return rewriterFeature;
+ }
+
+ /**
+ * Create a rewriter feature that allows all URIs to be rewritten.
+ */
+ public Config createRewriteAllFeature(int ttl) {
+ return new Config(
+ ".*", "", (ttl == -1) ? "HTTP" : Integer.toString(ttl),
+ "", false, true);
+ }
+ }
+
+ @Singleton
+ public static class DefaultConfig extends Config {
+ @Inject
+ public DefaultConfig(
+ @Named("shindig.content-rewrite.include-urls")String includeUrls,
+ @Named("shindig.content-rewrite.exclude-urls")String excludeUrls,
+ @Named("shindig.content-rewrite.expires")String expires,
+ @Named("shindig.content-rewrite.include-tags")String includeTags,
+ @Named("shindig.content-rewrite.only-allow-excludes")String onlyAllowExcludes,
+ @Named("shindig.content-rewrite.enable-split-js-concat")String enableSplitJsConcat) {
+ super(includeUrls, excludeUrls, expires, includeTags,
+ Boolean.parseBoolean(onlyAllowExcludes), Boolean.parseBoolean(enableSplitJsConcat));
+ }
+ }
+
+ public static class Config {
+ private final MatchBundle includes;
+ private final MatchBundle excludes;
+
+ // Use tree set to maintain order for fingerprint
+ private final Set<String> includeTags;
+
+ // If null then dont enforce a min TTL for proxied content.
+ // Use contents headers
+ private final Integer expires;
+ private final boolean onlyAllowExcludes;
+ private final boolean enableSplitJs;
+
+ // Lazily computed
+ private Integer fingerprint;
+
+ /**
+ * Constructor which takes a gadget spec and container settings
+ * as "raw" input strings.
+ *
+ * @param defaultInclude As a regex
+ * @param defaultExclude As a regex
+ * @param defaultExpires Either "HTTP" or a ttl in seconds
+ * @param defaultTags Set of default tags that can be rewritten
+ * @param onlyAllowExcludes If includes are always implicitly "all"
+ * @param enableSplitJs If split-JS technique is enabled
+ */
+ Config(String defaultInclude,
+ String defaultExclude, String defaultExpires, String defaultTags,
+ boolean onlyAllowExcludes, boolean enableSplitJs) {
+ // Set up includes from defaultInclude param
+ this.includes = getMatchBundle(paramTrim(defaultInclude),
+ Collections.<String>emptyList());
+
+ // Set up excludes from defaultExclude param
+ this.excludes = getMatchBundle(paramTrim(defaultExclude),
+ Collections.<String>emptyList());
+
+ // Parse includeTags
+ ImmutableSet.Builder<String> includeTagsBuilder = ImmutableSet.builder();
+ for (String s : paramTrim(defaultTags).toLowerCase().split("\\s*,\\s*")) {
+ if (s != null && s.length() > 0) {
+ includeTagsBuilder.add(s);
+ }
+ }
+ this.includeTags = includeTagsBuilder.build();
+
+ // Parse expires field
+ int expiresVal = EXPIRES_DEFAULT;
try {
- expires = new Integer(expiryOption);
- break;
- } catch (NumberFormatException nfe) {
- // Not an integer
- if (EXPIRES_DEFAULT.equalsIgnoreCase(expiryOption)) {
- break;
+ expiresVal = Integer.parseInt(paramTrim(defaultExpires));
+ } catch (NumberFormatException e) {
+ // Fall through to default.
+ }
+ this.expires = expiresVal;
+
+ // Save config for onlyAllowExcludes
+ this.onlyAllowExcludes = onlyAllowExcludes;
+ this.enableSplitJs = enableSplitJs;
+ }
+
+ Config(GadgetSpec spec, Config defaultConfig) {
+ this.onlyAllowExcludes = defaultConfig.onlyAllowExcludes;
+
+ Feature f = spec.getModulePrefs().getFeatures().get("content-rewrite");
+
+ // Include overrides.
+ // Note: Shindig originally supported the plural versions with regular
+ // expressions. But the OpenSocial specification v0.9 allows for singular
+ // spellings, with multiple values. Plus they are case insensitive substrings.
+ // For backward compatibility, if the singular versions are present they
+ // will override the plural versions. 10/6/09
+ String includeRegex = defaultConfig.includes.param;
+ Collection<String> includeUrls = Lists.newArrayList();
+ if (f != null && !onlyAllowExcludes) {
+ if (f.getParams().containsKey(INCLUDE_URLS)) {
+ includeRegex = f.getParam(INCLUDE_URLS);
+ }
+ Collection<String> paramUrls = f.getParamCollection(INCLUDE_URL);
+ for (String url : paramUrls) {
+ includeUrls.add(url.trim().toLowerCase());
}
}
- }
- }
-
- protected void setUpIncludeTags(Feature f, Set<String> defaultTags,
- boolean onlyAllowExcludes) {
- this.includeTags = ImmutableSortedSet.copyOf(defaultTags);
- if (f != null) {
- String includeTagList = f.getParam(INCLUDE_TAGS);
- if (includeTagList != null) {
- Set<String> tags = Sets.newTreeSet();
- for (String tag : StringUtils.split(includeTagList, ',')) {
- if (tag != null) {
- tags.add(tag.trim().toLowerCase());
+ this.includes = getMatchBundle(includeRegex, includeUrls);
+
+ // Exclude overrides. Only use the exclude regex specified by the
+ // gadget spec if !onlyAllowExcludes.
+ String excludeRegex = defaultConfig.excludes.param;
+ Collection<String> excludeUrls = Lists.newArrayList();
+ if (f != null) {
+ if (f.getParams().containsKey(EXCLUDE_URLS)) {
+ excludeRegex = f.getParam(EXCLUDE_URLS);
+ }
+ Collection<String> eParamUrls = f.getParamCollection(EXCLUDE_URL);
+ for (String url : eParamUrls) {
+ excludeUrls.add(url.trim().toLowerCase());
+ }
+ }
+ this.excludes = getMatchBundle(excludeRegex, excludeUrls);
+
+ // Spec-specified include tags.
+ Set<String> tagsVal = null;
+ if (f != null && f.getParams().containsKey(INCLUDE_TAGS)) {
+ tagsVal = Sets.newTreeSet();
+ for (String tag : StringUtils.split(f.getParam(INCLUDE_TAGS), ',')) {
+ if (!StringUtils.isEmpty(tag)) {
+ tagsVal.add(tag.trim().toLowerCase());
}
}
if (onlyAllowExcludes) {
- tags.retainAll(defaultTags);
+ // Only excludes are allowed. Keep only subset of
+ // specified tags that are in the defaults.
+ tagsVal.retainAll(defaultConfig.includeTags);
}
- includeTags = tags;
- }
- }
- }
-
- // Note: Shindig originally supported the plural versions with regular
- // expressions. But the OpenSocial specification v0.9 allows for singular
- // spellings, with multiple values. Plus they are case insensitive substrings.
- // For backward compatibility, if the singular versions are present they
- // will override the plural versions. 10/6/09
-
- protected void setUpIncludes(Feature f, String defaultInclude,
- boolean onlyAllowExcludes) {
- String includeRegex = normalizeParam(defaultInclude, null);
-
- if (f != null && !onlyAllowExcludes) {
- if (f.getParams().containsKey(INCLUDE_URLS)) {
- includeRegex = normalizeParam(f.getParam(INCLUDE_URLS), includeRegex);
- }
-
- Collection<String> includeUrls = f.getParamCollection(INCLUDE_URL);
- if (includeUrls.isEmpty()) {
- includes = Collections.emptyList();
- } else if (includeUrls.contains("*")) {
- includes = Collections.singleton("*");
- } else {
- includes = new ArrayList<String>(includeUrls.size());
- for (String s : includeUrls) {
- if (s.length() > 0)
- includes.add(s.toLowerCase());
- }
- }
- } else {
- includes = Collections.emptyList();
- }
-
- if (includes.isEmpty()
- && (includeRegex == null || "".equals(includeRegex))) {
- includePatterns = PATTERNS.NONE;
- } else if (includes.size() > 0) {
- if (includes.size() == 1 && "*".equals(includes.iterator().next())) {
- includePatterns = PATTERNS.ALL;
} else {
- includePatterns = PATTERNS.STRINGS;
+ tagsVal = ImmutableSortedSet.copyOf(defaultConfig.includeTags);
}
- } else {
- if (".*".equals(includeRegex)) {
- includePatterns = PATTERNS.ALL;
- } else {
- includePatterns = PATTERNS.REGEX;
- }
- includePattern = Pattern.compile(includeRegex);
- }
- }
+ this.includeTags = tagsVal;
- protected void setUpExcludes(Feature f, String defaultExclude,
- boolean onlyAllowExcludes) {
- String excludeRegex = normalizeParam(defaultExclude, null);
- String excludeOverrideRegex = onlyAllowExcludes ? excludeRegex : null;
-
- if (f != null) {
- // Note use of default for exclude as null here to allow clearing value in
- // the presence of a container default.
- if (f.getParams().containsKey(EXCLUDE_URLS)) {
- excludeRegex = normalizeParam(f.getParam(EXCLUDE_URLS), null);
- }
-
- Collection<String> excludeUrls = f.getParamCollection(EXCLUDE_URL);
- if (excludeUrls.isEmpty()) {
- excludes = Collections.emptyList();
- } else if (excludeUrls.contains("*")) {
- excludes = Collections.singleton("*");
- } else {
- excludes = new ArrayList<String>(excludeUrls.size());
- // Override Shindig defaults
- excludeRegex = null;
- for (String s : excludeUrls) {
- if (s.length() > 0)
- excludes.add(s.toLowerCase());
- }
- }
- } else {
- excludes = Collections.emptyList();
- }
-
- if (excludes.isEmpty()
- && (excludeRegex == null || "".equals(excludeRegex))) {
- excludePatterns = PATTERNS.NONE;
- } else if (excludes.size() > 0) {
- if (excludes.size() == 1 && "*".equals(excludes.iterator().next())) {
- excludePatterns = PATTERNS.ALL;
- } else {
- excludePatterns = PATTERNS.STRINGS;
+ // Let spec/feature override if present and smaller than default.
+ int expiresVal = defaultConfig.expires;
+ if (f != null && f.getParams().containsKey(EXPIRES)) {
+ try {
+ int overrideVal = Integer.parseInt(f.getParam(EXPIRES));
+ expiresVal = Math.min(overrideVal, expiresVal);
+ } catch (NumberFormatException e) {
+ // Falls through to default.
+ if ("HTTP".equalsIgnoreCase(f.getParam(EXPIRES).trim())) {
+ expiresVal = EXPIRES_DEFAULT;
+ }
+ }
}
- } else {
- if (".*".equals(excludeRegex)) {
- excludePatterns = PATTERNS.ALL;
+ this.expires = expiresVal;
+ this.enableSplitJs = defaultConfig.enableSplitJs;
+ }
+
+ private String paramTrim(String param) {
+ if (param == null) {
+ return param;
+ }
+
+ return param.trim();
+ }
+
+ private MatchBundle getMatchBundle(String regex, Collection<String> matches) {
+ MatchBundle bundle = new MatchBundle();
+ bundle.param = regex;
+ bundle.matches = matches;
+
+ if (bundle.matches.isEmpty() && StringUtils.isEmpty(bundle.param)) {
+ bundle.options = PatternOptions.NONE;
+ } else if (bundle.matches.size() == 1) {
+ String firstVal = bundle.matches.iterator().next();
+ if ("*".equals(firstVal)) {
+ bundle.options = PatternOptions.ALL;
+ } else if ("".equals(firstVal)){
+ bundle.options = PatternOptions.NONE;
+ } else {
+ bundle.options = PatternOptions.STRINGS;
+ }
+ } else if (bundle.matches.size() > 1) {
+ bundle.options = PatternOptions.STRINGS;
} else {
- excludePatterns = PATTERNS.REGEX;
+ if (".*".equals(bundle.param)) {
+ bundle.options = PatternOptions.ALL;
+ } else {
+ bundle.options = PatternOptions.REGEX;
+ }
+ bundle.pattern = Pattern.compile(bundle.param);
}
- excludePattern = Pattern.compile(excludeRegex);
+ return bundle;
}
-
- if (excludeOverrideRegex != null
- && !excludeOverrideRegex.equals(excludeRegex)) {
- excludeOverridePattern = Pattern.compile(excludeOverrideRegex);
- if (excludePatterns == PATTERNS.NONE)
- excludePatterns = PATTERNS.REGEX;
+
+ private static class MatchBundle {
+ private String param;
+ private PatternOptions options;
+ private Pattern pattern;
+ private Collection<String> matches;
}
- }
- protected String normalizeParam(String paramValue, String defaultVal) {
- if (paramValue == null) {
- return defaultVal;
- }
- paramValue = paramValue.trim();
- if (paramValue.length() == 0) {
- return defaultVal;
+ protected boolean shouldInclude(String url) {
+ return matcherMatches(url, includes);
}
- return paramValue;
- }
- protected boolean shouldInclude(String url) {
- switch (includePatterns) {
- case NONE:
- return false;
- case ALL:
- return true;
- case REGEX:
- return includePattern.matcher(url).find();
- case STRINGS:
- // "*" is handled by ALL
- String urllc = url.toLowerCase();
- for (String substr : includes) {
- if (urllc.indexOf(substr) >= 0)
- return true;
- }
- return false;
+ protected boolean shouldExclude(String url) {
+ return matcherMatches(url, excludes);
}
- return false;
- }
-
- protected boolean shouldExclude(String url) {
- switch (excludePatterns) {
- case NONE:
- return false;
- case ALL:
- return true;
- case REGEX:
- return (excludeOverridePattern != null && excludeOverridePattern.matcher(
- url).find())
- || (excludePattern != null && excludePattern.matcher(url).find());
- case STRINGS:
- if (excludeOverridePattern != null
- && excludeOverridePattern.matcher(url).find())
+
+ private static boolean matcherMatches(String url, MatchBundle bundle) {
+ switch (bundle.options) {
+ case NONE:
+ return false;
+ case ALL:
return true;
- // "*" is handled by ALL
- String urllc = url.toLowerCase();
- for (String substr : excludes) {
- if (urllc.indexOf(substr) >= 0)
- return true;
+ case REGEX:
+ return bundle.pattern.matcher(url).find();
+ case STRINGS:
+ // "*" is handled by ALL
+ String urllc = url.toLowerCase();
+ for (String substr : bundle.matches) {
+ if (urllc.indexOf(substr) >= 0)
+ return true;
+ }
+ return false;
}
return false;
}
- return false;
- }
-
- public boolean isRewriteEnabled() {
- return includePatterns != PATTERNS.NONE && excludePatterns != PATTERNS.ALL;
- }
- public boolean shouldRewriteURL(String url) {
- return shouldInclude(url) && !shouldExclude(url);
- }
+ public boolean isRewriteEnabled() {
+ return includes.options != PatternOptions.NONE &&
+ excludes.options != PatternOptions.ALL;
+ }
- public boolean shouldRewriteTag(String tag) {
- if (tag != null) {
- return this.includeTags.contains(tag.toLowerCase());
+ public boolean shouldRewriteURL(String url) {
+ return shouldInclude(url) && !shouldExclude(url);
}
- return false;
- }
- public Set<String> getIncludedTags() {
- return includeTags;
- }
+ public boolean shouldRewriteTag(String tag) {
+ if (tag != null) {
+ return this.includeTags.contains(tag.toLowerCase());
+ }
+ return false;
+ }
- /**
- * @return the min TTL to enforce or null if proxy should respect headers
- */
- public Integer getExpires() {
- return expires;
- }
+ public Set<String> getIncludedTags() {
+ return includeTags;
+ }
- /**
- * @return fingerprint of rewriting rule for cache-busting
- */
- public int getFingerprint() {
- if (fingerprint == null) {
- int result;
- result = (includePattern != null ? includePattern.pattern().hashCode()
- : 0);
- for (String s : includes) {
- result = 31 * result + s.hashCode();
- }
- result = 31 * result
- + (excludePattern != null ? excludePattern.pattern().hashCode() : 0);
- for (String s : excludes) {
- result = 31 * result + s.hashCode();
- }
- for (String s : includeTags) {
- result = 31 * result + s.hashCode();
+ /**
+ * @return the min TTL to enforce or null if proxy should respect headers
+ */
+ public Integer getExpires() {
+ return expires;
+ }
+
+ public boolean isSplitJsEnabled() {
+ return enableSplitJs;
+ }
+
+ /**
+ * @return fingerprint of rewriting rule for cache-busting
+ */
+ public int getFingerprint() {
+ if (fingerprint == null) {
+ int result =
+ (includes.pattern != null ?
+ includes.pattern.pattern().hashCode() : 0);
+ for (String s : includes.matches) {
+ result = 31 * result + s.hashCode();
+ }
+ result = 31 * result +
+ (excludes.pattern != null ?
+ excludes.pattern.pattern().hashCode() : 0);
+ for (String s : excludes.matches) {
+ result = 31 * result + s.hashCode();
+ }
+ for (String s : includeTags) {
+ result = 31 * result + s.hashCode();
+ }
+ fingerprint = result;
}
- fingerprint = result;
+ return fingerprint;
}
- return fingerprint;
}
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriter.java Tue Feb 23 03:06:18 2010
@@ -48,12 +48,12 @@
private static final Logger logger = Logger.getLogger(CssRequestRewriter.class.getName());
- private final ContentRewriterFeatureFactory rewriterFeatureFactory;
+ private final ContentRewriterFeature.Factory rewriterFeatureFactory;
private final CajaCssLexerParser cssParser;
private final ProxyingLinkRewriterFactory proxyingLinkRewriterFactory;
@Inject
- public CssRequestRewriter(ContentRewriterFeatureFactory rewriterFeatureFactory,
+ public CssRequestRewriter(ContentRewriterFeature.Factory rewriterFeatureFactory,
CajaCssLexerParser cssParser,
ProxyingLinkRewriterFactory proxyingLinkRewriterFactory) {
this.rewriterFeatureFactory = rewriterFeatureFactory;
@@ -66,7 +66,7 @@
if (!RewriterUtils.isCss(request, original)) {
return false;
}
- ContentRewriterFeature feature = rewriterFeatureFactory.get(request);
+ ContentRewriterFeature.Config feature = rewriterFeatureFactory.get(request);
String css = content.getContent();
StringWriter sw = new StringWriter((css.length() * 110) / 100);
rewrite(new StringReader(css), request.getUri(),
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultConcatLinkRewriterFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultConcatLinkRewriterFactory.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultConcatLinkRewriterFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultConcatLinkRewriterFactory.java Tue Feb 23 03:06:18 2010
@@ -38,7 +38,7 @@
}
public ConcatLinkRewriter create(Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container, boolean debug,
+ ContentRewriterFeature.Config rewriterFeature, String container, boolean debug,
boolean ignoreCache) {
return new ConcatLinkRewriter(rewriterUris, gadgetUri, rewriterFeature,
container, debug, ignoreCache);
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultProxyingLinkRewriterFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultProxyingLinkRewriterFactory.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultProxyingLinkRewriterFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultProxyingLinkRewriterFactory.java Tue Feb 23 03:06:18 2010
@@ -35,7 +35,7 @@
}
public ProxyingLinkRewriter create(Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container, boolean debug,
+ ContentRewriterFeature.Config rewriterFeature, String container, boolean debug,
boolean ignoreCache) {
return new ProxyingLinkRewriter(rewriterUris, gadgetUri, rewriterFeature,
container, debug, ignoreCache);
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java Tue Feb 23 03:06:18 2010
@@ -57,13 +57,13 @@
"embed", ImmutableSet.of("src")
);
- private final ContentRewriterFeatureFactory rewriterFeatureFactory;
+ private final ContentRewriterFeature.Factory rewriterFeatureFactory;
private final CssRequestRewriter cssRewriter;
private final ConcatLinkRewriterFactory concatLinkRewriterFactory;
private final ProxyingLinkRewriterFactory proxyingLinkRewriterFactory;
@Inject
- public HTMLContentRewriter(ContentRewriterFeatureFactory rewriterFeatureFactory,
+ public HTMLContentRewriter(ContentRewriterFeature.Factory rewriterFeatureFactory,
CssRequestRewriter cssRewriter,
ConcatLinkRewriterFactory concatLinkRewriterFactory,
ProxyingLinkRewriterFactory proxyingLinkRewriterFactory) {
@@ -76,7 +76,7 @@
public boolean rewrite(HttpRequest request, HttpResponse original,
MutableContent content) throws RewritingException {
if (RewriterUtils.isHtml(request, original)) {
- ContentRewriterFeature feature = rewriterFeatureFactory.get(request);
+ ContentRewriterFeature.Config feature = rewriterFeatureFactory.get(request);
return rewriteImpl(feature, request.getGadget(), request.getUri(), content,
request.getContainer(), false, request.getIgnoreCache());
}
@@ -91,7 +91,7 @@
return;
}
- ContentRewriterFeature feature = rewriterFeatureFactory.get(gadget.getSpec());
+ ContentRewriterFeature.Config feature = rewriterFeatureFactory.get(gadget.getSpec());
Uri contentBase = gadget.getSpec().getUrl();
View view = gadget.getCurrentView();
if (view != null && view.getHref() != null) {
@@ -103,7 +103,7 @@
gadget.getContext().getIgnoreCache());
}
- boolean rewriteImpl(ContentRewriterFeature feature, Uri gadgetUri,
+ boolean rewriteImpl(ContentRewriterFeature.Config feature, Uri gadgetUri,
Uri contentBase, MutableContent content, String container, boolean debug,
boolean ignoreCache) throws RewritingException {
if (!feature.isRewriteEnabled() || content.getDocument() == null) {
@@ -137,7 +137,7 @@
}
protected boolean rewriteStyleTags(Element head, List<Element> elementList,
- ContentRewriterFeature feature, Uri gadgetUri, Uri contentBase, String container,
+ ContentRewriterFeature.Config feature, Uri gadgetUri, Uri contentBase, String container,
boolean debug, boolean ignoreCache) throws RewritingException {
if (!feature.getIncludedTags().contains("style")) {
return false;
@@ -190,7 +190,7 @@
return mutated;
}
- protected boolean rewriteJsTags(List<Element> elementList, ContentRewriterFeature feature,
+ protected boolean rewriteJsTags(List<Element> elementList, ContentRewriterFeature.Config feature,
Uri gadgetUri, Uri contentBase, String container, boolean debug, boolean ignoreCache) {
if (!feature.getIncludedTags().contains("script")) {
return false;
@@ -236,7 +236,7 @@
}
protected boolean rewriteContentReferences(List<Element> elementList,
- ContentRewriterFeature feature, Uri gadgetUri, Uri contentBase, String container,
+ ContentRewriterFeature.Config feature, Uri gadgetUri, Uri contentBase, String container,
boolean debug, boolean ignoreCache) {
boolean mutated = false;
LinkRewriter rewriter = proxyingLinkRewriterFactory.create(gadgetUri,
@@ -265,7 +265,7 @@
return mutated;
}
- private void concatenateTags(final ContentRewriterFeature feature,
+ private void concatenateTags(final ContentRewriterFeature.Config feature,
List<Element> tags, Uri gadgetUri, Uri contentBase, String mimeType,
final String attr, String container, boolean debug, boolean ignoreCache) {
// Filter out excluded URLs
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java Tue Feb 23 03:06:18 2010
@@ -29,14 +29,14 @@
public class ProxyingLinkRewriter implements LinkRewriter {
protected final ContentRewriterUris rewriterUris;
- protected final ContentRewriterFeature rewriterFeature;
+ protected final ContentRewriterFeature.Config rewriterFeature;
protected final Uri gadgetUri;
protected final String container;
protected final boolean debug;
protected final boolean ignoreCache;
public ProxyingLinkRewriter(ContentRewriterUris rewriterUris, Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container, boolean debug,
+ ContentRewriterFeature.Config rewriterFeature, String container, boolean debug,
boolean ignoreCache) {
this.rewriterUris = rewriterUris;
this.rewriterFeature = rewriterFeature;
@@ -69,7 +69,8 @@
result.append("&debug=1");
if(ignoreCache)
result.append("&nocache=1");
- if (rewriterFeature.getExpires() != null) {
+ if (rewriterFeature.getExpires() != null &&
+ rewriterFeature.getExpires() != ContentRewriterFeature.EXPIRES_DEFAULT) {
result.append('&').append(ProxyBase.REFRESH_PARAM).append('=').append(rewriterFeature.getExpires().toString());
}
return result.toString();
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterFactory.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterFactory.java Tue Feb 23 03:06:18 2010
@@ -25,7 +25,7 @@
@ImplementedBy(DefaultProxyingLinkRewriterFactory.class)
public interface ProxyingLinkRewriterFactory {
public ProxyingLinkRewriter create(Uri gadgetUri,
- ContentRewriterFeature rewriterFeature, String container, boolean debug,
+ ContentRewriterFeature.Config rewriterFeature, String container, boolean debug,
boolean ignoreCache);
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java Tue Feb 23 03:06:18 2010
@@ -24,7 +24,7 @@
import org.apache.shindig.gadgets.parse.caja.CajaCssParser;
import org.apache.shindig.gadgets.parse.caja.CajaCssSanitizer;
import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase;
-import org.apache.shindig.gadgets.rewrite.ContentRewriterFeatureFactory;
+import org.apache.shindig.gadgets.rewrite.ContentRewriterFeature;
import org.apache.shindig.gadgets.rewrite.GadgetRewriter;
import org.apache.shindig.gadgets.rewrite.MutableContent;
import org.apache.shindig.gadgets.servlet.ProxyBase;
@@ -110,8 +110,9 @@
private GadgetRewriter createRewriter(Set<String> tags, Set<String> attributes) {
Set<String> newTags = new HashSet<String>(tags);
newTags.addAll(DEFAULT_TAGS);
- ContentRewriterFeatureFactory rewriterFeatureFactory =
- new ContentRewriterFeatureFactory(null, ".*", "", "HTTP", "embed,img,script,link,style", "false");
+ ContentRewriterFeature.Factory rewriterFeatureFactory =
+ new ContentRewriterFeature.Factory(null,
+ new ContentRewriterFeature.DefaultConfig(".*", "", "HTTP", "embed,img,script,link,style", "false", "false"));
return new SanitizingGadgetRewriter(newTags, attributes, rewriterFeatureFactory,
new CajaCssSanitizer(new CajaCssParser()), new DefaultSanitizingProxyingLinkRewriterFactory(rewriterUris));
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java Tue Feb 23 03:06:18 2010
@@ -29,7 +29,7 @@
import org.apache.shindig.gadgets.parse.caja.CajaCssParser;
import org.apache.shindig.gadgets.parse.caja.CajaCssSanitizer;
import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase;
-import org.apache.shindig.gadgets.rewrite.ContentRewriterFeatureFactory;
+import org.apache.shindig.gadgets.rewrite.ContentRewriterFeature;
import org.apache.shindig.gadgets.rewrite.MutableContent;
import org.apache.shindig.gadgets.rewrite.RequestRewriter;
import org.junit.Test;
@@ -53,8 +53,9 @@
}
private RequestRewriter createRewriter(Set<String> tags, Set<String> attributes) {
- ContentRewriterFeatureFactory rewriterFeatureFactory =
- new ContentRewriterFeatureFactory(null, ".*", "", "HTTP", "embed,img,script,link,style", "false");
+ ContentRewriterFeature.Factory rewriterFeatureFactory =
+ new ContentRewriterFeature.Factory(null,
+ new ContentRewriterFeature.DefaultConfig(".*", "", "HTTP", "embed,img,script,link,style", "false", "false"));
return new SanitizingRequestRewriter(rewriterFeatureFactory,
new CajaCssSanitizer(new CajaCssParser()), new DefaultSanitizingProxyingLinkRewriterFactory(rewriterUris));
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java Tue Feb 23 03:06:18 2010
@@ -57,10 +57,11 @@
replaceDefaultWithMockServer(DEFAULT_PROXY_BASE);
public static final String MOCK_CONCAT_BASE =
replaceDefaultWithMockServer(DEFAULT_CONCAT_BASE);
+ protected final String TAGS = "embed,img,script,link,style";
protected Set<String> tags;
- protected ContentRewriterFeature defaultRewriterFeature;
- protected ContentRewriterFeatureFactory rewriterFeatureFactory;
+ protected ContentRewriterFeature.Config defaultRewriterFeature;
+ protected ContentRewriterFeature.Factory rewriterFeatureFactory;
protected LinkRewriter defaultLinkRewriter;
protected LinkRewriter defaultLinkRewriterNoCache;
protected LinkRewriter defaultLinkRewriterNoCacheAndDebug;
@@ -73,8 +74,9 @@
@Before
public void setUp() throws Exception {
- rewriterFeatureFactory = new ContentRewriterFeatureFactory(null, ".*", "", "86400",
- "embed,img,script,link,style", "false");
+ rewriterFeatureFactory = new ContentRewriterFeature.Factory(null,
+ new ContentRewriterFeature.DefaultConfig(".*", "", "86400",
+ "embed,img,script,link,style", "false", "false"));
defaultRewriterFeature = rewriterFeatureFactory.getDefault();
tags = defaultRewriterFeature.getIncludedTags();
defaultContainerRewriterUris = new ContentRewriterUris(
@@ -177,8 +179,8 @@
return originalText.replace("test.com", "mock.com");
}
- ContentRewriterFeatureFactory mockContentRewriterFeatureFactory(
- ContentRewriterFeature feature) {
+ ContentRewriterFeature.Factory mockContentRewriterFeatureFactory(
+ ContentRewriterFeature.Config feature) {
return new FakeRewriterFeatureFactory(feature);
}
@@ -238,21 +240,21 @@
return mc;
}
- private static class FakeRewriterFeatureFactory extends ContentRewriterFeatureFactory {
- private final ContentRewriterFeature feature;
+ private static class FakeRewriterFeatureFactory extends ContentRewriterFeature.Factory {
+ private final ContentRewriterFeature.Config feature;
- public FakeRewriterFeatureFactory(ContentRewriterFeature feature) {
- super(null, ".*", "", "HTTP", "", "false");
+ public FakeRewriterFeatureFactory(ContentRewriterFeature.Config feature) {
+ super(null, new ContentRewriterFeature.DefaultConfig(".*", "", "HTTP", "", "false", "false"));
this.feature = feature;
}
@Override
- public ContentRewriterFeature get(GadgetSpec spec) {
+ public ContentRewriterFeature.Config get(GadgetSpec spec) {
return feature;
}
@Override
- public ContentRewriterFeature get(HttpRequest request) {
+ public ContentRewriterFeature.Config get(HttpRequest request) {
return feature;
}
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java Tue Feb 23 03:06:18 2010
@@ -28,65 +28,79 @@
* Test basic parsing of content-rewriter feature
*/
public class ContentRewriterFeatureTestCase extends BaseRewriterTestCase {
-
@Test
public void testContainerDefaultIncludeAll() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), ".*", "", "0", tags, false);
+ defaultRewriterFeature =
+ new ContentRewriterFeature.Config(createSpecWithoutRewrite(),
+ new ContentRewriterFeature.DefaultConfig(
+ ".*", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testContainerDefaultIncludeNone() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), "", ".*", "0", tags, false);
+ defaultRewriterFeature =
+ new ContentRewriterFeature.Config(createSpecWithoutRewrite(),
+ new ContentRewriterFeature.DefaultConfig(
+ "", ".*", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testContainerDefaultExcludeOverridesInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), ".*", ".*", "0",
- tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(createSpecWithoutRewrite(),
+ new ContentRewriterFeature.DefaultConfig(
+ ".*", ".*", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testSpecExcludeOverridesContainerDefaultInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite("", ".*", "0", tags), ".*",
- "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("", ".*", "0", tags),
+ new ContentRewriterFeature.DefaultConfig(
+ ".*", "", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testSpecExcludeOnlyOverridesContainerDefaultInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, ".*", null, null), ".*",
- "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(null, ".*", null, null),
+ new ContentRewriterFeature.DefaultConfig(
+ ".*", "", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testSpecExcludeOverridesContainerDefaultExclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(".*", "", "0", tags), "",
- ".*", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(".*", "", "0", tags),
+ new ContentRewriterFeature.DefaultConfig(
+ "", ".*", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testExcludeOverridesInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "test", "0", tags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "test", "0", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testIncludeOnlyMatch() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "testx", "0", tags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "0", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://testx.test.com"));
@@ -94,8 +108,9 @@
@Test
public void testTagRewrite() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "testx", "0", tags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "0", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("img"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("ScripT"));
@@ -104,8 +119,9 @@
@Test
public void testOverrideTagRewrite() throws Exception {
Set<String> newTags = Sets.newHashSet("iframe");
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "testx", "0", newTags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "0", newTags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("img"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("ScripT"));
@@ -114,31 +130,35 @@
@Test
public void testExpiresTimeParse() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "testx", "12345", tags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "12345", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 12345);
}
@Test
public void testExpiresHTTPParse() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "testx", "htTp ", tags), "", "", "12345", tags, false);
- assertNull(defaultRewriterFeature.getExpires());
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "htTp ", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, "false", "false"));
+ assertEquals(ContentRewriterFeature.EXPIRES_DEFAULT, defaultRewriterFeature.getExpires());
}
@Test
public void testExpiresInvalidParse() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewrite("test\\.com", "testx", "junk", tags), "", "", "12345", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "junk", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, "false", "false"));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 12345);
}
@Test
public void testSpecEmptyContainerWithExclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, null, null, null), ".*",
- "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(null, null, null, null),
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -146,8 +166,9 @@
@Test
public void testSpecExcludeOnlyOverridesContainerWithExclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, "", null, null), ".*",
- "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(null, "", null, null),
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -155,8 +176,9 @@
@Test
public void testSpecEmptyDoesNotOverridesContainerDefaultNoInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, null, null, null), "",
- "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(null, null, null, null),
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -164,10 +186,25 @@
@Test
public void testSpecIncludeOnlyOverridesContainerDefaultNoInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(".*", null, null, null), "",
- "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(".*", null, null, null),
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
+
+ @Test
+ public void testSplitJsSupported() throws Exception {
+ defaultRewriterFeature =
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "true");
+ assertTrue(defaultRewriterFeature.isSplitJsEnabled());
+ }
+
+ @Test
+ public void testSplitJsNotSupported() throws Exception {
+ defaultRewriterFeature =
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "false");
+ assertFalse(defaultRewriterFeature.isSplitJsEnabled());
+ }
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java Tue Feb 23 03:06:18 2010
@@ -33,9 +33,9 @@
@Test
public void testSpecExcludeOverridesContainerDefaultInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "" }, new String[] { "*" },
- "0", tags), ".*", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "" }, new String[] { "*" }, "0", tags),
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -43,9 +43,9 @@
@Test
public void testSpecExcludeOverridesMultipleContainerDefaultInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "" }, new String[] { "foo",
- "bar" }, "0", tags), ".*", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(null, new String[] { "foo", "bar" }, "0", tags),
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com"));
@@ -55,9 +55,9 @@
@Test
public void testSpecExcludeOnlyOverridesContainerDefaultInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(null, new String[] { "*" }, null, null), ".*",
- "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(null, new String[] { "*" }, null, null),
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -65,27 +65,27 @@
@Test
public void testSpecExcludeOverridesContainerDefaultExclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "*" }, new String[] { "" },
- "0", tags), "", ".*", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "*" }, new String[] { "" }, "0", tags),
+ new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testExcludeOverridesInclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "test.com" },
- new String[] { "test" }, "0", tags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "test.com" }, new String[] { "test" }, "0", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@Test
public void testIncludeOnlyMatch() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "test.com" },
- new String[] { "testx" }, "0", tags), "", "", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "test.com" }, new String[] { "testx" }, "0", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
assertFalse(defaultRewriterFeature
@@ -94,9 +94,9 @@
@Test
public void testSpecEmptyContainerWithExclude() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(null, null, null, null), ".*", "test", "0",
- tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(null, null, null, null),
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -105,9 +105,9 @@
@Test
public void testSpecExcludeOnlyOverridesContainerWithExclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(null, new String[] { "" }, null, null), ".*",
- "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(null, new String[] { "" }, null, null),
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -116,9 +116,9 @@
@Test
public void testSpecEmptyDoesNotOverridesContainerDefaultNoInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(null, null, null, null), "", "test", "0",
- tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(null, null, null, null),
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "false"));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature
.shouldRewriteURL("http://www.foobar.com"));
@@ -128,9 +128,9 @@
@Test
public void testSpecIncludeOnlyOverridesContainerDefaultNoInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "*" }, null, null, null), "",
- "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "*" }, null, null, null),
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -139,9 +139,9 @@
@Test
public void testSpecIncludeMultipleOnlyOverridesContainerDefaultNoInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null,
- null), "", "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null, null),
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com"));
@@ -151,9 +151,10 @@
@Test
public void testSpecIncludeMultipleOnlyOverridesContainerDefaultInclude()
throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
- createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null,
- null), ".*", "test", "0", tags, false);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null, null),
+ new ContentRewriterFeature.DefaultConfig(
+ ".*", "test", "0", TAGS, "false", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com"));
@@ -162,9 +163,10 @@
@Test
public void testSpecExcludeDisallowOverrideIncludeUrls() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- "norewrite", null, null, null), "^http://www.include.com", "def",
- "3600", tags, true);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("norewrite", null, null, null),
+ new ContentRewriterFeature.DefaultConfig(
+ "^http://www.include.com", "def", "3600", TAGS, "true", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -175,24 +177,26 @@
}
@Test
- public void testSpecExcludeDisallowOverrideExcludeUrls() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- null, "abc", null, null), "^http://www.include.com", "def", "3600",
- tags, true);
+ public void testSpecExcludeOverrideExcludeUrls() throws Exception {
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite(null, "abc", null, null),
+ new ContentRewriterFeature.DefaultConfig(
+ "^http://www.include.com", "def", "3600", TAGS, "true", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
assertFalse(defaultRewriterFeature
- .shouldRewriteURL("http://www.include.com/def"));
- assertFalse(defaultRewriterFeature
.shouldRewriteURL("http://www.norewrite.com/abc"));
+ assertTrue(defaultRewriterFeature
+ .shouldRewriteURL("http://www.include.com/def"));
}
@Test
public void testSpecExcludeDisallowOverrideIncludeUrlOS9() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "abc" }, null, null, null),
- "^http://www.include.com", "", "3600", tags, true);
+ new ContentRewriterFeature.DefaultConfig(
+ "^http://www.include.com", "", "3600", TAGS, "true", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -202,9 +206,10 @@
@Test
public void testSpecExcludeDisallowOverrideExcludeUrlOS9() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, new String[] { "def" }, null, null),
- "^http://www.include.com", "", "3600", tags, true);
+ new ContentRewriterFeature.DefaultConfig(
+ "^http://www.include.com", "", "3600", TAGS, "true", "false"));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -216,33 +221,36 @@
@Test
public void testSpecExcludeDisallowOverrideDefaultExpires() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- "test\\.com", "testx", "3000", tags), "", "", "", tags, true);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "3000", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "", TAGS, "true", "false"));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 3000);
}
@Test
public void testSpecExcludeDisallowOverrideExpiresGreater() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- "test\\.com", "testx", "8000", tags), "", "", "3000", tags, true);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "8000", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "3000", TAGS, "true", "false"));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 3000);
}
@Test
public void testSpecExcludeDisallowOverrideExpiresLesser() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- "test\\.com", "testx", "2000", tags), "", "", "3000", tags, true);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "2000", tags),
+ new ContentRewriterFeature.DefaultConfig("", "", "3000", TAGS, "true", "false"));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 2000);
}
@Test
public void testSpecExcludeDisallowOverrideTagsSubset() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- "test\\.com", "testx", "0", Sets.newHashSet("img")),
- "", "", "0", Sets.newHashSet("img", "script"), true);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite("test\\.com", "testx", "0", Sets.newHashSet("img")),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", "img,script", "true", "false"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("img"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("ScripT"));
@@ -250,9 +258,9 @@
@Test
public void testSpecExcludeDisallowOverrideTagsSuperset() throws Exception {
- defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(
- "test\\.com", "testx", "0", Sets.newHashSet("img", "script", "link")),
- "", "", "0", Sets.newHashSet("img", "script"), true);
+ defaultRewriterFeature = new ContentRewriterFeature.Config(
+ createSpecWithRewrite( "test\\.com", "testx", "0", Sets.newHashSet("img", "script", "link")),
+ new ContentRewriterFeature.DefaultConfig("", "", "0", "img,script", "true", "false"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("img"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("ScripT"));
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java Tue Feb 23 03:06:18 2010
@@ -49,18 +49,18 @@
@Before
public void setUp() throws Exception {
super.setUp();
- ContentRewriterFeature overrideFeatureNoOverrideExpires = rewriterFeatureFactory
+ ContentRewriterFeature.Config overrideFeatureNoOverrideExpires = rewriterFeatureFactory
.get(createSpecWithRewrite(".*", ".*exclude.*", null,
HTMLContentRewriter.TAGS));
- ContentRewriterFeatureFactory factoryNoOverrideExpires = mockContentRewriterFeatureFactory(overrideFeatureNoOverrideExpires);
+ ContentRewriterFeature.Factory factoryNoOverrideExpires = mockContentRewriterFeatureFactory(overrideFeatureNoOverrideExpires);
rewriterNoOverrideExpires = new CssRequestRewriter(
factoryNoOverrideExpires, new CajaCssLexerParser(),
new DefaultProxyingLinkRewriterFactory(rewriterUris));
- ContentRewriterFeature overrideFeature =
+ ContentRewriterFeature.Config overrideFeature =
rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*", "3600",
HTMLContentRewriter.TAGS));
- ContentRewriterFeatureFactory factory = mockContentRewriterFeatureFactory(overrideFeature);
+ ContentRewriterFeature.Factory factory = mockContentRewriterFeatureFactory(overrideFeature);
rewriter = new CssRequestRewriter(factory, new CajaCssLexerParser(),
new DefaultProxyingLinkRewriterFactory(rewriterUris));
dummyUri = Uri.parse("http://www.w3c.org");
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java?rev=915152&r1=915151&r2=915152&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java Tue Feb 23 03:06:18 2010
@@ -42,10 +42,10 @@
@Before
public void setUp() throws Exception {
super.setUp();
- ContentRewriterFeature overrideFeatureNoOverrideExpires = rewriterFeatureFactory
+ ContentRewriterFeature.Config overrideFeatureNoOverrideExpires = rewriterFeatureFactory
.get(createSpecWithRewrite(".*", ".*exclude.*", null,
HTMLContentRewriter.TAGS));
- ContentRewriterFeatureFactory factoryNoOverrideExpires = mockContentRewriterFeatureFactory(overrideFeatureNoOverrideExpires);
+ ContentRewriterFeature.Factory factoryNoOverrideExpires = mockContentRewriterFeatureFactory(overrideFeatureNoOverrideExpires);
rewriterNoOverrideExpires = new HTMLContentRewriter(
factoryNoOverrideExpires, new CssRequestRewriter(
@@ -54,10 +54,10 @@
new DefaultConcatLinkRewriterFactory(rewriterUris),
new DefaultProxyingLinkRewriterFactory(rewriterUris));
- ContentRewriterFeature overrideFeature = rewriterFeatureFactory
+ ContentRewriterFeature.Config overrideFeature = rewriterFeatureFactory
.get(createSpecWithRewrite(".*", ".*exclude.*", "3600",
HTMLContentRewriter.TAGS));
- ContentRewriterFeatureFactory factory = mockContentRewriterFeatureFactory(overrideFeature);
+ ContentRewriterFeature.Factory factory = mockContentRewriterFeatureFactory(overrideFeature);
rewriter = new HTMLContentRewriter(factory, new CssRequestRewriter(factory,
new CajaCssLexerParser(), new DefaultProxyingLinkRewriterFactory(