Author: rmannibucau
Date: Sun Sep  2 15:52:27 2012
New Revision: 1379998

URL: http://svn.apache.org/viewvc?rev=1379998&view=rev
Log:
TOMEE-409 @Context servletrequest

Added:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletRequest.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletRequest.java
      - copied, changed from r1379985, 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalRequest.java
Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
    
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?rev=1379998&r1=1379997&r2=1379998&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
 Sun Sep  2 15:52:27 2012
@@ -58,6 +58,8 @@ import javax.naming.LinkRef;
 import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.persistence.EntityManagerFactory;
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
 import javax.transaction.TransactionManager;
 import javax.transaction.UserTransaction;
 import javax.validation.Validator;
@@ -284,6 +286,10 @@ public class JndiEncBuilder {
                 reference = new LinkRef("module/" + name);
             } else if (Request.class.equals(type)) {
                 reference = new 
ObjectReference(ThreadLocalContextManager.REQUEST);
+            } else if (HttpServletRequest.class.equals(type)) {
+                reference = new 
ObjectReference(ThreadLocalContextManager.HTTP_SERVLET_REQUEST);
+            } else if (ServletRequest.class.equals(type)) {
+                reference = new 
ObjectReference(ThreadLocalContextManager.SERVLET_REQUEST);
             } else if (UriInfo.class.equals(type)) {
                 reference = new 
ObjectReference(ThreadLocalContextManager.URI_INFO);
             } else if (HttpHeaders.class.equals(type)) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java?rev=1379998&r1=1379997&r2=1379998&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
 Sun Sep  2 15:52:27 2012
