Reviewers: bobv, google-web-toolkit-contributors_googlegroups.com,

Description:
Adds a ThreadLocal<ServletContext> which will make it easier to
facilitate getting beans from Spring.

Please review this at http://gwt-code-reviews.appspot.com/1448804/

Affected files:
user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java


Index: user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java
===================================================================
--- user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java (revision 10204) +++ user/src/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.java (working copy)
@@ -23,6 +23,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;

+import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -45,6 +46,7 @@
    */
private static final ThreadLocal<HttpServletRequest> perThreadRequest = new ThreadLocal<HttpServletRequest>(); private static final ThreadLocal<HttpServletResponse> perThreadResponse = new ThreadLocal<HttpServletResponse>(); + private static final ThreadLocal<ServletContext> perThreadContext = new ThreadLocal<ServletContext>();

   /**
    * Returns the thread-local {@link HttpServletRequest}.
@@ -64,6 +66,15 @@
     return perThreadResponse.get();
   }

+  /**
+   * Returns the thread-local {@link ServletContext}
+   *
+   * @return the {@link ServletContext} associated with this servlet
+   */
+  public static ServletContext getThreadLocalServletContext() {
+    return perThreadContext.get();
+  }
+
   private final SimpleRequestProcessor processor;

   /**
@@ -104,6 +115,7 @@

     perThreadRequest.set(request);
     perThreadResponse.set(response);
+    perThreadContext.set(getServletContext());

     // No new code should be placed outside of this try block.
     try {
@@ -132,6 +144,7 @@
     } finally {
       perThreadRequest.set(null);
       perThreadResponse.set(null);
+      perThreadContext.set(null);
     }
   }



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to