You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2010/02/15 20:54:41 UTC
svn commit: r910321 -
/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java
Author: gerdogdu
Date: Mon Feb 15 19:54:41 2010
New Revision: 910321
URL: http://svn.apache.org/viewvc?rev=910321&view=rev
Log:
[OWB-282] Update for SPI
Modified:
openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java
Modified: openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java?rev=910321&r1=910320&r2=910321&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java (original)
+++ openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java Mon Feb 15 19:54:41 2010
@@ -16,17 +16,33 @@
import java.net.URL;
import java.util.Collection;
import java.util.Iterator;
+import java.util.Properties;
+import javax.ejb.Singleton;
+import javax.ejb.Stateful;
+import javax.ejb.Stateless;
import javax.enterprise.inject.spi.BeanManager;
+import javax.naming.Context;
+import javax.naming.InitialContext;
-import org.apache.openejb.OpenEJB;
-import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.spi.ContainerSystem;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.ProxyFactoryInfo;
+import org.apache.openejb.assembler.classic.SecurityServiceInfo;
+import org.apache.openejb.assembler.classic.SingletonSessionContainerInfo;
+import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
+import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
+import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.config.EjbModule;
+import org.apache.openejb.core.ivm.naming.InitContextFactory;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.SingletonBean;
+import org.apache.openejb.jee.StatefulBean;
+import org.apache.openejb.jee.StatelessBean;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.context.ContextFactory;
-import org.apache.webbeans.exception.WebBeansConfigurationException;
-import org.apache.webbeans.lifecycle.WebApplicationLifeCycle;
+import org.apache.webbeans.lifecycle.DefaultLifecycle;
import org.apache.webbeans.lifecycle.test.MockHttpSession;
import org.apache.webbeans.lifecycle.test.MockServletContextEvent;
import org.apache.webbeans.spi.ScannerService;
@@ -37,7 +53,7 @@
public class StandaloneContainersImpl implements StandaloneContainers
{
- private WebApplicationLifeCycle lifeCycle = null;
+ private DefaultLifecycle lifeCycle = null;
private MockServletContextEvent servletContextEvent;
@@ -51,7 +67,7 @@
TCKMetaDataDiscoveryImpl discovery = (TCKMetaDataDiscoveryImpl)ServiceLoader.getService(ScannerService.class);
- this.lifeCycle = new WebApplicationLifeCycle();
+ this.lifeCycle = new DefaultLifecycle();
try
{
@@ -80,7 +96,7 @@
TCKMetaDataDiscoveryImpl discovery = (TCKMetaDataDiscoveryImpl)ServiceLoader.getService(ScannerService.class);
- this.lifeCycle = new WebApplicationLifeCycle();
+ this.lifeCycle = new DefaultLifecycle();
Iterator<Class<?>> it = classes.iterator();
while(it.hasNext())
@@ -120,26 +136,12 @@
public void setup()
{
-// if ( SystemInstance.get().getComponent(ContainerSystem.class) == null )
-// {
-// // which means OpenEJB is not yet started!
-// // this happens if you start the TCK in 'standalone mode'
-// // which means we have to bootstrap OpenEJB now:
-// try
-// {
-// OpenEJB.init(System.getProperties());
-// }
-// catch( OpenEJBException e )
-// {
-// throw new RuntimeException("failure in OpenWebBeans ejb-plugin while starting OpenEJB!", e);
-// }
-// }
}
public void cleanup()
{
- // OpenEJB.destroy();
+
}
@@ -150,7 +152,7 @@
ContextFactory.destroyRequestContext(null);
ContextFactory.destroySessionContext(this.mockHttpSession);
ContextFactory.destroyConversationContext();
- }
+ }
public DeploymentException getDeploymentException()
{
@@ -165,7 +167,8 @@
@Override
public void deploy(Collection<Class<?>> classes) throws DeploymentException
- {
+ {
+ setUp(classes);
deployInternal(classes);
}
@@ -173,6 +176,78 @@
@Override
public boolean deploy(Collection<Class<?>> classes, Collection<URL> xmls)
{
+ setUp(classes);
return deployInternal(classes, xmls);
}
+
+ private void setUp(Collection<Class<?>> classes){
+
+ try
+ {
+ ConfigurationFactory config = new ConfigurationFactory();
+ Assembler assembler = new Assembler();
+
+ assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
+ assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
+ assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
+
+ assembler.createContainer(config.configureService(StatelessSessionContainerInfo.class));
+ assembler.createContainer(config.configureService(StatefulSessionContainerInfo.class));
+ assembler.createContainer(config.configureService(SingletonSessionContainerInfo.class));
+
+ EjbJarInfo ejbJar = config.configureApplication(buildTestApp(classes));
+
+ assembler.createApplication(ejbJar);
+
+ System.setProperty("openejb.validation.output.level", "VERBOSE");
+ Properties properties = new Properties(System.getProperties());
+ properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
+ new InitialContext(properties);
+ }catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ private EjbModule buildTestApp(Collection<Class<?>> classes)
+ {
+ EjbJar ejbJar = new EjbJar();
+ ejbJar.setId(this.getClass().getName());
+
+ for(Class<?> clazz : classes)
+ {
+ if(isSingleton(clazz))
+ {
+ ejbJar.addEnterpriseBean(new SingletonBean(clazz));
+ }
+ if(isStateless(clazz))
+ {
+ ejbJar.addEnterpriseBean(new StatelessBean(clazz));
+ }
+
+ if(isStatefull(clazz))
+ {
+ ejbJar.addEnterpriseBean(new StatefulBean(clazz));
+ }
+ }
+
+
+ return new EjbModule(ejbJar);
+
+ }
+
+ private boolean isSingleton(Class<?> clazz)
+ {
+ return clazz.isAnnotationPresent(Singleton.class) ? true : false;
+ }
+
+ private boolean isStateless(Class<?> clazz)
+ {
+ return clazz.isAnnotationPresent(Stateless.class) ? true : false;
+ }
+
+ private boolean isStatefull(Class<?> clazz)
+ {
+ return clazz.isAnnotationPresent(Stateful.class) ? true : false;
+ }
}