You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/04/29 11:16:21 UTC
svn commit: r939239 -
/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
Author: lindner
Date: Thu Apr 29 09:16:19 2010
New Revision: 939239
URL: http://svn.apache.org/viewvc?rev=939239&view=rev
Log:
inject gadgets.config() code from container.js into container jsservlet output
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java?rev=939239&r1=939238&r2=939239&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java Thu Apr 29 09:16:19 2010
@@ -19,7 +19,9 @@ package org.apache.shindig.gadgets.servl
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Maps;
import org.apache.commons.lang.StringUtils;
+import org.apache.shindig.common.JsonSerializer;
import org.apache.shindig.common.servlet.HttpUtil;
import org.apache.shindig.common.servlet.InjectedServlet;
import org.apache.shindig.config.ContainerConfig;
@@ -34,6 +36,7 @@ import com.google.inject.Inject;
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
@@ -57,6 +60,12 @@ public class JsServlet extends InjectedS
this.urlGenerator = urlGenerator;
}
+ private ContainerConfig containerConfig;
+ @Inject
+ public void setContainerConfig(ContainerConfig containerConfig) {
+ this.containerConfig = containerConfig;
+ }
+
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
@@ -105,8 +114,8 @@ public class JsServlet extends InjectedS
return container;
}
};
- Collection<? extends FeatureResource> resources =
- registry.getFeatureResources(ctx, needed, null);
+
+ Collection<? extends FeatureResource> resources = registry.getFeatureResources(ctx, needed, null);
StringBuilder jsData = new StringBuilder();
boolean isProxyCacheable = true;
for (FeatureResource featureResource : resources) {
@@ -121,7 +130,24 @@ public class JsServlet extends InjectedS
jsData.append(";\n");
}
+ if (context == RenderingContext.CONTAINER) {
+ // Append some container specific things
+ Map<String, Object> features = containerConfig.getMap(ctx.getContainer(), "gadgets.features");
+ Map<String, Object> config = Maps.newHashMapWithExpectedSize(features == null ? 2 : features.size() + 2);
+
+ if (features != null) {
+ // Discard what we don't care about.
+ for (String name : needed) {
+ Object conf = features.get(name);
+ if (conf != null) {
+ config.put(name, conf);
+ }
+ }
+ jsData.append("gadgets.config.init(").append(JsonSerializer.serialize(config)).append(");\n");
+ }
+ }
+
if (jsData.length() == 0) {
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;