Author: lindner
Date: Thu Apr 29 22:18:17 2010
New Revision: 939496

URL: http://svn.apache.org/viewvc?rev=939496&view=rev
Log:
Use guice 2.0 features to clean up guice modules

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.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/old/SanitizingGadgetRewriter.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AuthenticationModule.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java?rev=939496&r1=939495&r2=939496&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
 Thu Apr 29 22:18:17 2010
@@ -18,6 +18,13 @@
  */
 package org.apache.shindig.gadgets;
 
+import com.google.common.collect.ImmutableSet;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
 import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.http.InvalidationHandler;
 import org.apache.shindig.gadgets.parse.ParseModule;
@@ -28,11 +35,6 @@ import org.apache.shindig.gadgets.servle
 import org.apache.shindig.gadgets.templates.TemplateModule;
 import org.apache.shindig.gadgets.uri.UriModule;
 
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.AbstractModule;
-import com.google.inject.TypeLiteral;
-import com.google.inject.name.Names;
-
 import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
@@ -64,18 +66,21 @@ public class DefaultGuiceModule extends 
     install(new TemplateModule());
     install(new UriModule());
 
-    // Handlers for /gadgets/rpc
-    bind(new TypeLiteral<Set<Object>>(){}).annotatedWith(
-        Names.named("org.apache.shindig.gadgets.handlers"))
-        .toInstance(ImmutableSet.<Object>of(InvalidationHandler.class, 
HttpRequestHandler.class));
     // 
bind(Long.class).annotatedWith(Names.named("org.apache.shindig.serviceExpirationDurationMinutes")).toInstance(60l);
 
-
     // We perform static injection on HttpResponse for cache TTLs.
     requestStaticInjection(HttpResponse.class);
   }
 
 
