Author: limpbizkit
Date: Thu Jun  4 09:05:55 2009
New Revision: 995

Modified:
    trunk/servlet/src/com/google/inject/servlet/InternalServletModule.java

Log:
Changes from Isaac Shum that change the bindings for ServletRequest and  
ServletResponse to be chained to their HTTP counterparts rather than to be  
both bound directly to the same provider.

Also changing those bindings to be scoped appropriately.

And finally, changing much of servlet module to leverage provider methods.  
This cleanup is cosmetic.

Modified:  
trunk/servlet/src/com/google/inject/servlet/InternalServletModule.java
==============================================================================
--- trunk/servlet/src/com/google/inject/servlet/InternalServletModule.java      
 
(original)
+++ trunk/servlet/src/com/google/inject/servlet/InternalServletModule.java      
 
Thu Jun  4 09:05:55 2009
@@ -1,17 +1,16 @@
  package com.google.inject.servlet;

  import com.google.inject.AbstractModule;
-import com.google.inject.Provider;
-import com.google.inject.TypeLiteral;
+import com.google.inject.Provides;
  import static com.google.inject.servlet.ServletScopes.REQUEST;
  import static com.google.inject.servlet.ServletScopes.SESSION;
+import java.util.Map;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.ServletContext;
-import java.util.Map;

  /**
   * This is a left-factoring of all ServletModules installed in the system.
@@ -24,73 +23,10 @@

    @Override
    protected void configure() {
-    // Scopes.
      bindScope(RequestScoped.class, REQUEST);
      bindScope(SessionScoped.class, SESSION);
-
-    // Bind request.
-    Provider<HttpServletRequest> requestProvider =
-        new Provider<HttpServletRequest>() {
-          public HttpServletRequest get() {
-            return GuiceFilter.getRequest();
-          }
-
-          public String toString() {
-            return "RequestProvider";
-          }
-        };
-    bind(HttpServletRequest.class).toProvider(requestProvider);
-    bind(ServletRequest.class).toProvider(requestProvider);
-
-    // Bind response.
-    Provider<HttpServletResponse> responseProvider =
-        new Provider<HttpServletResponse>() {
-          public HttpServletResponse get() {
-            return GuiceFilter.getResponse();
-          }
-
-          public String toString() {
-            return "ResponseProvider";
-          }
-        };
-    bind(HttpServletResponse.class).toProvider(responseProvider);
-    bind(ServletResponse.class).toProvider(responseProvider);
-
-    // Bind session.
-    bind(HttpSession.class).toProvider(new Provider<HttpSession>() {
-      public HttpSession get() {
-        return GuiceFilter.getRequest().getSession();
-      }
-
-      public String toString() {
-        return "SessionProvider";
-      }
-    });
-
-    // Bind servlet context.
-    bind(ServletContext.class).toProvider(new Provider<ServletContext>() {
-      public ServletContext get() {
-        return GuiceFilter.getServletContext();
-      }
-
-      public String toString() {
-        return "ServletContextProvider";
-      }
-    });
-
-    // Bind request parameters.
-    bind(new TypeLiteral<Map<String, String[]>>() {})
-        .annotatedWith(RequestParameters.class)
-        .toProvider(new Provider<Map<String, String[]>>() {
-              @SuppressWarnings({"unchecked"})
-              public Map<String, String[]> get() {
-                return GuiceFilter.getRequest().getParameterMap();
-              }
-
-              public String toString() {
-                return "RequestParametersProvider";
-              }
-            });
+    bind(ServletRequest.class).to(HttpServletRequest.class);
+    bind(ServletResponse.class).to(HttpServletResponse.class);

      // inject the pipeline into GuiceFilter so it can route requests  
correctly
      // Unfortunate staticness... =(
@@ -98,6 +34,27 @@

      bind(ManagedServletPipeline.class);
       
bind(FilterPipeline.class).to(ManagedFilterPipeline.class).asEagerSingleton();
+  }
+
+  @Provides @RequestScoped HttpServletRequest provideHttpServletRequest() {
+    return GuiceFilter.getRequest();
+  }
+
+  @Provides @RequestScoped HttpServletResponse  
provideHttpServletResponse() {
+    return GuiceFilter.getResponse();
+  }
+
+  @Provides HttpSession provideHttpSession() {
+    return GuiceFilter.getRequest().getSession();
+  }
+
+  @Provides ServletContext provideServletContext() {
+    return GuiceFilter.getServletContext();
+  }
+
+  @SuppressWarnings({"unchecked"})
+  @Provides @RequestScoped @RequestParameters Map<String, String[]>  
provideRequestParameters() {
+    return GuiceFilter.getRequest().getParameterMap();
    }

    @Override

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to