Author: zhoresh
Date: Tue Nov  9 00:23:35 2010
New Revision: 1032792

URL: http://svn.apache.org/viewvc?rev=1032792&view=rev
Log:
Ref http://codereview.appspot.com/2996041/
Use list binding for gadget rewriters

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/GadgetRewritersProvider.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/RewriteModule.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/GadgetRewritersProvider.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/GadgetRewritersProvider.java?rev=1032792&r1=1032791&r2=1032792&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/GadgetRewritersProvider.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/GadgetRewritersProvider.java
 Tue Nov  9 00:23:35 2010
@@ -19,7 +19,7 @@
 
 package org.apache.shindig.gadgets.render;
 
-import java.util.Set;
+import java.util.List;
 
 import org.apache.shindig.gadgets.GadgetContext;
 import org.apache.shindig.gadgets.rewrite.GadgetRewriter;
@@ -34,14 +34,15 @@ import com.google.inject.name.Named;
  * @since 2.0.0
  */
 public class GadgetRewritersProvider {
-  private final Set<GadgetRewriter> renderRewriters;
+  private final List<GadgetRewriter> renderRewriters;
 
   @Inject
-  public GadgetRewritersProvider(@Named("shindig.rewriters.gadget") 
Set<GadgetRewriter> renderRewriters) {
+  public GadgetRewritersProvider(
+      @Named("shindig.rewriters.gadget") List<GadgetRewriter> renderRewriters) 
{
     this.renderRewriters = renderRewriters;
   }
 
-  public Set<GadgetRewriter> getRewriters(GadgetContext context) {
+  public List<GadgetRewriter> getRewriters(GadgetContext context) {
     return renderRewriters;
   }
 }

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=1032792&r1=1032791&r2=1032792&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
 Tue Nov  9 00:23:35 2010
@@ -19,6 +19,7 @@
 package org.apache.shindig.gadgets.rewrite;
 
 import java.util.List;
+import java.util.Set;
 
 import org.apache.shindig.gadgets.parse.GadgetHtmlParser;
 import org.apache.shindig.gadgets.render.CajaResponseRewriter;
@@ -47,13 +48,14 @@ public class RewriteModule extends Abstr
     bind(ResponseRewriterRegistry.class)
         
.annotatedWith(Names.named("shindig.accelerate.response.rewriter.registry"))
         .to(AccelResponseRewriterRegistry.class);
-    
+
     configureRewriters();
 
   }
 
   private void configureRewriters() {
-    Multibinder<GadgetRewriter> multibinder = 
Multibinder.newSetBinder(binder(), GadgetRewriter.class, 
Names.named("shindig.rewriters.gadget"));       
+    Multibinder<GadgetRewriter> multibinder = 
Multibinder.newSetBinder(binder(),
+        GadgetRewriter.class, Names.named("shindig.rewriters.gadget.set"));
     multibinder.addBinding().to(PipelineDataGadgetRewriter.class);
     multibinder.addBinding().to(TemplateRewriter.class);
     multibinder.addBinding().to(AbsolutePathReferenceRewriter.class);
@@ -68,13 +70,22 @@ public class RewriteModule extends Abstr
 
   @Provides
   @Singleton
+  @Named("shindig.rewriters.gadget")
+  protected List<GadgetRewriter> provideGadgetRewriters(
+      @Named("shindig.rewriters.gadget.set") Set<GadgetRewriter> 
gadgetRewritersSet) {
+    // Multibinding promise order within a binding module
+    return ImmutableList.copyOf(gadgetRewritersSet);
+  }
+
+  @Provides
+  @Singleton
   @Named("shindig.rewriters.accelerate")
   protected List<GadgetRewriter> provideAccelRewriters(
       ProxyingContentRewriter proxyingContentRewriter,
       CajaContentRewriter cajaRewriter) {
     return ImmutableList.of(proxyingContentRewriter, cajaRewriter);
   }
-  
+
   // TODO: Clean this up. Ideally we would let the ResponseRewriterRegistry
   // binding create the concrete object instance.
   @Provides


Reply via email to