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>