Author: dblevins
Date: Sun Jun 26 01:08:50 2011
New Revision: 1139683

URL: http://svn.apache.org/viewvc?rev=1139683&view=rev
Log:
OPENEJB-1617: Contextual @Stateful session beans
OPENEJB-1589: @ApplicationScoped Session bean dependencies
OPENEJB-1596: To add global jndi name to remote jndi system. (Prune 
openejb/global on undeploy)

Added:
    
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScoped2Test.java
      - copied, changed from r1138648, 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScopedTest.java
    
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ScopedProducerTest.java
    
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SessionScoped2Test.java
Modified:
    
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/cdi/CdiPlugin.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml

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=1139683&r1=1139682&r2=1139683&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
 Sun Jun 26 01:08:50 2011
@@ -1072,6 +1072,7 @@ public class Assembler extends Assembler
                 ivmContext.prune("openejb/Deployment");
                 ivmContext.prune("openejb/local");
                 ivmContext.prune("openejb/remote");
+                ivmContext.prune("openejb/global");
             }
         } catch (NamingException e) {
             undeployException.getCauses().add(new Exception("Unable to prune 
openejb/Deployments and openejb/local namespaces, this could cause future 
deployments to fail.", e));

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=1139683&r1=1139682&r2=1139683&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
 Sun Jun 26 01:08:50 2011
@@ -39,6 +39,8 @@ import org.apache.webbeans.spi.plugins.O
 import org.apache.webbeans.util.WebBeansUtil;
 
 import javax.ejb.Stateful;
+import javax.enterprise.context.spi.Context;
+import javax.enterprise.context.spi.Contextual;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.event.TransactionPhase;
 import javax.enterprise.inject.spi.Bean;
@@ -161,40 +163,15 @@ public class CdiPlugin extends AbstractO
        }
 
        @Override
-       public Object getSessionBeanProxy(Bean<?> bean, Class<?> interfce, 
CreationalContext<?> creationalContext) {
-               final CdiEjbBean ejbBean = (CdiEjbBean) bean;
-               final BeanContext deployment = ejbBean.getBeanContext();
-
-               final Class beanClass = deployment.getBeanClass();
-               final List<Class> localInterfaces = 
deployment.getBusinessLocalInterfaces();
-
-               List<Class> interfaces = 
ProxyInterfaceResolver.getInterfaces(beanClass, interfce == Object.class? null: 
interfce, localInterfaces);
-               BeanContext.BusinessLocalHome home = 
deployment.getBusinessLocalHome(interfaces, interfaces.get(0));
-               return home.create();
-
-               // try {
-               //
-               // ((CdiEjbBean<Object>) bean).setIface(iface);
-               //
-               // Class<?> clazz = 
JavassistProxyFactory.getInstance().getEjbBeanProxyClass((BaseEjbBean<Object>) 
(CdiEjbBean<Object>) bean);
-               //
-               // if (clazz == null) {
-               // ProxyFactory factory = new ProxyFactory();
-               // factory.setInterfaces(new Class[]{(Class<?>) iface});
-               // clazz = 
JavassistProxyFactory.getInstance().defineEjbBeanProxyClass((BaseEjbBean<Object>)
 (CdiEjbBean<Object>) bean, factory);
-               // }
-               //
-               // Object proxyInstance = (Object) ClassUtil.newInstance(clazz);
-               //
-               // EjbBeanProxyHandler handler = new 
EjbBeanProxyHandler((CdiEjbBean<Object>) bean, creationalContext);
-               //
-               // ((ProxyObject) proxyInstance).setHandler(handler);
-               //
-               // return proxyInstance;
-               //
-               // } catch (Exception e) {
-               // throw new WebBeansException(e);
-               // }
+       public Object getSessionBeanProxy(Bean<?> bean, Class<?> interfce, 
CreationalContext<?> creationalContext) {
+
+        final Context context = 
webBeansContext.getBeanManagerImpl().getContext(bean.getScope());
+
+        final CreationalContext<Object> cc = (CreationalContext<Object>) 
creationalContext;
+        final Contextual<Object> component = (Contextual<Object>) bean;
+
+        return context.get(component, cc);
+
        }
 
        @Override

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java?rev=1139683&r1=1139682&r2=1139683&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java
 Sun Jun 26 01:08:50 2011
@@ -17,8 +17,8 @@
 package org.apache.openejb.cdi;
 
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
-import org.apache.webbeans.component.AbstractOwbBean;
 import org.apache.webbeans.component.WebBeansType;
+import org.apache.webbeans.config.DefinitionUtil;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.inject.InjectableConstructor;
 
@@ -36,7 +36,14 @@ public class ConstructorInjectionBean<T>
         super(WebBeansType.DEPENDENT, returnType, webBeansContext);
 
         constructor = 
webBeansContext.getWebBeansUtil().defineConstructor(getReturnType());
-        
webBeansContext.getDefinitionUtil().addConstructorInjectionPointMetaData(this, 
constructor);
+
+        final DefinitionUtil definitionUtil = 
getWebBeansContext().getDefinitionUtil();
+
+        definitionUtil.addConstructorInjectionPointMetaData(this, constructor);
+
+        // these are not used immediately in createInstance()
+//        definitionUtil.defineInjectedFields(this);
+//        definitionUtil.defineInjectedMethods(this);
     }
 
     @Override

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1139683&r1=1139682&r2=1139683&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
 Sun Jun 26 01:08:50 2011
@@ -243,10 +243,6 @@ public class OpenEJBLifecycle implements
                 EjbUtility.fireEvents((Class<Object>) implClass, bean, 
(ProcessAnnotatedTypeImpl<Object>) processAnnotatedEvent);
 
                 
webBeansContext.getWebBeansUtil().setInjectionTargetBeanEnableFlag(bean);
-
-
-//                final BeanManagerImpl manager = 
webBeansContext.getBeanManagerImpl();
-//                manager.addBean(new NewCdiEjbBean<Object>(bean));
             }
 
             //Check Specialization
@@ -276,6 +272,17 @@ public class OpenEJBLifecycle implements
 
             //Fire Event
             deployer.fireAfterDeploymentValidationEvent();
+
+//            for (BeanContext beanContext : stuff.getBeanContexts()) {
+//
+//                final CdiEjbBean<Object> bean = 
beanContext.get(CdiEjbBean.class);;
+//
+//                if (bean == null) continue;
+//
+//                final BeanManagerImpl manager = 
webBeansContext.getBeanManagerImpl();
+//                manager.addBean(new NewCdiEjbBean<Object>(bean));
+//            }
+
         } catch (Exception e1) {
             Assembler.logger.error("CDI Beans module deployment failed", e1);
             throw new RuntimeException(e1);

Copied: 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScoped2Test.java
 (from r1138648, 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScopedTest.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScoped2Test.java?p2=openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScoped2Test.java&p1=openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScopedTest.java&r1=1138648&r2=1139683&rev=1139683&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScopedTest.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ApplicationScoped2Test.java
 Sun Jun 26 01:08:50 2011
@@ -29,7 +29,6 @@ import javax.ejb.Local;
 import javax.ejb.Stateful;
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.context.spi.Context;
-import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.inject.Inject;
@@ -38,7 +37,7 @@ import javax.inject.Inject;
  * @version $Rev$ $Date$
  */
 @RunWith(ApplicationComposer.class)
-public class ApplicationScopedTest extends TestCase {
+public class ApplicationScoped2Test extends TestCase {
 
     @Inject
     private BeanManager beanManager;
@@ -46,22 +45,35 @@ public class ApplicationScopedTest exten
     @Test
     public void test() throws Exception {
 
-        final Context appContext = 
beanManager.getContext(ApplicationScoped.class);
+        final Green green = createAndMutate(Green.class);
 
+        {
+            Green green2 = getInstance(Green.class);
 
+            assertEquals(green.getMessage(), green2.getMessage());
+        }
 
-        final Green green = createAndMutate(appContext, Green.class);
-
-        final Blue blue = createAndMutate(appContext, Blue.class);
+        final Blue blue = createAndMutate(Blue.class);
 
         assertEquals(green.getMessage(), blue.getGreen().getMessage());
 
-        final BrownLocal brownLocal = createAndMutate(appContext, 
BrownLocal.class);
+        {
+            Blue blue2 = getInstance(Blue.class);
+
+            assertEquals(blue.getMessage(), blue2.getMessage());
+        }
+
+        final BrownLocal brownLocal = createAndMutate(BrownLocal.class);
+        {
+            BrownLocal brownLocal2 = getInstance(BrownLocal.class);
+
+            assertEquals(brownLocal.getMessage(), brownLocal2.getMessage());
+        }
 
         final Green green2 = brownLocal.getGreen();
         green2.getMessage();
 
-        final Orange orange = createAndMutate(appContext, Orange.class);
+        final Orange orange = createAndMutate(Orange.class);
         assertNotNull(orange);
         assertNotNull(orange.getBlue());
         assertNotNull(orange.getBlue().getGreen());
@@ -73,50 +85,27 @@ public class ApplicationScopedTest exten
         assertSame(greenA, greenB);
     }
 
-    private <T extends Message> T createAndMutate(Context context, Class<T> 
beanType) {
-
-        final Bean<T> bean = (Bean<T>) 
beanManager.getBeans(beanType).iterator().next();
-
-        // We haven't created anything yet, so the instance should not exist 
in the context
-        assertNull(context.get(bean));
-
-
-        final CreationalContext<T> cc1 = 
beanManager.createCreationalContext(bean);
-
-        // This should create the instance and put it in the context
-        final T instance = context.get(bean, cc1);
-
-
-        // Assert the instance is now in the context and can be generically 
retrieved
-        assertNotNull(context.get(bean));
+    private <T extends Message> T createAndMutate(Class<T> beanType) {
 
+        T instance = getInstance(beanType);
 
         final String prefix = beanType.getSimpleName();
 
-        // Mutate the instance...
-        instance.setMessage(prefix + ": hello application");
-
-        // Now check the reference in the context
-        assertEquals(prefix + ": hello application", context.get(bean, 
cc1).getMessage());
-
-        // Attempt to create a second instance (should not work)
-        final CreationalContext<T> cc2 = 
beanManager.createCreationalContext(bean);
-
-        // We should still have the same mutated instance as before
-        assertEquals(prefix + ": hello application", context.get(bean, 
cc2).getMessage());
-
         // Mutate the instance one more time
         instance.setMessage(prefix + ": hello again application");
 
-        // And double check that we still just have the single instance in the 
context
-        assertEquals(prefix + ": hello again application", 
context.get(bean).getMessage());
-        assertEquals(prefix + ": hello again application", context.get(bean, 
null).getMessage());
-        assertEquals(prefix + ": hello again application", context.get(bean, 
cc1).getMessage());
-        assertEquals(prefix + ": hello again application", context.get(bean, 
cc2).getMessage());
-
         return instance;
     }
 
+    private <T extends Message> T getInstance(Class<T> beanType) {
+        final Bean<T> bean = (Bean<T>) 
beanManager.getBeans(beanType).iterator().next();
+
+        // This should create the instance and put it in the context
+        return (T) beanManager.getReference(bean, beanType, 
beanManager.createCreationalContext(bean));
+    }
+
+
+
     @Module
     public SessionBean getEjbs() {
         return new StatefulBean(Brown.class);

Added: 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ScopedProducerTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ScopedProducerTest.java?rev=1139683&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ScopedProducerTest.java
 (added)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/ScopedProducerTest.java
 Sun Jun 26 01:08:50 2011
@@ -0,0 +1,115 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.cdi;
+
+import junit.framework.TestCase;
+import org.apache.openejb.jee.SessionBean;
+import org.apache.openejb.jee.StatefulBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateful;
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.spi.Context;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.Disposes;
+import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.inject.Inject;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@RunWith(ApplicationComposer.class)
+public class ScopedProducerTest extends TestCase {
+
+    @Inject
+    BeanManager beanManager;
+
+    @Test
+    public void test() {
+        ColorProducerLocal colorProducerLocal = 
getInstance(ColorProducerLocal.class);
+        ColorProducerLocal colorProducerLocalB = 
getInstance(ColorProducerLocal.class);
+
+        colorProducerLocal.setColorClass(Blue.class);
+
+        assertEquals(colorProducerLocal.getColorClass(), 
colorProducerLocalB.getColorClass());
+    }
+
+    private <T> T getInstance(Class<T> beanType) {
+        final Bean<T> bean = (Bean<T>) 
beanManager.getBeans(beanType).iterator().next();
+
+        // This should create the instance and put it in the context
+
+        return (T) beanManager.getReference(bean, beanType, 
beanManager.createCreationalContext(bean));
+    }
+
+    @Module
+    public SessionBean ejbs() {
+        return new StatefulBean(ColorProducerBean.class);
+    }
+
+    public static interface ColorProducerLocal {
+        public Class<? extends Color> getColorClass();
+        public void setColorClass(Class<? extends Color> colorClass);
+        public Color createColor();
+        public void destroyColor(@Disposes Color color);
+
+    }
+
+    @ApplicationScoped
+    @Stateful
+    public static class ColorProducerBean implements ColorProducerLocal {
+
+        private Class<? extends Color> colorClass;
+
+        public Class<? extends Color> getColorClass() {
+            return colorClass;
+        }
+
+        public void setColorClass(Class<? extends Color> colorClass) {
+            this.colorClass = colorClass;
+        }
+
+        @Produces
+        public Color createColor() {
+            return new Red();
+        }
+
+
+        public void destroyColor(@Disposes Color color) {
+
+        }
+    }
+
+
+    public interface Color {
+
+    }
+
+    public static class Red implements Color {
+
+    }
+
+    public static class Blue implements Color {
+
+    }
+}

Added: 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SessionScoped2Test.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SessionScoped2Test.java?rev=1139683&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SessionScoped2Test.java
 (added)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SessionScoped2Test.java
 Sun Jun 26 01:08:50 2011
@@ -0,0 +1,244 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.cdi;
+
+import junit.framework.TestCase;
+import org.apache.openejb.jee.Beans;
+import org.apache.openejb.jee.SessionBean;
+import org.apache.openejb.jee.StatefulBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.Local;
+import javax.ejb.Stateful;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.inject.Inject;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@RunWith(ApplicationComposer.class)
+public class SessionScoped2Test extends TestCase {
+
+    @Inject
+    private BeanManager beanManager;
+
+    @Test
+    public void test() throws Exception {
+
+        final Green green = createAndMutate(Green.class);
+
+        {
+            Green green2 = getInstance(Green.class);
+
+            assertEquals(green.getMessage(), green2.getMessage());
+        }
+
+        final Blue blue = createAndMutate(Blue.class);
+
+        assertEquals(green.getMessage(), blue.getGreen().getMessage());
+
+        {
+            Blue blue2 = getInstance(Blue.class);
+
+            assertEquals(blue.getMessage(), blue2.getMessage());
+        }
+        
+        final BrownLocal brownLocal = createAndMutate(BrownLocal.class);
+        {
+            BrownLocal brownLocal2 = getInstance(BrownLocal.class);
+
+            assertEquals(brownLocal.getMessage(), brownLocal2.getMessage());
+        }
+
+        final Green green2 = brownLocal.getGreen();
+        green2.getMessage();
+
+        final Orange orange = createAndMutate(Orange.class);
+        assertNotNull(orange);
+        assertNotNull(orange.getBlue());
+        assertNotNull(orange.getBlue().getGreen());
+        assertNotNull(orange.getGreen());
+
+        final Green greenA = orange.getBlue().getGreen();
+        final Green greenB = orange.getGreen();
+
+        assertSame(greenA, greenB);
+    }
+
+    private <T extends Message> T createAndMutate(Class<T> beanType) {
+
+        final T instance = getInstance(beanType);
+
+        final String prefix = beanType.getSimpleName();
+
+        // Mutate the instance one more time
+        instance.setMessage(prefix + ": hello again application");
+
+        return instance;
+    }
+
+    private <T extends Message> T getInstance(Class<T> beanType) {
+        final Bean<T> bean = (Bean<T>) 
beanManager.getBeans(beanType).iterator().next();
+
+        // This should create the instance and put it in the context
+        return (T) beanManager.getReference(bean, beanType, 
beanManager.createCreationalContext(bean));
+    }
+
+    @Module
+    public SessionBean getEjbs() {
+        return new StatefulBean(Brown.class);
+    }
+
+    @Module
+    public Beans getBeans() {
+        final Beans beans = new Beans();
+        beans.addManagedClass(Orange.class);
+        beans.addManagedClass(Blue.class);
+        beans.addManagedClass(Green.class);
+        return beans;
+    }
+
+    @Local
+    public static interface BrownLocal extends Message {
+
+        public Green getGreen();
+    }
+
+    @Stateful
+    @SessionScoped
+    public static class Brown implements BrownLocal {
+        private String id;
+
+        @Inject
+        private Green green;
+
+        @Override
+        public String getMessage() {
+            return id;
+        }
+
+        @Override
+        public void setMessage(String id) {
+            this.id = id;
+        }
+
+        @Override
+        public Green getGreen() {
+            return green;
+        }
+    }
+
+    @SessionScoped
+    public static class Orange implements Message {
+
+        private String id;
+        private Blue blue;
+
+        public Orange() {
+            System.out.println(this.getClass().getName());
+        }
+
+        @Override
+        public String getMessage() {
+            return id;
+        }
+
+        @Override
+        public void setMessage(String id) {
+            this.id = id;
+        }
+
+        @Inject
+        private Green green;
+
+        @Inject
+        public void setBlue(Blue blue) {
+            this.blue = blue;
+        }
+
+        public Blue getBlue() {
+            return blue;
+        }
+
+        public Green getGreen() {
+            return green;
+        }
+    }
+
+    @SessionScoped
+    public static class Blue implements Message {
+
+        private String id;
+        private Green green;
+
+        public Blue() {
+            System.out.println(this.getClass().getName());
+        }
+
+        @Override
+        public String getMessage() {
+            return id;
+        }
+
+        @Override
+        public void setMessage(String id) {
+            this.id = id;
+        }
+
+        public Green getGreen() {
+            return green;
+        }
+
+        @Inject
+        public void setGreen(Green green) {
+            this.green = green;
+        }
+    }
+
+    @SessionScoped
+    public static class Green implements Message {
+
+        private String id;
+
+        public Green() {
+            "".length();
+            System.out.println(this.getClass().getName());
+        }
+
+        @Override
+        public String getMessage() {
+            return id;
+        }
+
+        @Override
+        public void setMessage(String id) {
+            this.id = id;
+        }
+    }
+
+    public static interface Message extends java.io.Serializable {
+
+        void setMessage(String id);
+
+        String getMessage();
+    }
+}

Modified: 
openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml?rev=1139683&r1=1139682&r2=1139683&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml 
(original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml 
Sun Jun 26 01:08:50 2011
@@ -21,8 +21,6 @@
       <class 
name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInWarTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest"/>
@@ -36,7 +34,6 @@
       <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.custom.CustomInterceptorTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.lookup.clientProxy.incontainer.ClientProxyTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.el.ResolutionByNameTest"/>

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml?rev=1139683&r1=1139682&r2=1139683&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml 
(original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml Sun 
Jun 26 01:08:50 2011
@@ -6,12 +6,10 @@
     <!--</packages>-->
     <classes>
       <class 
name="org.jboss.jsr299.tck.tests.context.dependent.ejb.DependentContextEjbTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>
+      <!--<class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>-->
+      <!--<class 
name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>-->
       <class 
name="org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest"/>

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml?rev=1139683&r1=1139682&r2=1139683&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml 
(original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml Sun 
Jun 26 01:08:50 2011
@@ -128,6 +128,7 @@
       <class 
name="org.jboss.jsr299.tck.tests.event.observer.abortProcessing.ObserverExceptionAbortsProcessingTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.event.observer.checkedException.CheckedExceptionWrappedTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.event.observer.conditional.ConditionalObserverTest"/>
+      <class 
name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.event.observer.resolve.ResolveEventObserversTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.event.observer.resolve.enterprise.ResolveEnterpriseEventObserverTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.event.observer.runtimeException.ObserverExceptionRethrownTest"/>
@@ -157,12 +158,7 @@
       <class 
name="org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.extensions.producer.ProducerTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.extensions.producer.broken.injectionTargetError.InjectionTargetDefinitionErrorTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest">
-        <methods>
-          <exclude name="testDefaultValidatorBean"/>
-          <exclude name="testDefaultValidatorFactoryBean"/>
-        </methods>
-      </class>
+      <class 
name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.DisposalMethodDefinitionTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.initializerUnallowed.InitializerUnallowedDefinitionTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.methodOnSessionBean.DisposalMethodOnSessionBean"/>
@@ -190,8 +186,8 @@
       <class 
name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest">
         <methods>
           <exclude name="testForEachEnterpriseBeanANewBeanExists"/>
-          <exclude name="testNewBeanHasNoStereotypes"/>
           <exclude name="testNewBeanHasNoBeanELName"/>
+          <exclude name="testNewBeanHasNoStereotypes"/>
           <exclude name="testNewBeanIsDependentScoped"/>
           <exclude name="testNewBeanIsHasOnlyNewBinding"/>
         </methods>
@@ -244,15 +240,7 @@
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonInterceptorClassInBeansXml.NonInterceptorClassInBeansXmlTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.broken.sameClassListedTwiceInBeansXml.SameClassListedTwiceInBeansXmlTest"/>
-      <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.custom.CustomInterceptorTest">
-        <methods>
-          <exclude name="testCustomAroundInvokeInterceptor"/>
-          <exclude name="testCustomAroundTimeoutInterceptor"/>
-          <exclude name="testCustomPreDestroyInterceptor"/>
-          <exclude name="testCustomPostActivateInterceptor"/>
-          <exclude name="testCustomPrePassivateInterceptor"/>
-        </methods>
-      </class>
+      <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.custom.CustomInterceptorTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest"/>
       <class 
name="org.jboss.jsr299.tck.tests.interceptors.definition.interceptorCalledBeforeDecorator.InterceptorCalledBeforeDecoratorTest"/>


Reply via email to