Author: lindner
Date: Fri May  7 17:51:17 2010
New Revision: 942160

URL: http://svn.apache.org/viewvc?rev=942160&view=rev
Log:
use guice-multibindings for TagHandlers, Add new UPGRADING doc file

Added:
    shindig/trunk/UPGRADING
Modified:
    shindig/trunk/java/gadgets/pom.xml
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateModule.java
    shindig/trunk/pom.xml

Added: shindig/trunk/UPGRADING
URL: http://svn.apache.org/viewvc/shindig/trunk/UPGRADING?rev=942160&view=auto
==============================================================================
--- shindig/trunk/UPGRADING (added)
+++ shindig/trunk/UPGRADING Fri May  7 17:51:17 2010
@@ -0,0 +1,34 @@
+FROM 1.0.x TO 1.1.x
+===================
+
+Almost all interfaces have been updated from 1.0.x -> 1.1.x.  The 
+following information is not complete.
+
+
+== Java Interface Changes ==
+
+* SecurityTokenDecoder 
+
+The interface and implementation are replaced
+with the new SecurityTokenCodec interface and implementations.
+
+You will need to adjust any custom SecurityToken decoders to 
+encode tokens as well as decode them.
+
+== Java Guice Changes ==
+
+1.1.x uses Guice 2.0 which allows for @Provides annotations and much more.
+
+* TemplateModule
+
+If you had previously customized the Set of TagHandlers you'll need to start
+using Guice Multibindings instead.  This is much easier than subclassing the
+Guice module.  Here's what you would add to your local module to add a new 
+Tag handler.
+
+  Multibinder.newSetBinder(binder(), 
TagHandler.class).addBinding().to(MyCustomTagHandler.class);
+
+== PHP Changes ==
+
+TBD
+

Modified: shindig/trunk/java/gadgets/pom.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/pom.xml?rev=942160&r1=942159&r2=942160&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/pom.xml (original)
+++ shindig/trunk/java/gadgets/pom.xml Fri May  7 17:51:17 2010
@@ -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>

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=942160&r1=942159&r2=942160&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
 Fri May  7 17:51:17 2010
@@ -89,5 +89,4 @@ public class DefaultGuiceModule extends 
             return t;
         }
     };
-
 }

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=942160&r1=942159&r2=942160&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
 Fri May  7 17:51:17 2010
@@ -23,6 +23,7 @@ import com.google.common.collect.Immutab
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
 
 import org.apache.shindig.gadgets.templates.tags.FlashTagHandler;
 import org.apache.shindig.gadgets.templates.tags.HtmlTagHandler;
@@ -42,19 +43,18 @@ public class TemplateModule extends Abst
   @Override
   protected void configure() {
     bind(TemplateProcessor.class).to(DefaultTemplateProcessor.class);
+    bindTagHandlers();
   }
 
-  // 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);
+  /* No need to subclass. 
+     You can add the same construct in your own modules to register your own 
tag handler.. */
+  protected void bindTagHandlers() {
+    Multibinder<TagHandler> tagBinder = Multibinder.newSetBinder(binder(), 
TagHandler.class);
+    tagBinder.addBinding().to(HtmlTagHandler.class);
+    tagBinder.addBinding().to(IfTagHandler.class);
+    tagBinder.addBinding().to(RenderTagHandler.class);
+    tagBinder.addBinding().to(RepeatTagHandler.class);
+    tagBinder.addBinding().to(FlashTagHandler.class);
+    tagBinder.addBinding().to(VariableTagHandler.class);
   }
 }

Modified: shindig/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/pom.xml?rev=942160&r1=942159&r2=942160&view=diff
==============================================================================
--- shindig/trunk/pom.xml (original)
+++ shindig/trunk/pom.xml Fri May  7 17:51:17 2010
@@ -703,6 +703,7 @@
                 <exclude>php/test/misc/*.xml</exclude>
                 <exclude>BUILD-JAVA</exclude>
                 <exclude>COMMITTERS</exclude>
+                <exclude>UPGRADING</exclude>
                 <exclude>**/MANIFEST.MF</exclude>
                 <exclude>**/src/test/resources/**/*.html</exclude>
                 <exclude>**/src/test/resources/**/*.css</exclude>
@@ -1357,6 +1358,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