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 2010/10/04 13:14:31 UTC
svn commit: r1004198 - in
/openejb/branches/openejb-3.1.x/container/openejb-core: ./
src/main/java/org/apache/openejb/config/
src/main/java/org/apache/openejb/junit/ src/test/java/org/apache/openejb/
src/test/java/org/apache/openejb/config/ src/test/ja...
Author: dblevins
Date: Mon Oct 4 11:14:30 2010
New Revision: 1004198
URL: http://svn.apache.org/viewvc?rev=1004198&view=rev
Log:
OPENEJB-1364: @RunWith(ApplicationComposer.class) test runner allows for programmatic creation of apps
Added:
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/
- copied from r1004172, openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
- copied, changed from r1004172, openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/Configuration.java
- copied unchanged from r1004172, openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/Configuration.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/Module.java
- copied unchanged from r1004172, openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/Module.java
Modified:
openejb/branches/openejb-3.1.x/container/openejb-core/pom.xml
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java (props changed)
openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidEjbRefTest.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidInterfacesTest.java
openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/pom.xml?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/pom.xml (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/pom.xml Mon Oct 4 11:14:30 2010
@@ -336,6 +336,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Mon Oct 4 11:14:30 2010
@@ -2446,24 +2446,34 @@ public class AnnotationDeployer implemen
}
private boolean isLocalBean(Class clazz) {
- DeploymentModule module = getModule();
- if (module instanceof EjbModule) {
- Set<String> localbeans = new HashSet<String>();
- EjbModule ejbModule = (EjbModule) module;
- for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
- if (bean instanceof SessionBean) {
- if (((SessionBean) bean).getLocalBean() != null) {
- localbeans.add(bean.getEjbClass());
- }
- }
- }
+ if (clazz.isAnnotation()) return false;
+ if (clazz.isArray()) return false;
+ if (clazz.isEnum()) return false;
+ if (clazz.isInterface()) return false;
+ if (clazz.isPrimitive()) return false;
+ if (Modifier.isAbstract(clazz.getModifiers())) return false;
+ if (Modifier.isFinal(clazz.getModifiers())) return false;
- if (localbeans.contains(clazz.getName())) {
- return true;
- }
- }
-
- return false;
+ return true;
+// // This limits @LocalBean references to things in the same module
+// DeploymentModule module = getModule();
+// if (module instanceof EjbModule) {
+// Set<String> localbeans = new HashSet<String>();
+// EjbModule ejbModule = (EjbModule) module;
+// for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
+// if (bean instanceof SessionBean) {
+// if (((SessionBean) bean).getLocalBean() != null) {
+// localbeans.add(bean.getEjbClass());
+// }
+// }
+// }
+//
+// if (localbeans.contains(clazz.getName())) {
+// return true;
+// }
+// }
+//
+// return false;
}
private boolean isValidEjbInterface(String b, Class clazz, String refName) {
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Mon Oct 4 11:14:30 2010
@@ -406,7 +406,11 @@ public class ConfigurationFactory implem
}
- return sys;
+ final OpenEjbConfiguration finished = sys;
+ sys = null;
+ openejb = null;
+ return finished;
+// return sys;
}
public ContainerInfo createContainerInfo(Container container) throws OpenEJBException {
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java Mon Oct 4 11:14:30 2010
@@ -429,7 +429,7 @@ public class JndiEncInfoBuilder {
private EnterpriseBeanInfo getInterfaceBeanInfo(String moduleId, String interfaceClassName) {
List<EjbJarInfo> ejbJars = appInfo.ejbJars;
for (EjbJarInfo ejbJar : ejbJars) {
- if (!ejbJar.moduleId.equals(moduleId)) continue;
+// if (!ejbJar.moduleId.equals(moduleId)) continue;
List<EnterpriseBeanInfo> enterpriseBeans = ejbJar.enterpriseBeans;
for (EnterpriseBeanInfo enterpriseBean : enterpriseBeans) {
Copied: openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java (from r1004172, openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java)
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java?p2=openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java&p1=openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java&r1=1004172&r2=1004198&rev=1004198&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java Mon Oct 4 11:14:30 2010
@@ -16,7 +16,7 @@
*/
package org.apache.openejb.junit;
-import org.apache.openejb.BeanContext;
+import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.InjectionProcessor;
import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.Assembler;
@@ -25,11 +25,11 @@ import org.apache.openejb.config.Configu
import org.apache.openejb.config.ConnectorModule;
import org.apache.openejb.config.EjbModule;
import org.apache.openejb.config.PersistenceModule;
+import org.apache.openejb.core.CoreDeploymentInfo;
import org.apache.openejb.core.Operation;
import org.apache.openejb.core.ThreadContext;
import org.apache.openejb.core.ivm.naming.InitContextFactory;
import org.apache.openejb.jee.Application;
-import org.apache.openejb.jee.Beans;
import org.apache.openejb.jee.Connector;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.EnterpriseBean;
@@ -40,19 +40,17 @@ import org.apache.openejb.jee.oejb3.Open
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.Join;
-import org.junit.rules.MethodRule;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.Statement;
import org.junit.runners.model.TestClass;
+import javax.naming.Context;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-import static org.apache.openejb.config.DeploymentsResolver.DEPLOYMENTS_CLASSPATH_PROPERTY;
-
/**
* @version $Rev$ $Date$
*/
@@ -85,7 +83,7 @@ public class ApplicationComposer extends
int appModules = 0;
int modules = 0;
- Class[] moduleTypes = {EjbJar.class, EnterpriseBean.class, Persistence.class, Connector.class, Beans.class, Application.class};
+ Class[] moduleTypes = {EjbJar.class, EnterpriseBean.class, Persistence.class, Connector.class};
for (FrameworkMethod method : testClass.getAnnotatedMethods(Module.class)) {
modules++;
@@ -125,14 +123,10 @@ public class ApplicationComposer extends
}
@Override
- protected List<MethodRule> rules(Object test) {
- final List<MethodRule> rules = super.rules(test);
- rules.add(new MethodRule(){
- public Statement apply(Statement base, FrameworkMethod method, Object target) {
- return new DeployApplication(target, base);
- }
- });
- return rules;
+ protected Statement withAfters(FrameworkMethod method, Object target, Statement statement) {
+ statement = super.withAfters(method, target, statement);
+ statement = new DeployApplication(target, statement);
+ return statement;
}
public class DeployApplication extends Statement {
@@ -184,39 +178,19 @@ public class ApplicationComposer extends
ejbJar.addEnterpriseBean(bean);
appModule.getEjbModules().add(new EjbModule(ejbJar));
- } else if (obj instanceof Application) {
-
- application = (Application) obj;
-
} else if (obj instanceof Connector) {
final Connector connector = (Connector) obj;
- appModule.getConnectorModules().add(new ConnectorModule(connector));
+ appModule.getResourceModules().add(new ConnectorModule(connector));
} else if (obj instanceof Persistence) {
final Persistence persistence = (Persistence) obj;
appModule.getPersistenceModules().add(new PersistenceModule("", persistence));
- } else if (obj instanceof Beans) {
-
- final Beans beans = (Beans) obj;
- final EjbModule ejbModule = new EjbModule(new EjbJar());
- ejbModule.setBeans(beans);
- appModule.getEjbModules().add(ejbModule);
}
}
- // Application is final in AppModule, which is fine, so we'll create a new one and move everything
- if (application != null) {
- final AppModule newModule = new AppModule(appModule.getClassLoader(), appModule.getModuleId(), application, false);
- newModule.getClientModules().addAll(appModule.getClientModules());
- newModule.getPersistenceModules().addAll(appModule.getPersistenceModules());
- newModule.getEjbModules().addAll(appModule.getEjbModules());
- newModule.getConnectorModules().addAll(appModule.getConnectorModules());
- appModule = newModule;
- }
-
// For the moment we just take the first @Configuration method
// maybe later we can add something fancy to allow multiple configurations using a qualifier
// as a sort of altDD/altConfig concept. Say for example the altDD prefix might be "foo",
@@ -226,7 +200,7 @@ public class ApplicationComposer extends
// anyway, one thing at a time ....
final Properties configuration = new Properties();
- configuration.put(DEPLOYMENTS_CLASSPATH_PROPERTY, "false");
+ configuration.put("openejb.deployments.classpath", "false");
final List<FrameworkMethod> methods = testClass.getAnnotatedMethods(Configuration.class);
for (FrameworkMethod method : methods) {
@@ -255,9 +229,11 @@ public class ApplicationComposer extends
try {
final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
- final BeanContext context = containerSystem.getBeanContext(javaClass.getName());
+ final CoreDeploymentInfo context = (CoreDeploymentInfo) containerSystem.getDeploymentInfo(javaClass.getName());
- InjectionProcessor processor = new InjectionProcessor(testInstance, context.getInjections(), context.getJndiContext());
+ Context jndi = (Context) context.getJndiEnc().lookup("comp/env");
+
+ InjectionProcessor processor = new InjectionProcessor(testInstance, context.getInjections(), jndi);
processor.createInstance();
@@ -271,7 +247,7 @@ public class ApplicationComposer extends
}
} finally {
- assembler.destroyApplication(appInfo.path);
+ assembler.destroyApplication(appInfo.jarPath);
}
} finally {
SystemInstance.reset();
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java Mon Oct 4 11:14:30 2010
@@ -54,16 +54,16 @@ public class DependenceValidationTest ex
// Nothing may depend on the Assembler except the config code
String dynamicAssembler = "org.apache.openejb.assembler.dynamic";
- assertNotDependentOn("org.apache.openejb", "org.apache.openejb.assembler.classic", "org.apache.openejb.assembler", "org.apache.openejb.config", "org.apache.openejb.assembler.dynamic", "org.apache.openejb.assembler.classic.cmd");
+ assertNotDependentOn("org.apache.openejb", "org.apache.openejb.assembler.classic", "org.apache.openejb.assembler", "org.apache.openejb.config", "org.apache.openejb.assembler.dynamic", "org.apache.openejb.assembler.classic.cmd", "org.apache.openejb.cdi", "org.apache.openejb.junit");
// Nothing may depend on the Dynamic Assembler
assertNotDependentOn("org.apache.openejb", dynamicAssembler);
// Nothing may depend on the JAXB Tree except the Config code
- assertNotDependentOn("org.apache.openejb", "org.apache.openejb.jee", "org.apache.openejb.config", "org.apache.openejb.config.rules", "org.apache.openejb.config.sys");
+ assertNotDependentOn("org.apache.openejb", "org.apache.openejb.jee", "org.apache.openejb.config", "org.apache.openejb.config.rules", "org.apache.openejb.config.sys", "org.apache.openejb.cdi", "org.apache.openejb.junit");
// Nothing may depend on the Config code except it's subpackages
- assertNotDependentOn("org.apache.openejb", "org.apache.openejb.config", "org.apache.openejb.config.rules", "org.apache.openejb.config.sys", "org.apache.openejb.assembler", dynamicAssembler);
+ assertNotDependentOn("org.apache.openejb", "org.apache.openejb.config", "org.apache.openejb.config.rules", "org.apache.openejb.config.sys", "org.apache.openejb.assembler", "org.apache.openejb.cdi", "org.apache.openejb.junit", dynamicAssembler);
// The assembler may not be dependent on the config factory Implementation
assertNotDependentOn("org.apache.openejb.assembler.classic", "org.apache.openejb.config");
Propchange: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 4 11:14:30 2010
@@ -1,2 +1,2 @@
/openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
-/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030
+/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidEjbRefTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidEjbRefTest.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidEjbRefTest.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidEjbRefTest.java Mon Oct 4 11:14:30 2010
@@ -17,6 +17,7 @@
package org.apache.openejb.config.rules;
import junit.framework.TestCase;
+import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.assembler.classic.ContainerSystemInfo;
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
import org.apache.openejb.config.ConfigurationFactory;
@@ -40,8 +41,6 @@ import java.util.List;
*/
public class InvalidEjbRefTest extends TestCase {
- private ConfigurationFactory config;
-
public void test() throws Exception {
EjbJar ejbJar = new EjbJar();
@@ -63,10 +62,12 @@ public class InvalidEjbRefTest extends T
List<String> expectedKeys = new ArrayList<String>();
expectedKeys.add("ann.ejb.ejbObject");
expectedKeys.add("ann.ejb.ejbLocalObject");
- expectedKeys.add("ann.ejb.beanClass");
- expectedKeys.add("ann.ejb.notInterface");
+// expectedKeys.add("ann.ejb.beanClass");
+// expectedKeys.add("ann.ejb.notInterface");
try {
+ Assembler assembler = new Assembler();
+ ConfigurationFactory config = new ConfigurationFactory();
config.configureApplication(ejbJar);
fail("A ValidationFailedException should have been thrown");
} catch (ValidationFailedException e) {
@@ -74,12 +75,12 @@ public class InvalidEjbRefTest extends T
}
}
- public void setUp() throws Exception {
- config = new ConfigurationFactory(true);
- ContainerSystemInfo containerSystem = config.getOpenEjbConfiguration().containerSystem;
- containerSystem.containers.add(config.configureService(StatelessSessionContainerInfo.class));
- }
-
+// public void setUp() throws Exception {
+// config = new ConfigurationFactory(true);
+// ContainerSystemInfo containerSystem = config.getOpenEjbConfiguration().containerSystem;
+// containerSystem.containers.add(config.configureService(StatelessSessionContainerInfo.class));
+// }
+//
public static class EjbRefBean implements EjbRefBeanLocal {
// valid because fooBean will be a LocalBean (because it has no interfaces)
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidInterfacesTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidInterfacesTest.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidInterfacesTest.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/rules/InvalidInterfacesTest.java Mon Oct 4 11:14:30 2010
@@ -18,6 +18,7 @@ package org.apache.openejb.config.rules;
import static org.apache.openejb.util.Join.join;
import junit.framework.TestCase;
+import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.assembler.classic.ContainerSystemInfo;
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
import org.apache.openejb.config.ConfigurationFactory;
@@ -54,6 +55,8 @@ public class InvalidInterfacesTest exten
bean.addBusinessRemote(FooRemote.class.getName());
try {
+ Assembler assembler = new Assembler();
+ ConfigurationFactory config = new ConfigurationFactory();
config.configureApplication(ejbJar);
} catch (ValidationFailedException e) {
for (ValidationFailure failure : e.getFailures()) {
@@ -189,9 +192,8 @@ public class InvalidInterfacesTest exten
}
public void setUp() throws Exception {
- config = new ConfigurationFactory(true);
- ContainerSystemInfo containerSystem = config.getOpenEjbConfiguration().containerSystem;
- containerSystem.containers.add(config.configureService(StatelessSessionContainerInfo.class));
+ Assembler assembler = new Assembler();
+ config = new ConfigurationFactory();
}
public static class FooBean {
Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java?rev=1004198&r1=1004197&r2=1004198&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java Mon Oct 4 11:14:30 2010
@@ -18,41 +18,46 @@
package org.apache.openejb.core.stateless;
import junit.framework.TestCase;
-import org.apache.openejb.assembler.classic.*;
-import org.apache.openejb.assembler.classic.cmd.Info2Properties;
-import org.apache.openejb.config.ConfigurationFactory;
-import org.apache.openejb.core.ivm.naming.InitContextFactory;
-import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.EmptyType;
import org.apache.openejb.jee.StatelessBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Configuration;
+import org.apache.openejb.junit.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import javax.ejb.EJB;
import javax.ejb.SessionContext;
-import javax.naming.InitialContext;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Properties;
import java.util.Stack;
/**
* @version $Revision$ $Date$
*/
+@RunWith(ApplicationComposer.class)
public class StatelessContainerTest extends TestCase {
+ @EJB
+ private WidgetBean localBean;
+
+ @EJB
+ private Widget local;
+
+ @EJB
+ private RemoteWidget remote;
+
+ @Test
public void testPojoStyleBean() throws Exception {
List expected = Arrays.asList(Lifecycle.values());
- InitialContext ctx = new InitialContext();
{
WidgetBean.lifecycle.clear();
- Object object = ctx.lookup("WidgetBeanLocal");
-
- assertTrue("instanceof widget", object instanceof Widget);
-
- Widget widget = (Widget) object;
-
// Do a business method...
- Stack<Lifecycle> lifecycle = widget.getLifecycle();
+ Stack<Lifecycle> lifecycle = local.getLifecycle();
assertNotNull("lifecycle", lifecycle);
assertSame("lifecycle", lifecycle, WidgetBean.lifecycle);
@@ -62,20 +67,13 @@ public class StatelessContainerTest exte
{
WidgetBean.lifecycle.clear();
- Object object = ctx.lookup("WidgetBeanLocalBean");
-
- assertTrue("instanceof widgetbean", object instanceof WidgetBean);
-
- WidgetBean widget = (WidgetBean) object;
-
// Do a business method...
- Stack<Lifecycle> lifecycle = widget.getLifecycle();
+ Stack<Lifecycle> lifecycle = localBean.getLifecycle();
assertNotNull("lifecycle", lifecycle);
assertSame("lifecycle", lifecycle, WidgetBean.lifecycle);
// Check the lifecycle of the bean
List localBeanExpected = new ArrayList();
- localBeanExpected.add(0, Lifecycle.CONSTRUCTOR);
localBeanExpected.addAll(expected);
assertEquals(join("\n", localBeanExpected), join("\n", lifecycle));
}
@@ -83,57 +81,38 @@ public class StatelessContainerTest exte
WidgetBean.lifecycle.clear();
- Object object = ctx.lookup("WidgetBeanRemote");
-
- assertTrue("instanceof widget", object instanceof RemoteWidget);
-
- RemoteWidget remoteWidget = (RemoteWidget) object;
-
// Do a business method...
- Stack<Lifecycle> lifecycle = remoteWidget.getLifecycle();
+ Stack<Lifecycle> lifecycle = remote.getLifecycle();
assertNotNull("lifecycle", lifecycle);
assertNotSame("lifecycle", lifecycle, WidgetBean.lifecycle);
// Check the lifecycle of the bean
assertEquals(join("\n", expected), join("\n", lifecycle));
}
-
- Info2Properties.printLocalConfig();
}
- protected void setUp() throws Exception {
- super.setUp();
-
- System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
-
- ConfigurationFactory config = new ConfigurationFactory();
- Assembler assembler = new Assembler();
+ @Configuration
+ public Properties config() {
+ final Properties properties = new Properties();
+ properties.put("statelessContainer", "new://Container?type=STATELESS");
+ properties.put("statelessContainer.TimeOut", "10");
+ properties.put("statelessContainer.MaxSize", "0");
+ properties.put("statelessContainer.StrictPooling", "false");
- assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
- assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
- assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
-
- // containers
- StatelessSessionContainerInfo statelessContainerInfo = config.configureService(StatelessSessionContainerInfo.class);
- statelessContainerInfo.properties.setProperty("TimeOut", "10");
- statelessContainerInfo.properties.setProperty("MaxSize", "0");
- statelessContainerInfo.properties.setProperty("StrictPooling", "false");
- assembler.createContainer(statelessContainerInfo);
+ return properties;
+ }
- // Setup the descriptor information
+ @Module
+ public StatelessBean app() throws Exception {
- StatelessBean bean = new StatelessBean(WidgetBean.class);
+ final StatelessBean bean = new StatelessBean(WidgetBean.class);
bean.addBusinessLocal(Widget.class.getName());
bean.addBusinessRemote(RemoteWidget.class.getName());
bean.addPostConstruct("init");
bean.addPreDestroy("destroy");
bean.setLocalBean(new EmptyType());
- EjbJar ejbJar = new EjbJar();
- ejbJar.addEnterpriseBean(bean);
-
- assembler.createApplication(config.configureApplication(ejbJar));
-
+ return bean;
}
private static String join(String delimeter, List items) {