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


Reply via email to