Author: awiner
Date: Wed Mar  4 01:50:33 2009
New Revision: 749876

URL: http://svn.apache.org/viewvc?rev=749876&view=rev
Log:
Factor out DefaultGuiceModule into per-package modules for easier composition

Added:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PreloadModule.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java?rev=749876&r1=749875&r2=749876&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
 Wed Mar  4 01:50:33 2009
@@ -20,31 +20,18 @@
 
 import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.parse.ParseModule;
-import org.apache.shindig.gadgets.preload.HttpPreloader;
-import org.apache.shindig.gadgets.preload.PipelinedDataPreloader;
-import org.apache.shindig.gadgets.preload.Preloader;
-import org.apache.shindig.gadgets.render.RenderingContentRewriter;
-import org.apache.shindig.gadgets.render.SanitizedRenderingContentRewriter;
-import org.apache.shindig.gadgets.rewrite.CSSContentRewriter;
-import org.apache.shindig.gadgets.rewrite.ContentRewriter;
-import org.apache.shindig.gadgets.rewrite.HTMLContentRewriter;
-import org.apache.shindig.gadgets.servlet.CajaContentRewriter;
+import org.apache.shindig.gadgets.preload.PreloadModule;
+import org.apache.shindig.gadgets.render.RenderModule;
+import org.apache.shindig.gadgets.rewrite.RewriteModule;
 
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.TypeLiteral;
-
-import java.util.List;
-import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
+import com.google.inject.AbstractModule;
+
 /**
- * Creates a module to supply all of the Basic* classes
+ * Creates a module to supply all of the core gadget classes.
  */
 public class DefaultGuiceModule extends AbstractModule {
 
@@ -56,70 +43,12 @@
     bind(Executor.class).toInstance(service);
     bind(ExecutorService.class).toInstance(service);
 
-    this.install(new ParseModule());
-
-    bind(new 
TypeLiteral<List<ContentRewriter>>(){}).toProvider(ContentRewritersProvider.class);
-    bind(new 
TypeLiteral<List<Preloader>>(){}).toProvider(PreloaderProvider.class);
-
-    TypeLiteral<Set<String>> setLiteral = new TypeLiteral<Set<String>>(){};
-
-    // NOTE: Sanitization only works when using the "full" Neko HTML parser. 
It is not recommended
-    // that you attempt to use sanitization without it.
-    bind(setLiteral)
-        .annotatedWith(SanitizedRenderingContentRewriter.AllowedTags.class)
-        .toInstance(ImmutableSet.of("a", "abbr", "acronym", "area", "b", 
"bdo", "big", "blockquote",
-            "body", "br", "caption", "center", "cite", "code", "col", 
"colgroup", "dd", "del",
-            "dfn", "div", "dl", "dt", "em", "font", "h1", "h2", "h3", "h4", 
"h5", "h6", "head",
-            "hr", "html", "i", "img", "ins", "legend", "li", "map", "ol", "p", 
"pre", "q", "s",
-            "samp", "small", "span", "strike", "strong", "style", "sub", 
"sup", "table",
-            "tbody", "td", "tfoot", "th", "thead", "tr", "tt", "u", "ul"));
-
-    bind(setLiteral)
-        
.annotatedWith(SanitizedRenderingContentRewriter.AllowedAttributes.class)
-        .toInstance(ImmutableSet.of("abbr", "align", "alt", "axis", "bgcolor", 
"border",
-            "cellpadding", "cellspacing", "char", "charoff", "cite", "class", 
"clear", "color",
-            "cols", "colspan", "compact", "coords", "datetime", "dir", "face", 
"headers", "height",
-            "href", "hreflang", "hspace", "id", "ismap", "lang", "longdesc", 
"name", "nohref",
-            "noshade", "nowrap", "rel", "rev", "rowspan", "rules", "scope", 
"shape", "size", "span",
-            "src", "start", "style", "summary", "title", "type", "usemap", 
"valign", "value",
-            "vspace", "width"));
+    install(new ParseModule());
+    install(new PreloadModule());
+    install(new RenderModule());
+    install(new RewriteModule());
 
     // We perform static injection on HttpResponse for cache TTLs.
     requestStaticInjection(HttpResponse.class);
   }
-
-  private static class ContentRewritersProvider implements 
Provider<List<ContentRewriter>> {
-    private final List<ContentRewriter> rewriters;
-
-    @Inject
-    public ContentRewritersProvider(HTMLContentRewriter optimizingRewriter,
-                                    CSSContentRewriter cssRewriter,
-                                    CajaContentRewriter cajaRewriter,
-                                    SanitizedRenderingContentRewriter 
sanitizedRewriter,
-                                    RenderingContentRewriter 
renderingRewriter) {
-      rewriters = Lists.newArrayList();
-      rewriters.add(optimizingRewriter);
-      rewriters.add(cssRewriter);
-      rewriters.add(cajaRewriter);
-      rewriters.add(sanitizedRewriter);
-      rewriters.add(renderingRewriter);
-    }
-
-    public List<ContentRewriter> get() {
-      return rewriters;
-    }
-  }
-
-  private static class PreloaderProvider implements Provider<List<Preloader>> {
-    private final List<Preloader> preloaders;
-
-    @Inject
-    public PreloaderProvider(HttpPreloader httpPreloader, 
PipelinedDataPreloader socialPreloader) {
-      preloaders = Lists.newArrayList(httpPreloader, socialPreloader);
-    }
-
-    public List<Preloader> get() {
-      return preloaders;
-    }
-  }
 }

