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

Reply via email to