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