You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/09/12 09:29:43 UTC

svn commit: r1169631 - in /openejb/trunk/openejb3: ./ assembly/openejb-tomcat/openejb-tomcat-catalina/ assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ assembly/openejb-tomcat/openejb-tomcat-common/ asse...

Author: dblevins
Date: Mon Sep 12 07:29:42 2011
New Revision: 1169631

URL: http://svn.apache.org/viewvc?rev=1169631&view=rev
Log:
Marking the tomcat-catalina dep as provided only in the openejb-tomcat-webapp where that applies.  It is needed in the embedded setup as a transitive dependency.
Ensure JSTL is in the TomEE distro
Hook up more of the JSF and EL connections in TomEE/CDI integration

Modified:
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml
    openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
    openejb/trunk/openejb3/container/openejb-core/pom.xml
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
    openejb/trunk/openejb3/pom.xml
    openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml
    openejb/trunk/openejb3/tck/pom.xml
    openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/pom.xml Mon Sep 12 07:29:42 2011
@@ -95,7 +95,6 @@
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
       <version>${tomcat.version}</version>
-      <scope>provided</scope>
     </dependency>
   </dependencies>
 </project>

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java Mon Sep 12 07:29:42 2011
@@ -17,6 +17,9 @@
 package org.apache.openejb.tomcat.catalina;
 
 import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.deploy.Injectable;
+import org.apache.catalina.deploy.InjectionTarget;
+import org.apache.catalina.deploy.NamingResources;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.core.WebContext;
 import org.apache.tomcat.InstanceManager;
@@ -27,6 +30,9 @@ import javax.naming.NamingException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
 * @version $Rev$ $Date$