+  @Provides
+  @Singleton
+  @Named("org.apache.shindig.gadgets.handlers")
+  protected Set<Object> getGadgetHandlers() {
+    return ImmutableSet.<Object>of(InvalidationHandler.class, 
HttpRequestHandler.class);
+  }
+
+
   public static final ThreadFactory DAEMON_THREAD_FACTORY =
     new ThreadFactory() {
         public Thread newThread(Runnable r) {

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java?rev=939496&r1=939495&r2=939496&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderModule.java
 Thu Apr 29 22:18:17 2010
@@ -18,11 +18,13 @@
  */
 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;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+
+import java.util.Set;
 
 /**
  * Guice bindings for the render package.
@@ -30,35 +32,46 @@ import com.google.inject.TypeLiteral;
 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.
-    Set<String> allowedTags = ImmutableSet.of("a", "abbr", "acronym", "area", 
"b", "bdo", "big", "blockquote",
+  }
+
+  @Provides
+  @Singleton
+  @SanitizingGadgetRewriter.AllowedTags
+  protected Set<String> getAllowedTags() {
+    return 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", "link", "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(org.apache.shindig.gadgets.render.old.SanitizingGadgetRewriter.AllowedTags.class)
-        .toInstance(allowedTags);
-    bind(setLiteral)
-        
.annotatedWith(org.apache.shindig.gadgets.render.SanitizingGadgetRewriter.AllowedTags.class)
-        .toInstance(allowedTags);
+  }
+
+  @Provides
+  @Singleton
+  @org.apache.shindig.gadgets.render.old.SanitizingGadgetRewriter.AllowedTags
+  protected Set<String> getOldAllowedTags() {
+    return getAllowedTags();
+  }
 
-    Set<String> allowedAttributes = ImmutableSet.of("abbr", "align", "alt", 
"axis", "bgcolor", "border",
+  @Provides
+  @Singleton
+  @SanitizingGadgetRewriter.AllowedAttributes
+  protected Set<String> getAllowedAttributes() {
+    return 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");
-    bind(setLiteral)
-        
.annotatedWith(org.apache.shindig.gadgets.render.old.SanitizingGadgetRewriter.AllowedAttributes.class)
-        .toInstance(allowedAttributes);
-    bind(setLiteral)
-        
.annotatedWith(org.apache.shindig.gadgets.render.SanitizingGadgetRewriter.AllowedAttributes.class)
-        .toInstance(allowedAttributes);
   }
-}
+
+  @Provides
+  @Singleton
+  
@org.apache.shindig.gadgets.render.old.SanitizingGadgetRewriter.AllowedAttributes
+  protected Set<String> getOldAllowedAttributes() {
+    return getAllowedAttributes();
+  }
+}
\ No newline at end of file

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=939496&r1=939495&r2=939496&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
 Thu Apr 29 22:18:17 2010
@@ -388,12 +388,12 @@ public class SanitizingGadgetRewriter ex
   }
 
   @Retention(RetentionPolicy.RUNTIME)
-  @Target(ElementType.PARAMETER)
+  @Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
   @BindingAnnotation
   public @interface AllowedTags { }
 
   @Retention(RetentionPolicy.RUNTIME)
-  @Target(ElementType.PARAMETER)
+  @Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
   @BindingAnnotation
   public @interface AllowedAttributes { }
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/old/SanitizingGadgetRewriter.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/old/SanitizingGadgetRewriter.java?rev=939496&r1=939495&r2=939496&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/old/SanitizingGadgetRewriter.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/old/SanitizingGadgetRewriter.java
 Thu Apr 29 22:18:17 2010
@@ -410,12 +410,12 @@ public class SanitizingGadgetRewriter im
   }
 
   @Retention(RetentionPolicy.RUNTIME)
-  @Target(ElementType.PARAMETER)
+  @Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
   @BindingAnnotation
   public @interface AllowedTags { }
 
   @Retention(RetentionPolicy.RUNTIME)
-  @Target(ElementType.PARAMETER)
+  @Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
   @BindingAnnotation
   public @interface AllowedAttributes { }
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java?rev=939496&r1=939495&r2=939496&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java
 Thu Apr 29 22:18:17 2010
@@ -18,6 +18,13 @@
  */
 package org.apache.shindig.gadgets.rewrite;
 
+import com.google.common.collect.ImmutableList;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
 import org.apache.shindig.gadgets.render.OpenSocialI18NGadgetRewriter;
 import org.apache.shindig.gadgets.render.RenderingGadgetRewriter;
 import org.apache.shindig.gadgets.render.old.SanitizingGadgetRewriter;
@@ -28,13 +35,6 @@ import org.apache.shindig.gadgets.servle
 
 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;
-import com.google.inject.name.Names;
-
 /**
  * Guice bindings for the rewrite package.
  */
@@ -42,74 +42,38 @@ public class RewriteModule extends Abstr
 
   @Override
   protected void configure() {
-    bind(new TypeLiteral<List<GadgetRewriter>>(){})
-        .annotatedWith(Names.named("shindig.rewriters.gadget"))
-        .toProvider(GadgetRewritersProvider.class);
-    bind(new TypeLiteral<List<GadgetRewriter>>(){})
-        .annotatedWith(Names.named("shindig.rewriters.accelerate"))
-        .toProvider(AccelRewritersProvider.class);
-    bind(new 
TypeLiteral<List<RequestRewriter>>(){}).toProvider(RequestRewritersProvider.class);
   }
 
-  public static class GadgetRewritersProvider implements 
Provider<List<GadgetRewriter>> {
-    private final List<GadgetRewriter> rewriters;
-
-    @Inject
-    public GadgetRewritersProvider(PipelineDataGadgetRewriter pipelineRewriter,
-        TemplateRewriter templateRewriter,
-        HTMLContentRewriter optimizingRewriter,
-        CssRequestRewriter cssRewriter,
-        CajaContentRewriter cajaRewriter,
-        SanitizingGadgetRewriter sanitizedRewriter,
-        RenderingGadgetRewriter renderingRewriter,
-        OpenSocialI18NGadgetRewriter i18nRewriter) {
-      rewriters = Lists.newArrayList();
-      rewriters.add(pipelineRewriter);
-      rewriters.add(templateRewriter);
-      rewriters.add(optimizingRewriter);
-      rewriters.add(cajaRewriter);
-      rewriters.add(sanitizedRewriter);
-      rewriters.add(renderingRewriter);
-      rewriters.add(i18nRewriter);
-    }
-
-    public List<GadgetRewriter> get() {
-      return rewriters;
-    }
+  @Provides
+  @Singleton
+  @Named("shindig.rewriters.gadget")
+  protected List<GadgetRewriter> getGadgetRewriters(
+      PipelineDataGadgetRewriter pipelineRewriter,
+      TemplateRewriter templateRewriter,
+      HTMLContentRewriter optimizingRewriter,
+      CssRequestRewriter cssRewriter,
+      CajaContentRewriter cajaRewriter,
+      SanitizingGadgetRewriter sanitizedRewriter,
+      RenderingGadgetRewriter renderingRewriter,
+      OpenSocialI18NGadgetRewriter i18nRewriter) {
+    return ImmutableList.of(pipelineRewriter, templateRewriter, 
optimizingRewriter, cajaRewriter, sanitizedRewriter, renderingRewriter, 
i18nRewriter);
   }
 
-  public static class AccelRewritersProvider implements 
Provider<List<GadgetRewriter>> {
-    private final List<GadgetRewriter> rewriters;
-
-    @Inject
-    public AccelRewritersProvider(
-        HTMLContentRewriter optimizingRewriter,
-        CajaContentRewriter cajaRewriter) {
-      rewriters = Lists.newArrayList();
-      rewriters.add(optimizingRewriter);
-      rewriters.add(cajaRewriter);
-    }
-
-    public List<GadgetRewriter> get() {
-      return rewriters;
-    }
+  @Provides
+  @Singleton
+  @Named("shindig.rewriters.accelerate")
+  protected List<GadgetRewriter> getAccelRewriters(
+      HTMLContentRewriter optimizingRewriter,
+      CajaContentRewriter cajaRewriter) {
+    return ImmutableList.of(optimizingRewriter, cajaRewriter);
   }
 
-  public static class RequestRewritersProvider implements 
Provider<List<RequestRewriter>> {
-    private final List<RequestRewriter> rewriters;
-
-    @Inject
-    public RequestRewritersProvider(HTMLContentRewriter optimizingRewriter,
-        CssRequestRewriter cssRewriter,
-        SanitizingRequestRewriter sanitizedRewriter) {
-      rewriters = Lists.newArrayList();
-      rewriters.add(optimizingRewriter);
-      rewriters.add(cssRewriter);
-      rewriters.add(sanitizedRewriter);
-    }
-
-    public List<RequestRewriter> get() {
-      return rewriters;
-    }
+  @Provides
+  @Singleton
+  protected List<RequestRewriter> getRequestRewriters(
+      HTMLContentRewriter optimizingRewriter,
+      CssRequestRewriter cssRewriter,
+      SanitizingRequestRewriter sanitizedRewriter) {
+    return ImmutableList.of(optimizingRewriter, cssRewriter, 
sanitizedRewriter);
   }
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AuthenticationModule.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AuthenticationModule.java?rev=939496&r1=939495&r2=939496&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AuthenticationModule.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AuthenticationModule.java
 Thu Apr 29 22:18:17 2010
@@ -18,16 +18,16 @@
  */
 package org.apache.shindig.gadgets.servlet;
 
+import com.google.common.collect.ImmutableList;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+
 import org.apache.shindig.auth.AnonymousAuthenticationHandler;
 import org.apache.shindig.auth.AuthenticationHandler;
 import org.apache.shindig.auth.UrlParameterAuthenticationHandler;
 
-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;
 
 /**
@@ -35,25 +35,14 @@ import java.util.List;
  * renderer.
  */
 public class AuthenticationModule extends AbstractModule {
-
-  /** {...@inheritdoc} */
   @Override
   protected void configure() {
-    bind(new 
TypeLiteral<List<AuthenticationHandler>>(){}).toProvider(AuthProvider.class);
   }
 
-  private static class AuthProvider implements 
Provider<List<AuthenticationHandler>> {
-    private final List<AuthenticationHandler> handlers;
-
-    @Inject
-    public AuthProvider(UrlParameterAuthenticationHandler 
urlParameterAuthHandler,
-                        AnonymousAuthenticationHandler anonymoustAuthHandler) {
-      handlers = Lists.newArrayList(urlParameterAuthHandler, 
anonymoustAuthHandler);
-    }
-
-    public List<AuthenticationHandler> get() {
-      return handlers;
-    }
+  @Provides
+  @Singleton
+  List<AuthenticationHandler> 
getAuthenticationHandlers(UrlParameterAuthenticationHandler 
urlParameterAuthHandler,
+                                                        
AnonymousAuthenticationHandler anonymoustAuthHandler) {
+      return ImmutableList.of(urlParameterAuthHandler, anonymoustAuthHandler);
   }
-
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java?rev=939496&r1=939495&r2=939496&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java
 Thu Apr 29 22:18:17 2010
@@ -18,6 +18,12 @@
  */
 package org.apache.shindig.gadgets.templates;
 
+import com.google.common.collect.ImmutableSet;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+
 import org.apache.shindig.gadgets.templates.tags.FlashTagHandler;
 import org.apache.shindig.gadgets.templates.tags.HtmlTagHandler;
 import org.apache.shindig.gadgets.templates.tags.IfTagHandler;
@@ -26,43 +32,29 @@ import org.apache.shindig.gadgets.templa
 import org.apache.shindig.gadgets.templates.tags.TagHandler;
 import org.apache.shindig.gadgets.templates.tags.VariableTagHandler;
 
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.TypeLiteral;
-
 import java.util.Set;
 
 /**
- * Guice Module to provide Template-specific classes 
+ * Guice Module to provide Template-specific classes
  */
 public class TemplateModule extends AbstractModule {
 
   @Override
   protected void configure() {
     bind(TemplateProcessor.class).to(DefaultTemplateProcessor.class);
-    // TODO: switch to Guice multibindings when that JAR becomes available
-    // in a Maven repository
-    bind(new 
TypeLiteral<Set<TagHandler>>(){}).toProvider(TagHandlersProvider.class); 
   }
-   
-  public static class TagHandlersProvider implements Provider<Set<TagHandler>> 
{
-    
-    private final Set<TagHandler> handlers;
-    
-    @Inject
-    public TagHandlersProvider(HtmlTagHandler htmlHandler, 
-        IfTagHandler ifHandler, RepeatTagHandler repeatHandler, 
-        RenderTagHandler renderHandler, FlashTagHandler flashHandler,
-        VariableTagHandler variableHandler) {
-      handlers = ImmutableSet.of((TagHandler) htmlHandler, ifHandler,
-          repeatHandler, renderHandler, flashHandler,
-          variableHandler);
-    }
-    
-    public Set<TagHandler> get() {
-      return handlers;
-    }
+
+  // TODO: switch to Guice multibindings when that JAR becomes available
+  // in a Maven repository
+
+  @Provides
+  @Singleton
+  protected Set<TagHandler> getTagHandlers(HtmlTagHandler htmlHandler,
+                                           IfTagHandler ifHandler, 
RepeatTagHandler repeatHandler,
+                                           RenderTagHandler renderHandler, 
FlashTagHandler flashHandler,
+                                           VariableTagHandler variableHandler) 
{
+    return ImmutableSet.of((TagHandler) htmlHandler, ifHandler,
+        repeatHandler, renderHandler, flashHandler,
+        variableHandler);
   }
 }


Reply via email to