Reviewers: shindig.remailer_gmail.com,


Please review this at http://codereview.appspot.com/1147041/show

Affected files:
  java/gadgets/pom.xml
M java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java M java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java
  pom.xml


Index: java/gadgets/pom.xml
diff --git a/java/gadgets/pom.xml b/java/gadgets/pom.xml
index 43c0a800e4500712cdbd9281637b125dda13e4b6..5fea985da61cd7511a1e0a8fb09d4602522425c1 100644
--- a/java/gadgets/pom.xml
+++ b/java/gadgets/pom.xml
@@ -154,6 +154,10 @@
       <artifactId>guice</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.google.inject.extensions</groupId>
+      <artifactId>guice-multibindings</artifactId>
+    </dependency>
+    <dependency>
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>
Index: java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java diff --git a/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java b/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java index 82ba28a2d4ff3eb4fe8c2c43d99d9a2723bd89a8..66bf12e1a78a957153a090837654800c5c7c38b3 100644 --- a/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java +++ b/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
@@ -89,5 +89,4 @@ public class DefaultGuiceModule extends AbstractModule {
             return t;
         }
     };
-
 }
Index: java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java diff --git a/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java b/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java index 672f0bc92adea04b94f64012ead9a929dd27b8d8..97b5d13bcd14405712756263f096adae4110b1db 100644 --- a/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java +++ b/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java
@@ -21,6 +21,7 @@ package org.apache.shindig.gadgets.templates;
 import com.google.common.collect.ImmutableSet;

 import com.google.inject.AbstractModule;
+import com.google.inject.multibindings.Multibinder;
 import com.google.inject.Provides;
 import com.google.inject.Singleton;

@@ -42,19 +43,14 @@ 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
-
-  @Provides
-  @Singleton
-  protected Set<TagHandler> provideTagHandlers(HtmlTagHandler htmlHandler,
- IfTagHandler ifHandler, RepeatTagHandler repeatHandler, - RenderTagHandler renderHandler, FlashTagHandler flashHandler, - VariableTagHandler variableHandler) {
-    return ImmutableSet.of((TagHandler) htmlHandler, ifHandler,
-        repeatHandler, renderHandler, flashHandler,
-        variableHandler);
+ /* You can add the same construct in your own modules to register your own tag handler.. */
+
+ Multibinder<TagHandler> tagBinder = Multibinder.newSetBinder(binder(), TagHandler.class);
+    tagBinder.addBinding().to(HtmlTagHandler.class);
+    tagBinder.addBinding().to(IfTagHandler.class);
+    tagBinder.addBinding().to(RepeatTagHandler.class);
+    tagBinder.addBinding().to(FlashTagHandler.class);
+    tagBinder.addBinding().to(VariableTagHandler.class);
   }
 }
Index: pom.xml
diff --git a/pom.xml b/pom.xml
index 5fc2407008fd9f0ef46a6d77d6700dc06596c891..93a8b24f78bee8cba9c0698f0b43639f17c1b94b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1357,6 +1357,12 @@
       </dependency>

       <dependency>
+        <groupId>com.google.inject.extensions</groupId>
+        <artifactId>guice-multibindings</artifactId>
+        <version>2.0</version>
+      </dependency>
+
+      <dependency>
         <groupId>com.google.collections</groupId>
         <artifactId>google-collections</artifactId>
         <version>1.0</version>


Reply via email to