Surefire might be picking up the wrong provider if TestNG is on the classpath.
I haven't looked, what version of maven-surefire-plugin are you using? -Stephen On 1 September 2010 18:20, Jarek Gawor <[email protected]> wrote: > David, > > Something weird is going on with the openejb-core tests after the merge: > > Running TestSuite > Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.332 sec > Running TestSuite > Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.294 sec > ... > > I can get the tests running again after doing rm -rf > src/test/java/org/apache/openejb/cdi/tck and commenting out last two > dependencies in the pom.xml. > > I'm not 100% sure but this might be happening because the existing > tests use JUnit while the JCDI tck uses TestNG. > > Jarek > > On Wed, Sep 1, 2010 at 2:54 AM, <[email protected]> wrote: > > Author: dblevins > > Date: Wed Sep 1 06:54:57 2010 > > New Revision: 991445 > > > > URL: http://svn.apache.org/viewvc?rev=991445&view=rev > > Log: > > Merge of the current JCDI integration code > > > > Added: > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java > > - copied unchanged from r987963, > openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ > > - copied from r987963, > openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/ > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java > > - copied, changed from r990929, > openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/services/org.apache.webbeans.spi.plugins.OpenWebBeansPlugin > > - copied unchanged from r987963, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/services/org.apache.webbeans.spi.plugins.OpenWebBeansPlugin > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ > > - copied from r987963, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/ > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ > > - copied from r987973, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java > > - copied unchanged from r990929, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java > > - copied unchanged from r990929, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java > > > > openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties > > - copied unchanged from r990929, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties > > > > openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/services/ > > - copied from r987963, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/services/ > > > > openejb/trunk/openejb3/container/openejb-core/src/test/resources/cdi-suite.xml > > - copied unchanged from r990929, > openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml > > > > openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java > > - copied unchanged from r987963, > openejb/branches/openejb-jcdi/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java > > Removed: > > > > openejb/trunk/openejb3/container/openejb-core/src/test/resources/META-INF/services/org.apache.webbeans.spi.plugins.OpenWebBeansPlugin > > Modified: > > 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/assembler/classic/EjbJarInfo.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/AppContext.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/MethodContext.java > > > > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/InterceptorData.java > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/CdiDecoratorTest.java > > > > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/Key.java > > > > Modified: openejb/trunk/openejb3/container/openejb-core/pom.xml > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/pom.xml?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- openejb/trunk/openejb3/container/openejb-core/pom.xml (original) > > +++ openejb/trunk/openejb3/container/openejb-core/pom.xml Wed Sep 1 > 06:54:57 2010 > > @@ -362,11 +362,55 @@ > > <scope>test</scope> > > </dependency> > > <dependency> > > - <groupId>org.codehaus.swizzle</groupId> > > - <artifactId>swizzle-confluence</artifactId> > > - <version>1.1</version> > > - <type>jar</type> > > - <scope>test</scope> > > + <groupId>org.codehaus.swizzle</groupId> > > + <artifactId>swizzle-confluence</artifactId> > > + <version>1.1</version> > > + <type>jar</type> > > + <scope>test</scope> > > + </dependency> > > + <dependency> > > + <groupId>org.apache.openwebbeans</groupId> > > + <artifactId>openwebbeans-impl</artifactId> > > + <version>1.0.0-SNAPSHOT</version> > > + </dependency> > > + <dependency> > > + <groupId>org.apache.openwebbeans</groupId> > > + <artifactId>openwebbeans-spi</artifactId> > > + <version>1.0.0-SNAPSHOT</version> > > + </dependency> > > + <dependency> > > + <groupId>org.apache.openwebbeans</groupId> > > + <artifactId>openwebbeans-ejb-common</artifactId> > > + <version>1.0.0-SNAPSHOT</version> > > + </dependency> > > + <dependency> > > + <groupId>org.apache.openwebbeans</groupId> > > + <artifactId>openwebbeans-ee</artifactId> > > + <version>1.0.0-SNAPSHOT</version> > > + </dependency> > > + <dependency> > > + <groupId>javax.inject</groupId> > > + <artifactId>javax.inject-tck</artifactId> > > + <version>1</version> > > + <scope>test</scope> > > + <exclusions> > > + <exclusion> > > + <groupId>javax.inject</groupId> > > + <artifactId>javax.inject</artifactId> > > + </exclusion> > > + </exclusions> > > + </dependency> > > + <dependency> > > + <groupId>org.jboss.jsr299.tck</groupId> > > + <artifactId>jsr299-tck-impl</artifactId> > > + <version>1.0.2.CR1</version> > > + <scope>test</scope> > > + </dependency> > > + <dependency> > > + <groupId>org.jboss.test-harness</groupId> > > + <artifactId>jboss-test-harness</artifactId> > > + <version>1.1.0-CR5</version> > > + <scope>test</scope> > > </dependency> > > </dependencies> > > <profiles> > > > > 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=991445&r1=991444&r2=991445&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 > Wed Sep 1 06:54:57 2010 > > @@ -68,6 +68,7 @@ import org.apache.openejb.NoSuchApplicat > > import org.apache.openejb.OpenEJB; > > import org.apache.openejb.OpenEJBException; > > import org.apache.openejb.UndeployException; > > +import org.apache.openejb.cdi.CdiBuilder; > > import org.apache.openejb.core.AppContext; > > import org.apache.openejb.core.ConnectorReference; > > import org.apache.openejb.core.CoreContainerSystem; > > @@ -641,6 +642,9 @@ public class Assembler extends Assembler > > > > allDeployments = sort(allDeployments); > > > > + CdiBuilder cdiBuilder = new CdiBuilder(appInfo, appContext); > > + cdiBuilder.build(allDeployments); > > + > > // now that everything is configured, deploy to the container > > if (start) { > > for (DeploymentInfo deployment : allDeployments) { > > @@ -660,7 +664,7 @@ public class Assembler extends Assembler > > List<Injection> injections = > injectionBuilder.buildInjections(clientInfo.jndiEnc); > > > > // build the enc > > - JndiEncBuilder jndiEncBuilder = new > JndiEncBuilder(clientInfo.jndiEnc, injections, "Bean", clientInfo.moduleId, > classLoader); > > + JndiEncBuilder jndiEncBuilder = new > JndiEncBuilder(clientInfo.jndiEnc, injections, "Bean", clientInfo.moduleId, > classLoader, appContext); > > // if there is at least a remote client classes > > // or if there is no local client classes > > // then, we can set the client flag > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java > Wed Sep 1 06:54:57 2010 > > @@ -40,4 +40,6 @@ public class EjbJarInfo extends InfoObje > > public final List<PortInfo> portInfos = new ArrayList<PortInfo>(); > > public final Set<String> watchedResources = new TreeSet<String>(); > > public final JndiEncInfo moduleJndiEnc = new JndiEncInfo(); > > + > > + public BeansInfo beans; > > } > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java > Wed Sep 1 06:54:57 2010 > > @@ -137,7 +137,7 @@ class EnterpriseBeanBuilder { > > } > > > > // build the enc > > - JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(bean.jndiEnc, > injections, transactionType, moduleContext.getId(), > moduleContext.getClassLoader()); > > + JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(bean.jndiEnc, > injections, transactionType, moduleContext.getId(), > moduleContext.getClassLoader(), moduleContext.getAppContext()); > > Context compJndiContext = > jndiEncBuilder.build(JndiEncBuilder.JndiScope.comp); > > bind(compJndiContext, "module", > moduleContext.getModuleJndiContext()); > > bind(compJndiContext, "app", > moduleContext.getAppContext().getAppJndiContext()); > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java > Wed Sep 1 06:54:57 2010 > > @@ -19,6 +19,7 @@ package org.apache.openejb.assembler.cla > > import org.apache.openejb.Injection; > > import org.apache.openejb.OpenEJBException; > > import org.apache.openejb.InterfaceType; > > +import org.apache.openejb.core.AppContext; > > import org.apache.openejb.spi.ContainerSystem; > > import org.apache.openejb.core.CoreUserTransaction; > > import > org.apache.openejb.core.TransactionSynchronizationRegistryWrapper; > > @@ -90,17 +91,19 @@ public class JndiEncBuilder { > > private final URI moduleUri; > > private final List<Injection> injections; > > private final ClassLoader classLoader; > > - > > + private final AppContext appContext; > > + > > private boolean useCrossClassLoaderRef = true; > > private boolean client = false; > > > > public JndiEncBuilder(JndiEncInfo jndiEnc, List<Injection> > injections, String moduleId, ClassLoader classLoader) throws > OpenEJBException { > > - this(jndiEnc, injections, null, moduleId, classLoader); > > + this(jndiEnc, injections, null, moduleId, classLoader, null); > > } > > > > - public JndiEncBuilder(JndiEncInfo jndiEnc, List<Injection> > injections, String transactionType, String moduleId, ClassLoader > classLoader) throws OpenEJBException { > > + public JndiEncBuilder(JndiEncInfo jndiEnc, List<Injection> > injections, String transactionType, String moduleId, ClassLoader > classLoader, AppContext appContext) throws OpenEJBException { > > this.jndiEnc = jndiEnc; > > this.injections = injections; > > + this.appContext = appContext; > > beanManagedTransactions = transactionType != null && > transactionType.equalsIgnoreCase("Bean"); > > > > try { > > > > Copied: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java > (from r990929, > openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java) > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java?p2=openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java&p1=openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java&r1=990929&r2=991445&rev=991445&view=diff > > > ============================================================================== > > --- > openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java > Wed Sep 1 06:54:57 2010 > > @@ -303,6 +303,7 @@ public class CdiBuilder { > > } > > > > private Class load(String className, String type) throws > OpenEJBException { > > + System.out.println("cdi.load = " + className); > > try { > > return classLoader.loadClass(className); > > } catch (ClassNotFoundException e) { > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java?rev=991445&r1=987963&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java > Wed Sep 1 06:54:57 2010 > > @@ -16,6 +16,7 @@ > > */ > > package org.apache.openejb.cdi; > > > > +import org.apache.openejb.BeanType; > > import org.apache.openejb.DeploymentInfo; > > import org.apache.openejb.assembler.classic.ProxyInterfaceResolver; > > import org.apache.webbeans.ejb.common.component.BaseEjbBean; > > @@ -31,7 +32,7 @@ public class CdiEjbBean<T> extends BaseE > > private final DeploymentInfo deploymentInfo; > > > > public CdiEjbBean(DeploymentInfo deploymentInfo) { > > - super(deploymentInfo.getBeanClass()); > > + super(deploymentInfo.getBeanClass(), > toSessionType(deploymentInfo.getComponentType())); > > this.deploymentInfo = deploymentInfo; > > } > > > > @@ -39,23 +40,17 @@ public class CdiEjbBean<T> extends BaseE > > return this.deploymentInfo; > > } > > > > - @Override > > - public void setEjbType(SessionBeanType type) { > > - throw new IllegalStateException("The SessionBeanType cannot be > changed"); > > - } > > - > > - @Override > > - public SessionBeanType getEjbType() { > > - switch (deploymentInfo.getComponentType()) { > > - case SINGLETON: > > - return SessionBeanType.SINGLETON; > > - case STATELESS: > > - return SessionBeanType.STATELESS; > > - case STATEFUL: > > - case MANAGED: > > - return SessionBeanType.STATEFUL; > > - default: > > - throw new IllegalStateException("Unknown Session > BeanType " + deploymentInfo.getComponentType()); > > + private static SessionBeanType toSessionType(BeanType beanType) { > > + switch (beanType) { > > + case SINGLETON: > > + return SessionBeanType.SINGLETON; > > + case STATELESS: > > + return SessionBeanType.STATELESS; > > + case STATEFUL: > > + case MANAGED: > > + return SessionBeanType.STATEFUL; > > + default: > > + throw new IllegalStateException("Unknown Session BeanType " > + beanType); > > } > > } > > > > @@ -68,8 +63,11 @@ public class CdiEjbBean<T> extends BaseE > > @SuppressWarnings("unchecked") > > protected T getInstance(CreationalContext<T> creationalContext) { > > > > - List<Class> interfaces = > ProxyInterfaceResolver.getInterfaces(deploymentInfo.getBeanClass(), iface, > deploymentInfo.getBusinessLocalInterfaces()); > > - DeploymentInfo.BusinessLocalHome home = > deploymentInfo.getBusinessLocalHome(interfaces); > > + final List<Class> classes = > deploymentInfo.getBusinessLocalInterfaces(); > > + final Class mainInterface = classes.get(0); > > + > > + List<Class> interfaces = > ProxyInterfaceResolver.getInterfaces(deploymentInfo.getBeanClass(), > mainInterface, classes); > > + DeploymentInfo.BusinessLocalHome home = > deploymentInfo.getBusinessLocalHome(interfaces, mainInterface); > > > > return (T) home.create(); > > } > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java?rev=991445&r1=987963&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java > Wed Sep 1 06:54:57 2010 > > @@ -171,7 +171,7 @@ public class CdiPlugin extends AbstractO > > final List<Class> localInterfaces = > deployment.getBusinessLocalInterfaces(); > > > > List<Class> interfaces = > ProxyInterfaceResolver.getInterfaces(beanClass, interfce, localInterfaces); > > - DeploymentInfo.BusinessLocalHome home = > deployment.getBusinessLocalHome(interfaces); > > + DeploymentInfo.BusinessLocalHome home = > deployment.getBusinessLocalHome(interfaces, interfaces.get(0)); > > return home.create(); > > > > // try { > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java?rev=991445&r1=987963&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiResourceInjectionService.java > Wed Sep 1 06:54:57 2010 > > @@ -73,14 +73,15 @@ public class CdiResourceInjectionService > > deployer.deploy(cdiInfo); > > > > JndiEncInfoBuilder infoBuilder = new > JndiEncInfoBuilder(appModule); > > - JndiEncInfo encInfo = infoBuilder.build(cdiInfo, > cdiInfo.getBeanName(), appModule.jarPath); > > + JndiEncInfo encInfo = new JndiEncInfo(); > > + infoBuilder.build(cdiInfo, cdiInfo.getBeanName(), > appModule.path, null, encInfo); > > > > InjectionBuilder builder = new InjectionBuilder(classLoader); > > List<Injection> injections = > builder.buildInjections(encInfo); > > > > cdiInfo.setInjections(injections); > > - JndiEncBuilder encBuilder = new JndiEncBuilder(encInfo, > injections, appModule.jarPath, classLoader); > > - this.contexts.put(cdiInfo, encBuilder.build()); > > + JndiEncBuilder encBuilder = new JndiEncBuilder(encInfo, > injections, appModule.path, classLoader); > > + this.contexts.put(cdiInfo, > encBuilder.build(JndiEncBuilder.JndiScope.comp)); > > } > > } > > > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java > Wed Sep 1 06:54:57 2010 > > @@ -102,6 +102,7 @@ import org.apache.openejb.DeploymentInfo > > import org.apache.openejb.OpenEJBException; > > import org.apache.openejb.api.LocalClient; > > import org.apache.openejb.api.RemoteClient; > > +import org.apache.openejb.cdi.CdiBeanInfo; > > import org.apache.openejb.core.webservices.JaxWsUtils; > > import org.apache.openejb.jee.ActivationConfig; > > import org.apache.openejb.jee.ApplicationClient; > > @@ -235,6 +236,12 @@ public class AnnotationDeployer implemen > > } > > } > > > > + // TODO Remove this section. It's called by some code in the > assembler. > > + // The scanning portion should be completed prior to this point > > + public void deploy(CdiBeanInfo beanInfo) throws OpenEJBException{ > > + this.processAnnotatedBeans.deploy(beanInfo); > > + } > > + > > public WebModule deploy(WebModule webModule) throws OpenEJBException > { > > setModule(webModule); > > try { > > @@ -654,6 +661,22 @@ public class AnnotationDeployer implemen > > > > public static final String STRICT_INTERFACE_DECLARATION = > "openejb.strict.interface.declaration"; > > > > + public void deploy(CdiBeanInfo beanInfo) throws > OpenEJBException{ > > + > > + ClassFinder inheritedClassFinder = > createInheritedClassFinder(beanInfo.getBeanClass()); > > + /* > > + * @EJB > > + * @Resource > > + * @WebServiceRef > > + * @PersistenceUnit > > + * @PersistenceContext > > + */ > > + buildAnnotatedRefs(beanInfo, inheritedClassFinder, > beanInfo.getClassLoader()); > > + > > + processWebServiceClientHandlers(beanInfo, > beanInfo.getClassLoader()); > > + > > + } > > + > > public AppModule deploy(AppModule appModule) throws > OpenEJBException { > > for (EjbModule ejbModule : appModule.getEjbModules()) { > > setModule(ejbModule); > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java > Wed Sep 1 06:54:57 2010 > > @@ -28,6 +28,7 @@ import java.util.Map; > > > > import org.apache.openejb.OpenEJBException; > > import org.apache.openejb.assembler.classic.ApplicationExceptionInfo; > > +import org.apache.openejb.assembler.classic.BeansInfo; > > import org.apache.openejb.assembler.classic.CallbackInfo; > > import org.apache.openejb.assembler.classic.CmrFieldInfo; > > import org.apache.openejb.assembler.classic.EjbJarInfo; > > @@ -195,6 +196,15 @@ public class EjbJarInfoBuilder { > > initRelationships(jar, infos); > > } > > > > + if (jar.getBeans() != null) { > > + ejbJar.beans = new BeansInfo(); > > + > ejbJar.beans.interceptors.addAll(jar.getBeans().getInterceptors()); > > + > ejbJar.beans.decorators.addAll(jar.getBeans().getDecorators()); > > + > > ejbJar.beans.alternativeClasses.addAll(jar.getBeans().getAlternativeClasses()); > > + > > ejbJar.beans.alternativeStereotypes.addAll(jar.getBeans().getAlternativeStereotypes()); > > + > ejbJar.beans.managedClasses.addAll(jar.getBeans().getManagedClasses()); > > + } > > + > > return ejbJar; > > } > > > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java > Wed Sep 1 06:54:57 2010 > > @@ -17,6 +17,7 @@ > > */ > > package org.apache.openejb.config; > > > > +import org.apache.openejb.jee.Beans; > > import org.apache.openejb.jee.EjbJar; > > import org.apache.openejb.jee.Webservices; > > import org.apache.openejb.jee.oejb3.OpenejbJar; > > @@ -48,6 +49,7 @@ public class EjbModule implements WsModu > > private final AtomicReference<AbstractFinder> finder = new > AtomicReference<AbstractFinder>(); > > private final Map<String,Object> altDDs = new > HashMap<String,Object>(); > > private final Set<String> watchedResources = new TreeSet<String>(); > > + private Beans beans; > > > > private ClientModule clientModule; > > > > @@ -99,6 +101,14 @@ public class EjbModule implements WsModu > > this(classLoader, null, jarURI, ejbJar, openejbJar); > > } > > > > + public Beans getBeans() { > > + return beans; > > + } > > + > > + public void setBeans(Beans beans) { > > + this.beans = beans; > > + } > > + > > public AbstractFinder getFinder() { > > return finder.get(); > > } > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java > Wed Sep 1 06:54:57 2010 > > @@ -19,6 +19,7 @@ package org.apache.openejb.config; > > import org.apache.openejb.OpenEJBException; > > import org.apache.openejb.core.webservices.WsdlResolver; > > import org.apache.openejb.jee.ApplicationClient; > > +import org.apache.openejb.jee.Beans; > > import org.apache.openejb.jee.Connector; > > import org.apache.openejb.jee.Connector10; > > import org.apache.openejb.jee.EjbJar; > > @@ -73,6 +74,10 @@ public class ReadDescriptors implements > > readOpenejbJar(ejbModule); > > } > > > > + if (ejbModule.getBeans() == null) { > > + readBeans(ejbModule, appModule); > > + } > > + > > readCmpOrm(ejbModule); > > } > > > > @@ -256,6 +261,22 @@ public class ReadDescriptors implements > > } > > } > > > > + private void readBeans(EjbModule ejbModule, AppModule appModule) > throws OpenEJBException { > > + if (ejbModule.getBeans() != null) return; > > + > > + Object data = ejbModule.getAltDDs().get("beans.xml"); > > + if (data instanceof Beans) { > > + ejbModule.setBeans((Beans) data); > > + } else if (data instanceof URL) { > > + URL url = (URL) data; > > + Beans beans = readBeans(url); > > + ejbModule.setBeans(beans); > > + } else { > > + DeploymentLoader.logger.debug("No beans.xml found assuming > annotated beans present: " + appModule.getJarLocation() + ", module: " + > ejbModule.getModuleId()); > > + ejbModule.setBeans(new Beans()); > > + } > > + } > > + > > private void readCmpOrm(EjbModule ejbModule) throws OpenEJBException > { > > Object data = ejbModule.getAltDDs().get("openejb-cmp-orm.xml"); > > if (data == null || data instanceof EntityMappings) { > > @@ -340,6 +361,20 @@ public class ReadDescriptors implements > > } > > } > > > > + public static Beans readBeans(URL url) throws OpenEJBException { > > + try { > > + return (Beans) JaxbJavaee.unmarshalJavaee(Beans.class, > url.openStream()); > > + } catch (SAXException e) { > > + throw new OpenEJBException("Cannot parse the beans.xml file: > " + url.toExternalForm(), e); > > + } catch (JAXBException e) { > > + throw new OpenEJBException("Cannot unmarshall the beans.xml > file: " + url.toExternalForm(), e); > > + } catch (IOException e) { > > + throw new OpenEJBException("Cannot read the beans.xml file: > " + url.toExternalForm(), e); > > + } catch (Exception e) { > > + throw new OpenEJBException("Encountered unknown error > parsing the beans.xml file: " + url.toExternalForm(), e); > > + } > > + } > > + > > private static boolean isEmptyEjbJar(URL url) throws IOException, > ParserConfigurationException, SAXException { > > InputSource inputSource = new InputSource(url.openStream()); > > > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/AppContext.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/AppContext.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/AppContext.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/AppContext.java > Wed Sep 1 06:54:57 2010 > > @@ -20,6 +20,7 @@ import org.apache.openejb.DeploymentInfo > > import org.apache.openejb.loader.SystemInstance; > > import org.apache.openejb.loader.Options; > > > > +import javax.enterprise.inject.spi.BeanManager; > > import javax.naming.Context; > > import java.util.ArrayList; > > import java.util.List; > > @@ -33,6 +34,7 @@ public class AppContext extends Deployme > > private final Context globalJndiContext; > > private final Context appJndiContext; > > private final boolean standaloneModule; > > + private BeanManager beanManager; > > > > // TODO perhaps to be deleted > > private final List<DeploymentInfo> deployments = new > ArrayList<DeploymentInfo>(); > > @@ -46,6 +48,19 @@ public class AppContext extends Deployme > > this.standaloneModule = standaloneModule; > > } > > > > + public BeanManager getBeanManager() { > > + return beanManager; > > + } > > + > > + /** > > + * TODO: Ideally this would be a final field > > + * @param beanManager > > + */ > > + @Deprecated > > + public void setBeanManager(BeanManager beanManager) { > > + this.beanManager = beanManager; > > + } > > + > > @Override > > public String getId() { > > return super.getId(); > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java > Wed Sep 1 06:54:57 2010 > > @@ -61,6 +61,7 @@ import org.apache.openejb.util.Duration; > > import org.apache.openejb.util.Index; > > import org.apache.openejb.util.LogCategory; > > import org.apache.openejb.util.Logger; > > +import org.apache.webbeans.inject.OWBInjector; > > import org.apache.xbean.recipe.ConstructionException; > > > > public class CoreDeploymentInfo extends DeploymentContext implements > org.apache.openejb.DeploymentInfo { > > @@ -699,9 +700,12 @@ public class CoreDeploymentInfo extends > > return systemInterceptors; > > } > > > > + private final Set<InterceptorData> cdiInterceptors = new > LinkedHashSet<InterceptorData>(); > > + > > public List<InterceptorData> getCallbackInterceptors() { > > List<InterceptorData> datas = getInterceptorData(); > > datas.addAll(callbackInterceptors); > > + datas.addAll(cdiInterceptors); > > return datas; > > } > > > > @@ -712,6 +716,16 @@ public class CoreDeploymentInfo extends > > this.instanceScopedInterceptors.addAll(callbackInterceptors); > > } > > > > + public List<InterceptorData> getCdiInterceptors() { > > + return new ArrayList<InterceptorData>(cdiInterceptors); > > + } > > + > > + public void setCdiInterceptors(List<InterceptorData> > cdiInterceptors) { > > + this.cdiInterceptors.clear(); > > + this.cdiInterceptors.addAll(cdiInterceptors); > > + this.instanceScopedInterceptors.addAll(cdiInterceptors); > > + } > > + > > public List<InterceptorData> getMethodInterceptors(Method method) { > > return getMethodContext(method).getInterceptors(); > > } > > @@ -1067,6 +1081,10 @@ public class CoreDeploymentInfo extends > > final InjectionProcessor injectionProcessor = new > InjectionProcessor(beanClass, this.getInjections(), null, null, > org.apache.openejb.InjectionProcessor.unwrap(ctx)); > > final Object bean = injectionProcessor.createInstance(); > > > > + // TODO we likely don't want to create a new one each time > -- investigate the destroy() method > > + OWBInjector beanInjector = new OWBInjector(); > > + beanInjector.inject(bean); > > + > > // Create interceptors > > final HashMap<String, Object> interceptorInstances = new > HashMap<String, Object>(); > > > > @@ -1085,6 +1103,11 @@ public class CoreDeploymentInfo extends > > final InjectionProcessor interceptorInjector = new > InjectionProcessor(clazz, this.getInjections(), > org.apache.openejb.InjectionProcessor.unwrap(ctx)); > > try { > > final Object interceptorInstance = > interceptorInjector.createInstance(); > > + > > + // TODO we likely don't want to create a new one > each time -- investigate the destroy() method > > + OWBInjector interceptorCdiInjector = new > OWBInjector(); > > + interceptorCdiInjector.inject(interceptorInstance); > > + > > interceptorInstances.put(clazz.getName(), > interceptorInstance); > > } catch (ConstructionException e) { > > throw new Exception("Failed to create interceptor: " > + clazz.getName(), e); > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/MethodContext.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/MethodContext.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/MethodContext.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/MethodContext.java > Wed Sep 1 06:54:57 2010 > > @@ -67,6 +67,7 @@ public class MethodContext { > > public List<InterceptorData> getInterceptors() { > > List<InterceptorData> datas = beanContext.getInterceptorData(); > > datas.addAll(interceptors); > > + datas.addAll(beanContext.getCdiInterceptors()); > > return datas; > > } > > > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/InterceptorData.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/InterceptorData.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/InterceptorData.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/InterceptorData.java > Wed Sep 1 06:54:57 2010 > > @@ -148,4 +148,10 @@ public class InterceptorData { > > > > return data; > > } > > + > > + @Override > > + public String toString() { > > + return "InterceptorData{" + > > + "clazz=" + clazz.getSimpleName() + '}'; > > + } > > } > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/DependenceValidationTest.java > Wed Sep 1 06:54:57 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"); > > > > // 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"); > > > > // 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", dynamicAssembler); > > > > // The assembler may not be dependent on the config factory > Implementation > > assertNotDependentOn("org.apache.openejb.assembler.classic", > "org.apache.openejb.config"); > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/CdiDecoratorTest.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/CdiDecoratorTest.java?rev=991445&r1=987963&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/CdiDecoratorTest.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/CdiDecoratorTest.java > Wed Sep 1 06:54:57 2010 > > @@ -33,6 +33,7 @@ import org.junit.Before; > > import javax.annotation.PostConstruct; > > import javax.decorator.Decorator; > > import javax.decorator.Delegate; > > +import javax.ejb.Local; > > import javax.ejb.LocalBean; > > import javax.ejb.Stateless; > > import javax.inject.Inject; > > @@ -120,6 +121,7 @@ public class CdiDecoratorTest extends Te > > private static final List<String> businessMethod = new > ArrayList<String>(); > > private static final List<String> callback = new ArrayList<String>(); > > > > + @Local > > public static interface Color { > > public void hello(); > > } > > > > Modified: > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/Key.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/Key.java?rev=991445&r1=991444&r2=991445&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/Key.java > (original) > > +++ > openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/Key.java > Wed Sep 1 06:54:57 2010 > > @@ -27,5 +27,5 @@ public @interface Key { > > String value(); > > > > int count() default 1; > > - KeyType type() default KeyType.FAILURE; > > + KeyType type(); > > } > > > > > > >
