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 2011/05/13 22:13:58 UTC
svn commit: r1102885 - in /shindig/trunk: config/
java/gadgets/src/main/java/org/apache/shindig/gadgets/js/
java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/
java/server/src/main/webapp/WEB-INF/
Author: johnh
Date: Fri May 13 20:13:58 2011
New Revision: 1102885
URL: http://svn.apache.org/viewvc?rev=1102885&view=rev
Log:
Pull host-substitution logic into a Provider model.
In a followup, we should probably remove this in favor of pulling the logic into ContainerConfig.
Modified:
shindig/trunk/config/container.js
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
Modified: shindig/trunk/config/container.js
URL: http://svn.apache.org/viewvc/shindig/trunk/config/container.js?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/config/container.js (original)
+++ shindig/trunk/config/container.js Fri May 13 20:13:58 2011
@@ -103,13 +103,13 @@
//"gadgets.securityTokenKeyFile" : "/path/to/key/file.txt",
// URI for the default shindig test instance.
-//"defaultShindigTestHost": "http://${SERVER_HOST}:${SERVER_PORT}",
-"defaultShindigTestHost":"http://%host%",
+"defaultShindigTestHost": "http://${SERVER_HOST}:${SERVER_PORT}",
+//"defaultShindigTestHost":"http://%host%",
// Authority (host:port without scheme) for the proxy and concat servlets.
-//"defaultShindigProxyConcatAuthority": "${SERVER_HOST}:${SERVER_PORT}",
-"defaultShindigProxyConcatAuthority":"%host%",
+"defaultShindigProxyConcatAuthority": "${SERVER_HOST}:${SERVER_PORT}",
+//"defaultShindigProxyConcatAuthority":"%host%",
// OS 2.0 Gadget DOCTYPE: used in Gadgets with @specificationVersion 2.0 or greater and
// quirksmode on Gadget has not been set.
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java Fri May 13 20:13:58 2011
@@ -40,7 +40,6 @@ public class DefaultJsProcessorRegistry
this.requiredProcessors = requiredProcessors;
}
- @Override
public void process(JsRequest request, JsResponseBuilder response) throws JsException {
for (JsProcessor processor : optionalProcessors) {
if (!processor.process(request, response)) {
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java Fri May 13 20:13:58 2011
@@ -262,6 +262,6 @@ public class JsResponseBuilder {
}
private boolean canAddContent(JsContent jsContent) {
- return !jsContent.get().isEmpty();
+ return jsContent.get().length() > 0;
}
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java Fri May 13 20:13:58 2011
@@ -21,10 +21,10 @@ package org.apache.shindig.gadgets.uri;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.inject.Inject;
+import com.google.inject.Provider;
import com.google.inject.name.Named;
import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.shindig.common.servlet.ServletRequestContext;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
import org.apache.shindig.config.ContainerConfig;
@@ -33,7 +33,6 @@ import org.apache.shindig.gadgets.uri.Ur
// Temporary replacement of javax.annotation.Nullable
import org.apache.shindig.common.Nullable;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -55,6 +54,7 @@ public class DefaultConcatUriManager imp
private final ContainerConfig config;
private final Versioner versioner;
private boolean strictParsing;
+ private Provider<String> hostProvider;
private static int DEFAULT_URL_MAX_LENGTH = 2048;
private int urlMaxLength = DEFAULT_URL_MAX_LENGTH;
private static final float URL_LENGTH_BUFFER_MARGIN = .8f;
@@ -76,6 +76,11 @@ public class DefaultConcatUriManager imp
@Named("org.apache.shindig.gadgets.uri.urlMaxLength") int urlMaxLength) {
this.urlMaxLength = urlMaxLength;
}
+
+ @Inject(optional = true)
+ public void setHostProvider(@Named("shindig.host-provider") Provider<String> hostProvider) {
+ this.hostProvider = hostProvider;
+ }
public int getUrlMaxLength() {
return this.urlMaxLength;
@@ -223,7 +228,9 @@ public class DefaultConcatUriManager imp
throw new RuntimeException(
"Missing required config '" + key + "' for container: " + container);
}
- val = val.replace("%host%", ServletRequestContext.getAuthority());
+ if (hostProvider != null) {
+ val = val.replace("%host%", hostProvider.get());
+ }
return val;
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java Fri May 13 20:13:58 2011
@@ -21,13 +21,13 @@ package org.apache.shindig.gadgets.uri;
import com.google.common.collect.ImmutableList;
import com.google.inject.ImplementedBy;
import com.google.inject.Inject;
+import com.google.inject.Provider;
import com.google.inject.name.Named;
import org.apache.commons.lang.StringUtils;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.auth.SecurityTokenCodec;
import org.apache.shindig.auth.SecurityTokenException;
-import org.apache.shindig.common.servlet.ServletRequestContext;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
import org.apache.shindig.config.ContainerConfig;
@@ -58,6 +58,7 @@ public class DefaultIframeUriManager imp
private boolean ldEnabled = true;
private TemplatingSignal tplSignal = null;
private Versioner versioner = null;
+ private Provider<String> hostProvider;
private final ContainerConfig config;
private final LockedDomainPrefixGenerator ldGen;
@@ -103,6 +104,11 @@ public class DefaultIframeUriManager imp
public void setTemplatingSignal(TemplatingSignal tplSignal) {
this.tplSignal = tplSignal;
}
+
+ @Inject(optional = true)
+ public void setHostProvider(@Named("shindig.host-provider") Provider<String> hostProvider) {
+ this.hostProvider = hostProvider;
+ }
public Uri makeRenderingUri(Gadget gadget) {
UriBuilder uri;
@@ -348,7 +354,9 @@ public class DefaultIframeUriManager imp
throw new RuntimeException("Missing required container config param, key: "
+ key + ", container: " + container);
}
- val = val.replace("%host%", ServletRequestContext.getAuthority());
+ if (hostProvider != null) {
+ val = val.replace("%host%", hostProvider.get());
+ }
return val;
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java Fri May 13 20:13:58 2011
@@ -22,8 +22,9 @@ import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.name.Named;
-import org.apache.shindig.common.servlet.ServletRequestContext;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
import org.apache.shindig.config.ContainerConfig;
@@ -52,12 +53,18 @@ public class DefaultJsUriManager impleme
private final ContainerConfig config;
private final Versioner versioner;
+ private Provider<String> hostProvider;
@Inject
public DefaultJsUriManager(ContainerConfig config, Versioner versioner) {
this.config = config;
this.versioner = versioner;
}
+
+ @Inject(optional = true)
+ public void setHostProvider(@Named("shindig.host-provider") Provider<String> hostProvider) {
+ this.hostProvider = hostProvider;
+ }
public Uri makeExternJsUri(JsUri ctx) {
String container = ctx.getContainer();
@@ -223,7 +230,9 @@ public class DefaultJsUriManager impleme
"' missing config for required param: " + key);
}
}
- ret = ret.replace("%host%", ServletRequestContext.getAuthority());
+ if (hostProvider != null) {
+ ret = ret.replace("%host%", hostProvider.get());
+ }
return ret;
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java Fri May 13 20:13:58 2011
@@ -22,10 +22,10 @@ import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.inject.Inject;
+import com.google.inject.Provider;
import com.google.inject.name.Named;
import org.apache.commons.lang.StringUtils;
-import org.apache.shindig.common.servlet.ServletRequestContext;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
import org.apache.shindig.common.util.Utf8UrlCoder;
@@ -73,6 +73,7 @@ public class DefaultProxyUriManager impl
private final ContainerConfig config;
private final Versioner versioner;
private boolean strictParsing = false;
+ private Provider<String> hostProvider;
@Inject
public DefaultProxyUriManager(ContainerConfig config,
@@ -85,6 +86,11 @@ public class DefaultProxyUriManager impl
public void setUseStrictParsing(@Named("shindig.uri.proxy.use-strict-parsing") boolean useStrict) {
this.strictParsing = useStrict;
}
+
+ @Inject(optional = true)
+ public void setHostProvider(@Named("shindig.host-provider") Provider<String> hostProvider) {
+ this.hostProvider = hostProvider;
+ }
public List<Uri> make(List<ProxyUri> resources, Integer forcedRefresh) {
if (resources.isEmpty()) {
@@ -277,7 +283,9 @@ public class DefaultProxyUriManager impl
throw new RuntimeException("Missing required container config key: " + key + " for " +
"container: " + container);
}
- val = val.replace("%host%", ServletRequestContext.getAuthority());
+ if (hostProvider != null) {
+ val = val.replace("%host%", hostProvider.get());
+ }
return val;
}
}
Modified: shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml?rev=1102885&r1=1102884&r2=1102885&view=diff
==============================================================================
--- shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml (original)
+++ shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml Fri May 13 20:13:58 2011
@@ -59,6 +59,8 @@
<context-param>
<param-name>system.properties</param-name>
<param-value>
+ shindig.host=localhost
+ shindig.port=
aKey=/shindig/gadgets/proxy?container=default&url=
</param-value>
</context-param>