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);
}
}