You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/01/20 13:26:24 UTC
svn commit: r613541 - in
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http:
GadgetRenderingServlet.java JsServlet.java
Author: etnu
Date: Sun Jan 20 04:26:23 2008
New Revision: 613541
URL: http://svn.apache.org/viewvc?rev=613541&view=rev
Log:
Small patch to improve configurability of core servlets. JsServlet can now have a GagdetFeatureRegistry injected, and GadgetRenderingServlet now takes an entire GadgetServer instance rather than individual components. These changes make writing filters or using custom servlet containers more efficient.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderingServlet.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderingServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderingServlet.java?rev=613541&r1=613540&r2=613541&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderingServlet.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderingServlet.java Sun Jan 20 04:26:23 2008
@@ -17,7 +17,6 @@
import org.apache.shindig.gadgets.BasicRemoteContentFetcher;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetContentFilter;
-import org.apache.shindig.gadgets.GadgetDataCache;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.GadgetFeatureRegistry;
import org.apache.shindig.gadgets.GadgetServer;
@@ -26,7 +25,6 @@
import org.apache.shindig.gadgets.JsLibrary;
import org.apache.shindig.gadgets.MessageBundle;
import org.apache.shindig.gadgets.ProcessingOptions;
-import org.apache.shindig.gadgets.RemoteContentFetcher;
import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.UserPrefs;
@@ -41,7 +39,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import javax.servlet.ServletConfig;
@@ -56,6 +53,7 @@
public class GadgetRenderingServlet extends HttpServlet {
private GadgetServer gadgetServer;
private String jsServicePath;
+ private boolean usingCustomServer = false;
private GadgetFeatureRegistry registry;
private static final String CAJA_PARAM = "caja";
private static final String USERPREF_PARAM_PREFIX = "up_";
@@ -68,46 +66,42 @@
* caches, etc.
*/
public GadgetRenderingServlet() {
- this(Executors.newCachedThreadPool(),
- new BasicGadgetDataCache<MessageBundle>(),
- new BasicGadgetDataCache<GadgetSpec>(),
- new BasicRemoteContentFetcher(1024 * 1024));
+ gadgetServer = new GadgetServer(Executors.newCachedThreadPool());
+ gadgetServer.setMessageBundleCache(
+ new BasicGadgetDataCache<MessageBundle>());
+ gadgetServer.setSpecCache(new BasicGadgetDataCache<GadgetSpec>());
+ gadgetServer.setContentFetcher(new BasicRemoteContentFetcher(1024 * 1024));
+ }
+
+ /**
+ * Creates a servlet using a pre-configured server. Using this method
+ * will cause init to ignore feature loading parameters.
+ * @param server
+ */
+ public GadgetRenderingServlet(GadgetServer server) {
+ gadgetServer = server;
+ usingCustomServer = true;
}
@Override
@SuppressWarnings("unchecked")
public void init(ServletConfig config) {
ServletContext context = config.getServletContext();
- String features = context.getInitParameter("features");
String jsPath = context.getInitParameter("js-service-path");
if (jsPath == null) {
jsPath = DEFAULT_JS_SERVICE_PATH;
}
jsServicePath = jsPath;
- try {
- registry = new GadgetFeatureRegistry(features);
- gadgetServer.setGadgetFeatureRegistry(registry);
- } catch (GadgetException e) {
- e.printStackTrace();
- System.exit(1);
+ if (!usingCustomServer) {
+ String features = context.getInitParameter("features");
+ try {
+ registry = new GadgetFeatureRegistry(features);
+ gadgetServer.setGadgetFeatureRegistry(registry);
+ } catch (GadgetException e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
}
- }
-
- /**
- * A la carte rendering server creation.
- * @param executor
- * @param mbCache
- * @param specCache
- * @param fetcher
- */
- public GadgetRenderingServlet(Executor executor,
- GadgetDataCache<MessageBundle> mbCache,
- GadgetDataCache<GadgetSpec> specCache,
- RemoteContentFetcher fetcher) {
- gadgetServer = new GadgetServer(executor);
- gadgetServer.setMessageBundleCache(mbCache);
- gadgetServer.setSpecCache(specCache);
- gadgetServer.setContentFetcher(fetcher);
}
@Override
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java?rev=613541&r1=613540&r2=613541&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java Sun Jan 20 04:26:23 2008
@@ -36,18 +36,36 @@
* Used by type=URL gadgets in loading JavaScript resources.
*/
public class JsServlet extends HttpServlet {
- private GadgetFeatureRegistry registry;
+ private GadgetFeatureRegistry registry = null;
+
+ /**
+ * Create a JsServlet using a pre-configured feature registry.
+ * @param registry
+ */
+ public JsServlet(GadgetFeatureRegistry registry) {
+ this.registry = registry;
+ }
+
+ /**
+ * Creates a JsServlet without a default registry; the registry will be
+ * created automatically when init is called.
+ */
+ public JsServlet() {
+ registry = null;
+ }
@Override
public void init(ServletConfig config) {
ServletContext context = config.getServletContext();
- String features = context.getInitParameter("features");
- String jsPath = context.getInitParameter("js-service-path");
- try {
- registry = new GadgetFeatureRegistry(features);
- } catch (GadgetException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
+
+ if (registry == null) {
+ String features = context.getInitParameter("features");
+ try {
+ registry = new GadgetFeatureRegistry(features);
+ } catch (GadgetException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ }
}
}