Author: rmannibucau
Date: Thu Sep 20 07:33:44 2012
New Revision: 1387895
URL: http://svn.apache.org/viewvc?rev=1387895&view=rev
Log:
TOMEE-422 (from trunk) + missing imports
Added:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletResponse.java
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletConfig.java
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Thu Sep 20 07:33:44 2012
@@ -51,6 +51,7 @@ import org.apache.openejb.cdi.CustomELAd
import org.apache.openejb.cdi.ManagedSecurityService;
import org.apache.openejb.cdi.OpenEJBTransactionService;
import org.apache.openejb.cdi.OptimizedLoaderService;
+import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
import org.apache.openejb.component.ClassLoaderEnricher;
import org.apache.openejb.core.ConnectorReference;
import org.apache.openejb.core.CoreContainerSystem;
@@ -991,7 +992,7 @@ public class Assembler extends Assembler
services.put(ScannerService.class, new CdiScanner());
services.put(ELAdaptor.class, new CustomELAdapter(appContext));
services.put(LoaderService.class, new OptimizedLoaderService());
- services.put(org.apache.webbeans.proxy.ProxyFactory.class, new
AsmFactory());
+ services.put(org.apache.webbeans.proxy.ProxyFactory.class, new
org.apache.webbeans.proxy.ProxyFactory(ThreadSingletonServiceImpl.owbProxyFactory()));
final Properties properties = new Properties();
properties.setProperty(org.apache.webbeans.spi.SecurityService.class.getName(),
ManagedSecurityService.class.getName());
webBeansContext = new WebBeansContext(services, properties);
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
(original)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
Thu Sep 20 07:33:44 2012
@@ -58,8 +58,10 @@ import javax.naming.LinkRef;
import javax.naming.Name;
import javax.naming.NamingException;
import javax.persistence.EntityManagerFactory;
+import javax.servlet.ServletConfig;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import javax.validation.Validator;
@@ -300,6 +302,10 @@ public class JndiEncBuilder {
reference = new
ObjectReference(ThreadLocalContextManager.CONTEXT_RESOLVER);
} else if (Providers.class.equals(type)) {
reference = new
ObjectReference(ThreadLocalContextManager.PROVIDERS);
+ } else if (ServletConfig.class.equals(type)) {
+ reference = new
ObjectReference(ThreadLocalContextManager.SERVLET_CONFIG);
+ } else if (HttpServletResponse.class.equals(type)) {
+ reference = new
ObjectReference(ThreadLocalContextManager.HTTP_SERVLET_RESPONSE);
} else if (referenceInfo.resourceID != null) {
String jndiName = "openejb/Resource/" +
referenceInfo.resourceID;
reference = new IntraVmJndiReference(jndiName);
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
(original)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Thu Sep 20 07:33:44 2012
@@ -33,7 +33,9 @@ import org.apache.webbeans.config.OpenWe
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.intercept.ApplicationScopedBeanInterceptorHandler;
import org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler;
+import org.apache.webbeans.proxy.Factory;
import org.apache.webbeans.proxy.ProxyFactory;
+import org.apache.webbeans.proxy.javassist.JavassistFactory;
import org.apache.webbeans.spi.ContainerLifecycle;
import org.apache.webbeans.spi.ContextsService;
import org.apache.webbeans.spi.ConversationService;
@@ -70,7 +72,7 @@ public class ThreadSingletonServiceImpl
// no-op
}
- private static Factory owbProxyFactory() {
+ public static Factory owbProxyFactory() {
if
("asm".equals(SystemInstance.get().getProperty(OPENEJB_OWB_PROXY_FACTORY))) {
return new AsmFactory();
}
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
(original)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
Thu Sep 20 07:33:44 2012
@@ -62,8 +62,10 @@ import javax.ejb.TimerService;
import javax.enterprise.inject.spi.BeanManager;
import javax.jms.Queue;
import javax.jms.Topic;
+import javax.servlet.ServletConfig;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
import javax.transaction.TransactionSynchronizationRegistry;
@@ -137,6 +139,8 @@ public class AutoConfig implements Dynam
ignoredReferenceTypes.add(Providers.class.getName());
ignoredReferenceTypes.add(ServletRequest.class.getName());
ignoredReferenceTypes.add(HttpServletRequest.class.getName());
+ ignoredReferenceTypes.add(ServletConfig.class.getName());
+ ignoredReferenceTypes.add(HttpServletResponse.class.getName());
}
private final ConfigurationFactory configFactory;
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
(original)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java
Thu Sep 20 07:33:44 2012
@@ -21,8 +21,10 @@ import javax.ws.rs.core.Application;
public class ThreadLocalContextManager {
public static final ThreadLocalRequest REQUEST = new ThreadLocalRequest();
+ public static final ThreadLocalServletConfig SERVLET_CONFIG = new
ThreadLocalServletConfig();
public static final ThreadLocalServletRequest SERVLET_REQUEST = new
ThreadLocalServletRequest();
public static final ThreadLocalHttpServletRequest HTTP_SERVLET_REQUEST =
new ThreadLocalHttpServletRequest();
+ public static final ThreadLocalHttpServletResponse HTTP_SERVLET_RESPONSE =
new ThreadLocalHttpServletResponse();
public static final ThreadLocalUriInfo URI_INFO = new ThreadLocalUriInfo();
public static final ThreadLocalHttpHeaders HTTP_HEADERS = new
ThreadLocalHttpHeaders();
public static final ThreadLocalSecurityContext SECURITY_CONTEXT = new
ThreadLocalSecurityContext();
@@ -33,7 +35,9 @@ public class ThreadLocalContextManager {
public static void reset() {
REQUEST.remove();
SERVLET_REQUEST.remove();
+ SERVLET_CONFIG.remove();
HTTP_SERVLET_REQUEST.remove();
+ HTTP_SERVLET_RESPONSE.remove();
URI_INFO.remove();
HTTP_HEADERS.remove();
SECURITY_CONTEXT.remove();
Added:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletResponse.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletResponse.java?rev=1387895&view=auto
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletResponse.java
(added)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalHttpServletResponse.java
Thu Sep 20 07:33:44 2012
@@ -0,0 +1,217 @@
+/*
+ * 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 org.apache.openejb.core.ivm.naming.AbstractThreadLocalProxy;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+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 javax.ws.rs.ext.Providers;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.security.Principal;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.Locale;
+
+public class ThreadLocalHttpServletResponse extends
AbstractThreadLocalProxy<HttpServletResponse> implements HttpServletResponse {
+ @Override
+ public void addCookie(final Cookie cookie) {
+ get().addCookie(cookie);
+ }
+
+ @Override
+ public void addDateHeader(final String name, final long date) {
+ get().addDateHeader(name, date);
+ }
+
+ @Override
+ public void addHeader(final String name, final String value) {
+ get().addHeader(name, value);
+ }
+
+ @Override
+ public void addIntHeader(final String name, final int value) {
+ get().addIntHeader(name, value);
+ }
+
+ @Override
+ public boolean containsHeader(final String name) {
+ return get().containsHeader(name);
+ }
+
+ @Override
+ public String encodeURL(final String url) {
+ return get().encodeURL(url);
+ }
+
+ @Override
+ public String encodeRedirectURL(final String url) {
+ return get().encodeRedirectURL(url);
+ }
+
+ @Override
+ public String encodeUrl(final String url) {
+ return get().encodeUrl(url);
+ }
+
+ @Override
+ public String encodeRedirectUrl(final String url) {
+ return get().encodeRedirectUrl(url);
+ }
+
+ @Override
+ public String getHeader(final String name) {
+ return get().getHeader(name);
+ }
+
+ @Override
+ public Collection<String> getHeaderNames() {
+ return get().getHeaderNames();
+ }
+
+ @Override
+ public Collection<String> getHeaders(final String headerName) {
+ return get().getHeaders(headerName);
+ }
+
+ @Override
+ public int getStatus() {
+ return get().getStatus();
+ }
+
+ @Override
+ public void sendError(final int sc) throws IOException {
+ get().sendError(sc);
+ }
+
+ @Override
+ public void sendError(final int sc, final String msg) throws IOException {
+ get().sendError(sc, msg);
+ }
+
+ @Override
+ public void sendRedirect(final String location) throws IOException {
+ get().sendRedirect(location);
+ }
+
+ @Override
+ public void setDateHeader(final String name, final long date) {
+ get().setDateHeader(name, date);
+ }
+
+ @Override
+ public void setHeader(final String name, final String value) {
+ get().setHeader(name, value);
+ }
+
+ @Override
+ public void setIntHeader(final String name, final int value) {
+ get().setIntHeader(name, value);
+ }
+
+ @Override
+ public void setStatus(final int sc) {
+ get().setStatus(sc);
+ }
+
+ @Override
+ public void setStatus(final int sc, final String sm) {
+ get().setStatus(sc, sm);
+ }
+
+ @Override
+ public void flushBuffer() throws IOException {
+ get().flushBuffer();
+ }
+
+ @Override
+ public int getBufferSize() {
+ return get().getBufferSize();
+ }
+
+ @Override
+ public String getCharacterEncoding() {
+ return get().getCharacterEncoding();
+ }
+
+ @Override
+ public String getContentType() {
+ return get().getContentType();
+ }
+
+ @Override
+ public Locale getLocale() {
+ return get().getLocale();
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+ return get().getOutputStream();
+ }
+
+ @Override
+ public PrintWriter getWriter() throws IOException {
+ return get().getWriter();
+ }
+
+ @Override
+ public boolean isCommitted() {
+ return get().isCommitted();
+ }
+
+ @Override
+ public void reset() {
+ get().reset();
+ }
+
+ @Override
+ public void resetBuffer() {
+ get().resetBuffer();
+ }
+
+ @Override
+ public void setBufferSize(final int size) {
+ get().setBufferSize(size);
+ }
+
+ @Override
+ public void setCharacterEncoding(final String charset) {
+ get().setCharacterEncoding(charset);
+ }
+
+ @Override
+ public void setContentLength(final int len) {
+ get().setContentLength(len);
+ }
+
+ @Override
+ public void setContentType(final String type) {
+ get().setContentType(type);
+ }
+
+ @Override
+ public void setLocale(final Locale loc) {
+ get().setLocale(loc);
+ }
+}
Added:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletConfig.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletConfig.java?rev=1387895&view=auto
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletConfig.java
(added)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalServletConfig.java
Thu Sep 20 07:33:44 2012
@@ -0,0 +1,46 @@
+/*
+ * 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 org.apache.openejb.core.ivm.naming.AbstractThreadLocalProxy;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import java.util.Enumeration;
+
+public class ThreadLocalServletConfig extends
AbstractThreadLocalProxy<ServletConfig> implements ServletConfig {
+ @Override
+ public String getServletName() {
+ return get().getServletName();
+ }
+
+ @Override
+ public ServletContext getServletContext() {
+ return get().getServletContext();
+ }
+
+ @Override
+ public String getInitParameter(final String name) {
+ return get().getInitParameter(name);
+ }
+
+ @Override
+ public Enumeration<String> getInitParameterNames() {
+ return get().getInitParameterNames();
+ }
+}
Modified:
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
(original)
+++
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java
Thu Sep 20 07:33:44 2012
@@ -24,8 +24,10 @@ import org.apache.cxf.message.Exchange;
import org.apache.openejb.InvalidateReferenceException;
import org.apache.openejb.rest.ThreadLocalContextManager;
+import javax.servlet.ServletConfig;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
@@ -69,6 +71,12 @@ public class OpenEJBEJBInvoker extends J
} else if (HttpServletRequest.class.equals(type)) {
HttpServletRequest httpServletRequest =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
HttpServletRequest.class);
ThreadLocalContextManager.HTTP_SERVLET_REQUEST.set(httpServletRequest);
+ } else if (HttpServletResponse.class.equals(type)) {
+ HttpServletResponse httpServletResponse =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
HttpServletResponse.class);
+
ThreadLocalContextManager.HTTP_SERVLET_RESPONSE.set(httpServletResponse);
+ } else if (ServletConfig.class.equals(type)) {
+ ServletConfig servletConfig =
JAXRSUtils.createContextValue(exchange.getInMessage(), null,
ServletConfig.class);
+ ThreadLocalContextManager.SERVLET_CONFIG.set(servletConfig);
}
}
Modified:
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java?rev=1387895&r1=1387894&r2=1387895&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java
(original)
+++
openejb/branches/openejb-4.1.0/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java
Thu Sep 20 07:33:44 2012
@@ -27,6 +27,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import javax.ejb.Singleton;
+import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
@@ -65,10 +66,13 @@ public class RsInjectionTest {
@Context
private Providers providers;
+ @Context
+ private HttpServletResponse response;
+
@GET
@Path("/check")
public boolean check() {
- return providers != null;
+ return providers != null && response != null;
}
}
}