Added: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PreloadModule.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PreloadModule.java?rev=749876&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PreloadModule.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PreloadModule.java
 Wed Mar  4 01:50:33 2009
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets.preload;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.TypeLiteral;
+
+/**
+ * Guice bindings for the render package.
+ */
+public class PreloadModule extends AbstractModule {
+  @Override
+  protected void configure() {
+    bind(new 
TypeLiteral<List<Preloader>>(){}).toProvider(PreloaderProvider.class);
+  }
+  
+  private static class PreloaderProvider implements Provider<List<Preloader>> {
+    private final List<Preloader> preloaders;
+
+    @Inject
+    public PreloaderProvider(HttpPreloader httpPreloader, 
PipelinedDataPreloader socialPreloader) {
+      preloaders = Lists.newArrayList(httpPreloader, socialPreloader);
+    }
+
+    public List<Preloader> get() {
+      return preloaders;
+    }
+  }
+}

Added: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java?rev=749876&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
 Wed Mar  4 01:50:33 2009
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets.render;
+
+import java.util.Set;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.inject.AbstractModule;
+import com.google.inject.TypeLiteral;
+
+/**
+ * Guice bindings for the render package.
+ */
+public class RenderModule extends AbstractModule {
+  @Override
+  protected void configure() {
+    TypeLiteral<Set<String>> setLiteral = new TypeLiteral<Set<String>>(){};
+
+    // NOTE: Sanitization only works when using the "full" Neko HTML parser. 
It is not recommended
+    // that you attempt to use sanitization without it.
+    bind(setLiteral)
+        .annotatedWith(SanitizedRenderingContentRewriter.AllowedTags.class)
+        .toInstance(ImmutableSet.of("a", "abbr", "acronym", "area", "b", 
"bdo", "big", "blockquote",
+            "body", "br", "caption", "center", "cite", "code", "col", 
"colgroup", "dd", "del",
+            "dfn", "div", "dl", "dt", "em", "font", "h1", "h2", "h3", "h4", 
"h5", "h6", "head",
+            "hr", "html", "i", "img", "ins", "legend", "li", "map", "ol", "p", 
"pre", "q", "s",
+            "samp", "small", "span", "strike", "strong", "style", "sub", 
"sup", "table",
+            "tbody", "td", "tfoot", "th", "thead", "tr", "tt", "u", "ul"));
+
+    bind(setLiteral)
+        
.annotatedWith(SanitizedRenderingContentRewriter.AllowedAttributes.class)
+        .toInstance(ImmutableSet.of("abbr", "align", "alt", "axis", "bgcolor", 
"border",
+            "cellpadding", "cellspacing", "char", "charoff", "cite", "class", 
"clear", "color",
+            "cols", "colspan", "compact", "coords", "datetime", "dir", "face", 
"headers", "height",
+            "href", "hreflang", "hspace", "id", "ismap", "lang", "longdesc", 
"name", "nohref",
+            "noshade", "nowrap", "rel", "rev", "rowspan", "rules", "scope", 
"shape", "size", "span",
+            "src", "start", "style", "summary", "title", "type", "usemap", 
"valign", "value",
+            "vspace", "width"));
+
+  }
+
+}

Added: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java?rev=749876&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
 Wed Mar  4 01:50:33 2009
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets.rewrite;
+
+import org.apache.shindig.gadgets.render.RenderingContentRewriter;
+import org.apache.shindig.gadgets.render.SanitizedRenderingContentRewriter;
+import org.apache.shindig.gadgets.servlet.CajaContentRewriter;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.TypeLiteral;
+
+/**
+ * Guice bindings for the rewrite package.
+ */
+public class RewriteModule extends AbstractModule {
+
+  @Override
+  protected void configure() {
+    bind(new 
TypeLiteral<List<ContentRewriter>>(){}).toProvider(ContentRewritersProvider.class);
+  }
+
+  private static class ContentRewritersProvider implements 
Provider<List<ContentRewriter>> {
+    private final List<ContentRewriter> rewriters;
+
+    @Inject
+    public ContentRewritersProvider(HTMLContentRewriter optimizingRewriter,
+                                    CSSContentRewriter cssRewriter,
+                                    CajaContentRewriter cajaRewriter,
+                                    SanitizedRenderingContentRewriter 
sanitizedRewriter,
+                                    RenderingContentRewriter 
renderingRewriter) {
+      rewriters = Lists.newArrayList();
+      rewriters.add(optimizingRewriter);
+      rewriters.add(cssRewriter);
+      rewriters.add(cajaRewriter);
+      rewriters.add(sanitizedRewriter);
+      rewriters.add(renderingRewriter);
+    }
+
+    public List<ContentRewriter> get() {
+      return rewriters;
+    }
+  }
+}


Reply via email to