@@ -39,10 +45,61 @@ public class JavaeeInstanceManager imple
     public JavaeeInstanceManager(WebContext webContext, StandardContext context) {
         this.webContext = webContext;
         this.context = context;
+
+        final Map<String, Map<String, String>> map = getMap();
+        map.size();
+    }
+
+    private Map<String, Map<String, String>> getMap() {
+        return buildInjectionMap(this.context.getNamingResources());
+    }
+
+    private Map<String, Map<String, String>> buildInjectionMap(NamingResources namingResources) {
+        Map<String, Map<String, String>> injectionMap = new HashMap<String, Map<String, String>>();
+        for (Injectable resource: namingResources.findLocalEjbs()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        for (Injectable resource: namingResources.findEjbs()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        for (Injectable resource: namingResources.findEnvironments()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        for (Injectable resource: namingResources.findMessageDestinationRefs()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        for (Injectable resource: namingResources.findResourceEnvRefs()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        for (Injectable resource: namingResources.findResources()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        for (Injectable resource: namingResources.findServices()) {
+            addInjectionTarget(resource, injectionMap);
+        }
+        return injectionMap;
+    }
+
+    private void addInjectionTarget(Injectable resource, Map<String, Map<String, String>> injectionMap) {
+        List<InjectionTarget> injectionTargets = resource.getInjectionTargets();
+        if (injectionTargets != null && injectionTargets.size() > 0) {
+            String jndiName = resource.getName();
+            for (InjectionTarget injectionTarget: injectionTargets) {
+                String clazz = injectionTarget.getTargetClass();
+                Map<String, String> injections = injectionMap.get(clazz);
+                if (injections == null) {
+                    injections = new HashMap<String, String>();
+                    injectionMap.put(clazz, injections);
+                }
+                injections.put(injectionTarget.getTargetName(), jndiName);
+            }
+        }
     }
 
     @Override
     public Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException {
+        final Map<String, Map<String, String>> map = getMap();
+        map.size();
         final ClassLoader classLoader = webContext.getClassLoader();
         return newInstance(className, classLoader);
     }

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Mon Sep 12 07:29:42 2011
@@ -19,7 +19,9 @@ package org.apache.openejb.tomcat.catali
 import org.apache.catalina.Container;
 import org.apache.catalina.Engine;
 import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.Pipeline;
 import org.apache.catalina.Service;
+import org.apache.catalina.Valve;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.core.ContainerBase;
 import org.apache.catalina.core.NamingContextListener;
@@ -30,6 +32,8 @@ import org.apache.catalina.deploy.Contex
 import org.apache.catalina.deploy.ContextResource;
 import org.apache.catalina.deploy.ContextResourceLink;
 import org.apache.catalina.deploy.ContextTransaction;
+import org.apache.catalina.deploy.FilterDef;
+import org.apache.catalina.deploy.FilterMap;
 import org.apache.catalina.deploy.NamingResources;
 import org.apache.catalina.startup.ContextConfig;
 import org.apache.catalina.startup.HostConfig;
@@ -590,7 +594,22 @@ public class TomcatWebAppBuilder impleme
         }
 
         OpenEJBValve openejbValve = new OpenEJBValve();
-        standardContext.getPipeline().addValve(openejbValve);
+        final Pipeline pipeline = standardContext.getPipeline();
+        pipeline.addValve(openejbValve);
+
+        final String[] valves = SystemInstance.get().getProperty("tomee.valves", "").split(" *, *");
+        for (String className : valves) {
+            if ("".equals(className)) continue;
+            try {
+                final Class<?> clazz = standardContext.getLoader().getClassLoader().loadClass(className);
+                if (Valve.class.isAssignableFrom(clazz)) {
+                    final Valve valve = (Valve) clazz.newInstance();
+                    pipeline.addValve(valve);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
     }
 
     private WebBeansListener getWebBeansContext(ContextInfo contextInfo) {

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java Mon Sep 12 07:29:42 2011
@@ -16,6 +16,8 @@
  */
 package org.apache.openejb.tomcat.catalina;
 
+import org.apache.openejb.cdi.OpenEJBLifecycle;
+import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
 import org.apache.webbeans.component.InjectionPointBean;
 import org.apache.webbeans.config.OWBLogConst;
 import org.apache.webbeans.config.WebBeansContext;
@@ -29,6 +31,8 @@ import org.apache.webbeans.web.context.W
 
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.context.SessionScoped;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
 import javax.servlet.ServletRequestEvent;
 import javax.servlet.ServletRequestListener;
 import javax.servlet.http.HttpServletRequest;
@@ -40,7 +44,9 @@ import javax.servlet.http.HttpSessionLis
 /**
  * @version $Rev$ $Date$
  */
-public class WebBeansListener implements ServletRequestListener, HttpSessionListener, HttpSessionActivationListener {
+public class WebBeansListener implements ServletContextListener, ServletRequestListener, HttpSessionListener, HttpSessionActivationListener {
+
+    private final String contextKey = this.getClass().getName() + "@" + hashCode();
 
     /**
      * Logger instance
@@ -73,29 +79,35 @@ public class WebBeansListener implements
             logger.debug("Destroying a request : [{0}]", event.getServletRequest().getRemoteAddr());
         }
 
-        if (failoverService != null &&
-                failoverService.isSupportFailOver()) {
-            Object request = event.getServletRequest();
-            if (request instanceof HttpServletRequest) {
-                HttpServletRequest httpRequest = (HttpServletRequest) request;
-                HttpSession session = httpRequest.getSession(false);
-                if (session != null) {
-                    failoverService.sessionIsIdle(session);
+        final Object oldContext = event.getServletRequest().getAttribute(contextKey);
+
+        try {
+            if (failoverService != null &&
+                    failoverService.isSupportFailOver()) {
+                Object request = event.getServletRequest();
+                if (request instanceof HttpServletRequest) {
+                    HttpServletRequest httpRequest = (HttpServletRequest) request;
+                    HttpSession session = httpRequest.getSession(false);
+                    if (session != null) {
+                        failoverService.sessionIsIdle(session);
+                    }
                 }
             }
-        }
 
-        // clean up the EL caches after each request
-        ELContextStore elStore = ELContextStore.getInstance(false);
-        if (elStore != null) {
-            elStore.destroyELContextStore();
-        }
+            // clean up the EL caches after each request
+            ELContextStore elStore = ELContextStore.getInstance(false);
+            if (elStore != null) {
+                elStore.destroyELContextStore();
+            }
 
-        if (this.lifeCycle != null) {
-            this.lifeCycle.getContextService().endContext(RequestScoped.class, event);
-        }
+            if (this.lifeCycle != null) {
+                this.lifeCycle.getContextService().endContext(RequestScoped.class, event);
+            }
 
-        this.cleanupRequestThreadLocals();
+            this.cleanupRequestThreadLocals();
+        } finally {
+            ThreadSingletonServiceImpl.enter((WebBeansContext) oldContext);
+        }
     }
 
     /**
@@ -113,6 +125,9 @@ public class WebBeansListener implements
      * {@inheritDoc}
      */
     public void requestInitialized(ServletRequestEvent event) {
+        final Object oldContext = ThreadSingletonServiceImpl.enter(this.webBeansContext);
+        event.getServletRequest().setAttribute(contextKey, oldContext);
+
         try {
             if (logger.wblWillLogDebug()) {
                 logger.debug("Starting a new request : [{0}]", event.getServletRequest().getRemoteAddr());
@@ -176,4 +191,17 @@ public class WebBeansListener implements
             failoverService.restoreBeans(session);
         }
     }
+
+    @Override
+    public void contextInitialized(ServletContextEvent servletContextEvent) {
+        try {
+            OpenEJBLifecycle.initializeServletContext(servletContextEvent.getServletContext(), webBeansContext);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void contextDestroyed(ServletContextEvent servletContextEvent) {
+    }
 }

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-common/pom.xml Mon Sep 12 07:29:42 2011
@@ -66,7 +66,6 @@
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
       <version>${tomcat.version}</version>
-      <scope>provided</scope>
     </dependency>
   </dependencies>
 </project>

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/pom.xml Mon Sep 12 07:29:42 2011
@@ -40,7 +40,6 @@
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
       <version>${tomcat.version}</version>
-      <scope>provided</scope>
     </dependency>
   </dependencies>
 </project>

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml Mon Sep 12 07:29:42 2011
@@ -319,6 +319,11 @@
       <version>${myfaces.version}</version>
     </dependency>
     <dependency>
+      <groupId>jstl</groupId>
+      <artifactId>jstl</artifactId>
+      <version>1.2</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.derby</groupId>
       <artifactId>derby</artifactId>
       <version>10.6.1.0</version>

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/pom.xml Mon Sep 12 07:29:42 2011
@@ -73,11 +73,26 @@
        <!--<artifactId>arquillian-testenricher-ejb</artifactId>-->
        <!--<version>${version.arquillian}</version>-->
     <!--</dependency>-->
+    <dependency>
+      <groupId>org.apache.myfaces.core</groupId>
+      <artifactId>myfaces-impl</artifactId>
+      <version>2.1.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.myfaces.core</groupId>
+      <artifactId>myfaces-api</artifactId>
+      <version>2.1.2</version>
+    </dependency>
+    <dependency>
+      <groupId>jstl</groupId>
+      <artifactId>jstl</artifactId>
+      <version>1.2</version>
+    </dependency>
 
     <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-catalina</artifactId>
-       <version>${version.org.apache.tomcat}</version>
+      <version>${version.org.apache.tomcat}</version>
     </dependency>
 
     <dependency>
@@ -124,33 +139,26 @@
       <artifactId>ecj</artifactId>
       <version>3.5.1</version>
       <type>jar</type>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
       <artifactId>javaee-api</artifactId>
       <version>6.0-SNAPSHOT</version>
-      <type>jar</type>
     </dependency>
     <dependency>
       <groupId>org.apache.velocity</groupId>
       <artifactId>velocity</artifactId>
       <version>1.6.4</version>
-      <type>jar</type>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
       <version>1.1</version>
-      <type>jar</type>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-client</artifactId>
       <version>4.0.0-SNAPSHOT</version>
-      <type>jar</type>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>
@@ -162,7 +170,6 @@
       <artifactId>openejb-core</artifactId>
       <version>4.0.0-SNAPSHOT</version>
     </dependency>
-
   </dependencies>
 </project>
 

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java Mon Sep 12 07:29:42 2011
@@ -46,6 +46,7 @@ import java.util.Properties;
  * @version $Rev$ $Date$
  */
 public class Container {
+
     private Bootstrap bootstrap;
     protected Configuration configuration;
     private File catalinaDirectory;
@@ -53,12 +54,22 @@ public class Container {
     private ConfigurationFactory configurationFactory;
     private Assembler assembler;
 
-    protected void setup(Configuration configuration) {
+    public Container() {
+        final Configuration configuration = new Configuration();
+        configuration.setHttpPort(23880);
+        configuration.setStopPort(23881);
+        setup(configuration);
+        final Class<Bootstrap> bootstrapClass = Bootstrap.class;
+    }
+
+    public void setup(Configuration configuration) {
         this.configuration = configuration;
     }
 
-    protected void startInternal() throws Exception {
-        catalinaDirectory = new File(configuration.getDir());
+    public void start() throws Exception {
+        final String dir = getBaseDir();
+
+        catalinaDirectory = new File(dir);
         if (catalinaDirectory.exists()) {
             catalinaDirectory.delete();
         }
@@ -122,18 +133,29 @@ public class Container {
         configurationFactory = new ConfigurationFactory();
     }
 
-    protected void stopInternal() throws Exception {
+    private String getBaseDir() {
+        try {
+            final String dir = configuration.getDir();
+            if (dir != null) return dir;
+            final File file = File.createTempFile("apache-tomee", "-home");
+            return file.getAbsolutePath();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public void stop() throws Exception {
         bootstrap.stopServer();
         deleteTree(catalinaDirectory);
     }
 
-    protected void deploy(String name, File file) throws OpenEJBException, IOException, NamingException {
+    public void deploy(String name, File file) throws OpenEJBException, IOException, NamingException {
         AppInfo appInfo = configurationFactory.configureApplication(file);
         assembler.createApplication(appInfo);
         moduleIds.put(name, appInfo.path);
     }
 
-    protected void undeploy(String name) throws UndeployException, NoSuchApplicationException {
+    public void undeploy(String name) throws UndeployException, NoSuchApplicationException {
         String moduleId = moduleIds.get(name);
         assembler.destroyApplication(moduleId);
     }

Modified: openejb/trunk/openejb3/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/pom.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/pom.xml Mon Sep 12 07:29:42 2011
@@ -422,6 +422,10 @@
     </dependency>
     <dependency>
       <groupId>org.apache.openwebbeans</groupId>
+      <artifactId>openwebbeans-jsf</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-ee</artifactId>
     </dependency>
     <dependency>

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon Sep 12 07:29:42 2011
@@ -86,7 +86,12 @@ import org.apache.openejb.OpenEJB;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.UndeployException;
 import org.apache.openejb.assembler.dynamic.PassthroughFactory;
+import org.apache.openejb.cdi.CdiAppContextsService;
 import org.apache.openejb.cdi.CdiBuilder;
+import org.apache.openejb.cdi.CdiResourceInjectionService;
+import org.apache.openejb.cdi.CdiScanner;
+import org.apache.openejb.cdi.ManagedSecurityService;
+import org.apache.openejb.cdi.OpenEJBTransactionService;
 import org.apache.openejb.core.ConnectorReference;
 import org.apache.openejb.core.CoreContainerSystem;
 import org.apache.openejb.core.CoreUserTransaction;
@@ -125,6 +130,10 @@ import org.apache.openejb.util.SafeToolk
 import org.apache.openejb.util.proxy.ProxyFactory;
 import org.apache.openejb.util.proxy.ProxyManager;
 import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.spi.ContextsService;
+import org.apache.webbeans.spi.ResourceInjectionService;
+import org.apache.webbeans.spi.ScannerService;
+import org.apache.webbeans.spi.TransactionService;
 import org.apache.xbean.finder.ResourceFinder;
 import org.apache.xbean.recipe.ObjectRecipe;
 import org.apache.xbean.recipe.Option;
@@ -822,7 +831,18 @@ public class Assembler extends Assembler
     private void ensureWebBeansContext(AppContext appContext) {
         WebBeansContext webBeansContext = appContext.get(WebBeansContext.class);
         if (webBeansContext == null) webBeansContext = appContext.getWebBeansContext();
-        if (webBeansContext == null) webBeansContext = new WebBeansContext();
+        if (webBeansContext == null) {
+
+            final Map<Class<?>, Object> services = new HashMap<Class<?>, Object>();
+
+            services.put(TransactionService.class, new OpenEJBTransactionService());
+            services.put(ContextsService.class, new CdiAppContextsService(true));
+            services.put(ResourceInjectionService.class, new CdiResourceInjectionService());
+            services.put(ScannerService.class, new CdiScanner());
+            final Properties properties = new Properties();
+            properties.setProperty(org.apache.webbeans.spi.SecurityService.class.getName(), ManagedSecurityService.class.getName());
+            webBeansContext = new WebBeansContext(services, properties);
+        }
 
         appContext.set(WebBeansContext.class, webBeansContext);
         appContext.setWebBeansContext(webBeansContext);

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Mon Sep 12 07:29:42 2011
@@ -78,7 +78,7 @@ import org.apache.webbeans.xml.WebBeansX
 public class OpenEJBLifecycle implements ContainerLifecycle {
 
     //Logger instance
-    protected WebBeansLogger logger = WebBeansLogger.getLogger(OpenEJBLifecycle.class);
+    protected static WebBeansLogger logger = WebBeansLogger.getLogger(OpenEJBLifecycle.class);
 
     /**Discover bean classes*/
     protected ScannerService scannerService;
@@ -504,29 +504,33 @@ public class OpenEJBLifecycle implements
     {
     }
 
-    public void startServletContext(final ServletContext startupObject) {
-        String strDelay = webBeansContext.getOpenWebBeansConfiguration().getProperty(OpenWebBeansConfiguration.CONVERSATION_PERIODIC_DELAY, "150000");
+    public void startServletContext(final ServletContext servletContext) {
+        service = initializeServletContext(servletContext, webBeansContext);
+    }
+
+    public static ScheduledExecutorService initializeServletContext(final ServletContext servletContext, WebBeansContext context) {
+        String strDelay = context.getOpenWebBeansConfiguration().getProperty(OpenWebBeansConfiguration.CONVERSATION_PERIODIC_DELAY, "150000");
         long delay = Long.parseLong(strDelay);
 
-        service = Executors.newScheduledThreadPool(1, new ThreadFactory() {
+        final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1, new ThreadFactory() {
             @Override
             public Thread newThread(Runnable runable) {
-                Thread t = new Thread(runable, "OwbConversationCleaner-" + ((ServletContext) (startupObject)).getContextPath());
+                Thread t = new Thread(runable, "OwbConversationCleaner-" + servletContext.getContextPath());
                 t.setDaemon(true);
                 return t;
             }
         });
-        service.scheduleWithFixedDelay(new ConversationCleaner(webBeansContext), delay, delay, TimeUnit.MILLISECONDS);
+        executorService.scheduleWithFixedDelay(new ConversationCleaner(context), delay, delay, TimeUnit.MILLISECONDS);
 
-        ELAdaptor elAdaptor = webBeansContext.getService(ELAdaptor.class);
+        ELAdaptor elAdaptor = context.getService(ELAdaptor.class);
         ELResolver resolver = elAdaptor.getOwbELResolver();
         //Application is configured as JSP
-        if (webBeansContext.getOpenWebBeansConfiguration().isJspApplication()) {
+        if (context.getOpenWebBeansConfiguration().isJspApplication()) {
             logger.debug("Application is configured as JSP. Adding EL Resolver.");
 
             JspFactory factory = JspFactory.getDefaultFactory();
             if (factory != null) {
-                JspApplicationContext applicationCtx = factory.getJspApplicationContext((ServletContext) (startupObject));
+                JspApplicationContext applicationCtx = factory.getJspApplicationContext(servletContext);
                 applicationCtx.addELResolver(resolver);
             } else {
                 logger.debug("Default JSPFactroy instance has not found");
@@ -534,9 +538,9 @@ public class OpenEJBLifecycle implements
         }
 
         // Add BeanManager to the 'javax.enterprise.inject.spi.BeanManager' servlet context attribute
-        ServletContext servletContext = (ServletContext) (startupObject);
-        servletContext.setAttribute(BeanManager.class.getName(), getBeanManager());
+        servletContext.setAttribute(BeanManager.class.getName(), context.getBeanManagerImpl());
 
+        return executorService;
     }
 
     /**

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java Mon Sep 12 07:29:42 2011
@@ -26,14 +26,25 @@ import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.OpenWebBeansConfiguration;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.container.BeanManagerImpl;
+import org.apache.webbeans.el.el22.EL22Adaptor;
+import org.apache.webbeans.jsf.DefaultConversationService;
 import org.apache.webbeans.spi.ContainerLifecycle;
+import org.apache.webbeans.spi.ContextsService;
+import org.apache.webbeans.spi.ConversationService;
+import org.apache.webbeans.spi.JNDIService;
 import org.apache.webbeans.spi.ResourceInjectionService;
+import org.apache.webbeans.spi.ScannerService;
 import org.apache.webbeans.spi.SecurityService;
+import org.apache.webbeans.spi.TransactionService;
 import org.apache.webbeans.spi.ValidatorService;
+import org.apache.webbeans.spi.adaptor.ELAdaptor;
 
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * @version $Rev:$ $Date:$
@@ -53,7 +64,24 @@ public class ThreadSingletonServiceImpl 
     @Override
     public void initialize(StartupObject startupObject) {
         //initialize owb context, cf geronimo's OpenWebBeansGBean
-        WebBeansContext webBeansContext = new WebBeansContext();
+        Properties properties = new Properties();
+        Map<Class<?>, Object> services = new HashMap<Class<?>, Object>();
+        properties.setProperty(OpenWebBeansConfiguration.APPLICATION_IS_JSP, "true");
+        properties.setProperty(OpenWebBeansConfiguration.USE_EJB_DISCOVERY, "true");
+        //from CDI builder
+        properties.setProperty(OpenWebBeansConfiguration.INTERCEPTOR_FORCE_NO_CHECKED_EXCEPTIONS, "false");
+        properties.setProperty(SecurityService.class.getName(), ManagedSecurityService.class.getName());
+        properties.setProperty(OpenWebBeansConfiguration.CONVERSATION_PERIODIC_DELAY, "1800000");
+        properties.setProperty(OpenWebBeansConfiguration.APPLICATION_SUPPORTS_CONVERSATION, "true");
+        properties.setProperty(OpenWebBeansConfiguration.IGNORED_INTERFACES, "org.apache.aries.proxy.weaving.WovenProxy");
+
+        services.put(TransactionService.class, new OpenEJBTransactionService());
+        services.put(ELAdaptor.class, new EL22Adaptor());
+        services.put(ConversationService.class, new DefaultConversationService());
+        services.put(ContextsService.class, new CdiAppContextsService(true));
+        services.put(ResourceInjectionService.class, new CdiResourceInjectionService());
+        services.put(ScannerService.class, new CdiScanner());
+        WebBeansContext webBeansContext = new WebBeansContext(services, properties);
         startupObject.getAppContext().set(WebBeansContext.class, webBeansContext);
         Object old = contextEntered(webBeansContext);
         try {
@@ -89,7 +117,7 @@ public class ThreadSingletonServiceImpl 
         return enter(newOWBContext);
     }
 
-    public static Object enter(WebBeansContext newOWBContext) {
+    public static WebBeansContext enter(WebBeansContext newOWBContext) {
         WebBeansContext oldContext = contexts.get();
         contexts.set(newOWBContext);
         contextMessage(newOWBContext, "Enter:");

Modified: openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/pom.xml (original)
+++ openejb/trunk/openejb3/pom.xml Mon Sep 12 07:29:42 2011
@@ -1079,8 +1079,6 @@
         <groupId>org.apache.tomcat</groupId>
         <artifactId>tomcat-catalina</artifactId>
         <version>${tomcat.version}</version>
-        <optional>true</optional>
-        <scope>provided</scope>
       </dependency>
       <dependency>
         <groupId>org.quartz-scheduler</groupId>
@@ -1216,6 +1214,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.openwebbeans</groupId>
+        <artifactId>openwebbeans-jsf</artifactId>
+        <version>${org.apache.openwebbeans.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.openwebbeans</groupId>
         <artifactId>openwebbeans-spi</artifactId>
         <version>${org.apache.openwebbeans.version}</version>
         <exclusions>

Modified: openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml Mon Sep 12 07:29:42 2011
@@ -23,44 +23,6 @@
         <package name="org.jboss.jsr299.tck.interceptors.tests.*"/>
     </packages>
     <classes>
-      <class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest">
-        <methods>
-          <exclude name="testBeanWithDefaultQualifier"/>
-          <exclude name="testBeanWithNameJavaxEnterpriseContextConversation"/>
-          <exclude name="testBeanWithRequestScope"/>
-          <exclude name="testBeginAlreadyLongRunningConversationThrowsException"/>
-          <exclude name="testConversationActiveDuringNonFacesRequest"/>
-          <exclude name="testConversationBeginMakesConversationLongRunning"/>
-          <exclude name="testConversationEndMakesConversationTransient"/>
-          <exclude name="testConversationHasDefaultTimeout"/>
-          <exclude name="testConversationIdMayBeSetByApplication"/>
-          <exclude name="testConversationIdMayBeSetByContainer"/>
-          <exclude name="testConversationIdSetByContainerIsUnique"/>
-          <exclude name="testConversationsDontCrossSessionBoundary1"/>
-          <exclude name="testConversationsDontCrossSessionBoundary2"/>
-          <exclude name="testEndTransientConversationThrowsException"/>
-          <exclude name="testLongRunningConversationInstancesNotDestroyedAtRequestEnd"/>
-          <exclude name="testSetConversationTimeoutOverride"/>
-          <exclude name="testTransientConversationHasNullId"/>
-          <exclude name="testTransientConversationInstancesDestroyedAtRequestEnd"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest">
-        <methods>
-          <exclude name="testInvalidatingSessionDestroysConversation"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest">
-        <methods>
-          <exclude name="testConversationPropagated"/>
-          <exclude name="testConversationPropagatedOverRedirect"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest">
-        <methods>
-          <exclude name="testManualCidPropagation"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.context.dependent.DependentContextTest">
         <methods>
           <exclude name="testContextIsActiveWhenEvaluatingElExpression"/>
@@ -134,15 +96,9 @@
       </class>
       <class name="org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest">
         <methods>
-          <exclude name="testELResolverRegisteredWithJsf"/>
           <exclude name="testELResolverRegisteredWithServletContainer"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest">
-        <methods>
-          <exclude name="testInjectionIntoJSFManagedBean"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.ws.InjectionIntoWebServiceEndPointTest">
         <methods>
           <exclude name="testInjectionIntoWebServiceEndpoint"/>

Modified: openejb/trunk/openejb3/tck/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/pom.xml?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/pom.xml (original)
+++ openejb/trunk/openejb3/tck/pom.xml Mon Sep 12 07:29:42 2011
@@ -32,6 +32,7 @@
   <modules>
     <module>cdi-embedded</module>
     <module>cdi-tomee</module>
+    <module>cdi-tomee-embedded</module>
     <module>bval-embedded</module>
     <module>tck-common</module>
     <module>bval-tomee</module>

Modified: openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java?rev=1169631&r1=1169630&r2=1169631&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java (original)
+++ openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java Mon Sep 12 07:29:42 2011
@@ -90,8 +90,8 @@ public class ContainersImpl implements C
             Thread.currentThread().setContextClassLoader(new URLClassLoader(new URL[]{ file.toURI().toURL() }, originalClassLoader));
             container = EJBContainer.createEJBContainer(map);
 
-            final WebBeansContext webBeansContext = ThreadSingletonServiceImpl.get();
-            dump(webBeansContext.getBeanManagerImpl());
+//            final WebBeansContext webBeansContext = ThreadSingletonServiceImpl.get();
+//            dump(webBeansContext.getBeanManagerImpl());
         } catch (Exception e) {
             if (e instanceof EJBException && e.getCause() instanceof ValidationException) {
                 exception = ValidationException.class.cast(e.getCause());