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