@@ -21,6 +21,8 @@ import javax.ws.rs.core.Application;
 
 public class ThreadLocalContextManager {
     public static final ThreadLocalRequest REQUEST = new ThreadLocalRequest();
+    public static final ThreadLocalServletRequest SERVLET_REQUEST = new 
ThreadLocalServletRequest();
+    public static final ThreadLocalHttpServletRequest HTTP_SERVLET_REQUEST = 
new ThreadLocalHttpServletRequest();
     public static final ThreadLocalUriInfo URI_INFO = new ThreadLocalUriInfo();
     public static final ThreadLocalHttpHeaders HTTP_HEADERS = new 
ThreadLocalHttpHeaders();
     public static final ThreadLocalSecurityContext SECURITY_CONTEXT = new 
ThreadLocalSecurityContext();
@@ -30,6 +32,8 @@ public class ThreadLocalContextManager {
 
     public static void reset() {
         REQUEST.remove();
+        SERVLET_REQUEST.remove();
+        HTTP_SERVLET_REQUEST.remove();
         URI_INFO.remove();
         HTTP_HEADERS.remove();
         SECURITY_CONTEXT.remove();

Added: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletRequest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletRequest.java?rev=1379998&view=auto
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletRequest.java
 (added)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletRequest.java
 Sun Sep  2 15:52:27 2012
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.rest;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.Part;
+import java.io.IOException;
+import java.security.Principal;
+import java.util.Collection;
+import java.util.Enumeration;
+
+public class ThreadLocalHttpServletRequest extends ThreadLocalServletRequest
+    implements HttpServletRequest {
+
+    private HttpServletRequest request() {
+        return (HttpServletRequest) super.get();
+    }
+
+    @Override
+    public boolean authenticate(HttpServletResponse httpServletResponse) 
throws IOException, ServletException {
+        return request().authenticate(httpServletResponse);
+    }
+
+    @Override
+    public String getAuthType() {
+        return request().getAuthType();
+    }
+
+    @Override
+    public String getContextPath() {
+        return request().getContextPath();
+    }
+
+    @Override
+    public Cookie[] getCookies() {
+        return request().getCookies();
+    }
+
+    @Override
+    public long getDateHeader(String s) {
+        return request().getDateHeader(s);
+    }
+
+    @Override
+    public String getHeader(String s) {
+        return request().getHeader(s);
+    }
+
+    @Override
+    public Enumeration<String> getHeaderNames() {
+        return request().getHeaderNames();
+    }
+
+    @Override
+    public Enumeration<String> getHeaders(String s) {
+        return request().getHeaders(s);
+    }
+
+    @Override
+    public int getIntHeader(String s) {
+        return request().getIntHeader(s);
+    }
+
+    @Override
+    public String getMethod() {
+        return request().getMethod();
+    }
+
+    @Override
+    public Part getPart(String s) throws IOException, ServletException {
+        return request().getPart(s);
+    }
+
+    @Override
+    public Collection<Part> getParts() throws IOException, ServletException {
+        return request().getParts();
+    }
+
+    @Override
+    public String getPathInfo() {
+        return request().getPathInfo();
+    }
+
+    @Override
+    public String getPathTranslated() {
+        return request().getPathTranslated();
+    }
+
+    @Override
+    public String getQueryString() {
+        return request().getQueryString();
+    }
+
+    @Override
+    public String getRemoteUser() {
+        return request().getRemoteUser();
+    }
+
+    @Override
+    public String getRequestedSessionId() {
+        return request().getRequestedSessionId();
+    }
+
+    @Override
+    public String getRequestURI() {
+        return request().getRequestURI();
+    }
+
+    @Override
+    public StringBuffer getRequestURL() {
+        return request().getRequestURL();
+    }
+
+    @Override
+    public String getServletPath() {
+        return request().getServletPath();
+    }
+
+    @Override
+    public HttpSession getSession() {
+        return request().getSession();
+    }
+
+    @Override
+    public HttpSession getSession(boolean b) {
+        return request().getSession(b);
+    }
+
+    @Override
+    public Principal getUserPrincipal() {
+        return request().getUserPrincipal();
+    }
+
+    @Override
+    public boolean isRequestedSessionIdFromCookie() {
+        return request().isRequestedSessionIdFromCookie();
+    }
+
+    @Override
+    public boolean isRequestedSessionIdFromUrl() {
+        return request().isRequestedSessionIdFromUrl();
+    }
+
+    @Override
+    public boolean isRequestedSessionIdFromURL() {
+        return request().isRequestedSessionIdFromURL();
+    }
+
+    @Override
+    public boolean isRequestedSessionIdValid() {
+        return request().isRequestedSessionIdValid();
+    }
+
+    @Override
+    public boolean isUserInRole(String s) {
+        return request().isUserInRole(s);
+    }
+
+    @Override
+    public void login(String s, String s1) throws ServletException {
+        request().login(s, s1);
+    }
+
+    @Override
+    public void logout() throws ServletException {
+        request().logout();
+    }
+}

Copied: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletRequest.java
 (from r1379985, 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalRequest.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletRequest.java?p2=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletRequest.java&p1=openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalRequest.java&r1=1379985&r2=1379998&rev=1379998&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalRequest.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletRequest.java
 Sun Sep  2 15:52:27 2012
@@ -17,39 +17,201 @@
 
 package org.apache.openejb.rest;
 
-import java.util.Date;
-import java.util.List;
-import javax.ws.rs.core.EntityTag;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Variant;
 import org.apache.openejb.core.ivm.naming.AbstractThreadLocalProxy;
 
-public class ThreadLocalRequest extends AbstractThreadLocalProxy<Request>
-    implements Request {
+import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletInputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
 
-    public ResponseBuilder evaluatePreconditions(EntityTag eTag) {
-        return get().evaluatePreconditions(eTag);
+public class ThreadLocalServletRequest extends 
AbstractThreadLocalProxy<ServletRequest>
+    implements ServletRequest {
+
+    @Override
+    public AsyncContext getAsyncContext() {
+        return get().getAsyncContext();
+    }
+
+    @Override
+    public Object getAttribute(String string) {
+        return get().getAttribute(string);
+    }
+
+    @Override
+    public Enumeration<String> getAttributeNames() {
+        return get().getAttributeNames();
+    }
+
+    @Override
+    public String getCharacterEncoding() {
+        return get().getCharacterEncoding();
+    }
+
+    @Override
+    public int getContentLength() {
+        return get().getContentLength();
+    }
+
+    @Override
+    public String getContentType() {
+        return get().getContentType();
+    }
+
+    @Override
+    public DispatcherType getDispatcherType() {
+        return get().getDispatcherType();
+    }
+
+    @Override
+    public ServletInputStream getInputStream() throws IOException {
+        return get().getInputStream();
+    }
+
+    @Override
+    public String getLocalAddr() {
+        return get().getLocalAddr();
+    }
+
+    @Override
+    public Locale getLocale() {
+        return get().getLocale();
+    }
+
+    @Override
+    public Enumeration<Locale> getLocales() {
+        return get().getLocales();
+    }
+
+    @Override
+    public String getLocalName() {
+        return get().getLocalName();
+    }
+
+    @Override
+    public int getLocalPort() {
+        return get().getLocalPort();
+    }
+
+    @Override
+    public String getParameter(String string) {
+        return get().getParameter(string);
+    }
+
+    @Override
+    public Map<String, String[]> getParameterMap() {
+        return get().getParameterMap();
+    }
+
+    @Override
+    public String[] getParameterValues(String string) {
+        return get().getParameterValues(string);
+    }
+
+    @Override
+    public Enumeration<String> getParameterNames() {
+        return get().getParameterNames();
+    }
+
+    @Override
+    public String getProtocol() {
+        return get().getProtocol();
+    }
+
+    @Override
+    public java.io.BufferedReader getReader() throws IOException {
+        return get().getReader();
+    }
+
+    @Override
+    public String getRealPath(String string) {
+        return get().getRealPath(string);
+    }
+
+    @Override
+    public String getRemoteAddr() {
+        return get().getRemoteAddr();
+    }
+
+    @Override
+    public String getRemoteHost() {
+        return get().getRemoteHost();
+    }
+
+    @Override
+    public int getRemotePort() {
+        return get().getRemotePort();
     }
 
-    public ResponseBuilder evaluatePreconditions(Date lastModified) {
-        return get().evaluatePreconditions(lastModified);
+    @Override
+    public RequestDispatcher getRequestDispatcher(String string) {
+        return get().getRequestDispatcher(string);
     }
 
-    public ResponseBuilder evaluatePreconditions(Date lastModified, EntityTag 
eTag) {
-        return get().evaluatePreconditions(lastModified, eTag);
+    @Override
+    public String getScheme() {
+        return get().getScheme();
     }
 
-    public Variant selectVariant(List<Variant> vars) throws 
IllegalArgumentException {
-        return get().selectVariant(vars);
+    @Override
+    public String getServerName() {
+        return get().getServerName();
     }
 
-    public String getMethod() {
-        return get().getMethod();
+    @Override
+    public int getServerPort() {
+        return get().getServerPort();
     }
 
-    public ResponseBuilder evaluatePreconditions() {
-        return get().evaluatePreconditions();
+    @Override
+    public ServletContext getServletContext() {
+        return get().getServletContext();
     }
 
+    @Override
+    public boolean isAsyncStarted() {
+        return get().isAsyncStarted();
+    }
+
+    @Override
+    public boolean isAsyncSupported() {
+        return get().isAsyncSupported();
+    }
+
+    @Override
+    public boolean isSecure() {
+        return get().isSecure();
+    }
+
+    @Override
+    public void removeAttribute(String string) {
+        get().removeAttribute(string);
+    }
+
+    @Override
+    public void setAttribute(String string, Object object) {
+        get().setAttribute(string, object);
+    }
+
+    @Override
+    public void setCharacterEncoding(String string) throws 
UnsupportedEncodingException {
+        get().setCharacterEncoding(string);
+    }
+
+    @Override
+    public AsyncContext startAsync() {
+        return get().startAsync();
+    }
+
+    @Override
+    public AsyncContext startAsync(ServletRequest servletRequest, 
ServletResponse servletResponse) {
+        return get().startAsync(servletRequest, servletResponse);
+    }
 }

Modified: 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java?rev=1379998&r1=1379997&r2=1379998&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
 Sun Sep  2 15:52:27 2012
@@ -24,6 +24,8 @@ import org.apache.cxf.message.Exchange;
 import org.apache.openejb.InvalidateReferenceException;
 import org.apache.openejb.rest.ThreadLocalContextManager;
 
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Request;
 import javax.ws.rs.core.SecurityContext;
@@ -61,6 +63,12 @@ public class OpenEJBEJBInvoker extends J
             } else if (Providers.class.equals(type)) {
                 Providers providers = 
JAXRSUtils.createContextValue(exchange.getInMessage(), null, Providers.class);
                 ThreadLocalContextManager.PROVIDERS.set(providers);
+            } else if (ServletRequest.class.equals(type)) {
+                ServletRequest servletRequest = 
JAXRSUtils.createContextValue(exchange.getInMessage(), null, 
ServletRequest.class);
+                ThreadLocalContextManager.SERVLET_REQUEST.set(servletRequest);
+            } else if (HttpServletRequest.class.equals(type)) {
+                HttpServletRequest httpServletRequest = 
JAXRSUtils.createContextValue(exchange.getInMessage(), null, 
HttpServletRequest.class);
+                
ThreadLocalContextManager.HTTP_SERVLET_REQUEST.set(httpServletRequest);
             }
         }
 


Reply via email to