You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2010/01/10 01:00:17 UTC

svn commit: r897579 - in /openwebbeans/trunk: ./ webbeans-impl/src/main/java/org/apache/webbeans/component/ webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ webbeans-impl/src/main/java/org/apache/webbeans/config/ webbeans-impl/src/ma...

Author: gerdogdu
Date: Sun Jan 10 00:00:16 2010
New Revision: 897579

URL: http://svn.apache.org/viewvc?rev=897579&view=rev
Log:
[OWB-223] Tests has done in between 3.1 - 3.4

Added:
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java   (with props)
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java   (with props)
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java   (with props)
Modified:
    openwebbeans/trunk/TCK-STANDALONE
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
    openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java

Modified: openwebbeans/trunk/TCK-STANDALONE
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/TCK-STANDALONE?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/TCK-STANDALONE (original)
+++ openwebbeans/trunk/TCK-STANDALONE Sun Jan 10 00:00:16 2010
@@ -79,7 +79,30 @@
 Section 2.7.1.2 - Specifying interceptor bindings for a stereotype (PASSED)
 Section 2.7.1.3 - Declaring a @Named stereotype (PASSED)
 Section 2.7.1.4 - Declaring an @Alternative stereotype (PASSED)
-Section 2.7.1.5 - Stereotypes with additional stereotypes (PASSED But it seems some errors in TCK)
+Section 2.7.1.5 - Stereotypes with additional stereotypes (PASSED)
 Section 2.7.2 - Declaring the stereotypes for a bean (PASSED)
 Section 2.7.3 - Built-in stereotypes (PASSED)
 Section 2.8 - Problems detected automatically by the container (PASSED)
+Section 3.1.1 - Which Java classes are managed beans? (PASSED)
+  # ITEM f ) This is a BROKEN and not included with test 
+  # ITEM n ) This is an INTEGRATION TEST
+Section 3.1.2 - Bean types of a managed bean(PASSED)
+Section 3.1.3 - Declaring a managed bean (PASSED)
+Section 3.1.4 - Specializing a managed bean (PASSED with followings)
+  # ITEM ac) FAILED
+  # ITEM dc) This is an INTEGRATION TEST
+Section 3.1.5 - Default name for a managed bean (PASSED)
+Section 3.2 - Session Beans (INTEGRATION TEST)
+Section 3.3 - Producer methods (PASSED)
+  # ITEM d) This is an INTEGRATION TEST
+Section 3.3.1 - Bean types of a producer method (PASSED) 
+Section 3.3.2 - Declaring a producer method (PASSED with followings)
+  # ITEM fa) This is an INTEGRATION TEST
+Section 3.3.3 - Specializing a producer method (PASSED)
+Section 3.3.4 - Disposer methods (PASSED with following)
+  # ITEM d) This is an INTEGRATION TEST
+Section 3.3.5 - Disposed parameter of a disposer method (PASSED)
+Section 3.3.6 - Declaring a disposer method (PASSED with following)
+  # ITEM fa) This is an INTEGRATION TEST
+Section 3.3.7 - Disposer method resolution (PASSED)
+Section 3.3.8 - Default name for a producer method (PASSED) 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java Sun Jan 10 00:00:16 2010
@@ -79,8 +79,11 @@
     {
         T instance = null;
         Object parentInstance = null;
+        CreationalContext<?> parentCreational = null;
         try
         {
+            parentCreational = getManager().createCreationalContext(this.ownerComponent);
+            
             if (!producerField.isAccessible())
             {
                 producerField.setAccessible(true);
@@ -91,8 +94,9 @@
                 instance = (T) producerField.get(null);
             }
             else
-            {
-                parentInstance = getParentInstance(creationalContext);
+            { 
+                parentInstance = getParentInstance(parentCreational);
+                
                 instance = (T) producerField.get(parentInstance);
             }
         }catch(Exception e)
@@ -103,7 +107,7 @@
         {
             if (this.ownerComponent.getScope().equals(Dependent.class))
             {
-                destroyBean(this.ownerComponent, parentInstance, creationalContext);
+                destroyBean(this.ownerComponent, parentInstance, parentCreational);
             }
         }
 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java Sun Jan 10 00:00:16 2010
@@ -155,12 +155,14 @@
     {
         T instance = null;
         Object parentInstance = null;
-
+        CreationalContext<?> parentCreational = null;
         try
         {
+            parentCreational = getManager().createCreationalContext(this.ownerComponent);
+            
             if (!Modifier.isStatic(creatorMethod.getModifiers()))
             {
-                parentInstance = getParentInstance(creationalContext);
+                parentInstance = getParentInstance(parentCreational);
             }
 
             InjectableMethods<T> m = new InjectableMethods<T>(creatorMethod, parentInstance, this, creationalContext);
@@ -172,7 +174,7 @@
         {
             if (getParent().getScope().equals(Dependent.class))
             {
-                destroyBean(getParent(), parentInstance, creationalContext);
+                destroyBean(getParent(), parentInstance, parentCreational);
             }
         }
 
@@ -214,15 +216,19 @@
         if (disposalMethod != null)
         {
             Object parentInstance = null;
-
+            CreationalContext<?> parentCreational = null;
             try
             {
+                parentCreational = getManager().createCreationalContext(this.ownerComponent);
+                
                 if (!Modifier.isStatic(disposalMethod.getModifiers()))
                 {
-                    parentInstance = getParentInstance(creationalContext);
+                    parentInstance = getParentInstance(parentCreational);
                 }
 
                 InjectableMethods<T> m = new InjectableMethods<T>(disposalMethod, parentInstance, this.ownerComponent, creationalContext);
+                m.setDisposable(true);
+                m.setProducerMethodInstance(instance);
 
                 m.doInjection();
 
@@ -231,7 +237,7 @@
             {
                 if (getParent().getScope().equals(Dependent.class))
                 {
-                    destroyBean(getParent(), parentInstance, creationalContext);
+                    destroyBean(getParent(), parentInstance, parentCreational);
 
                 }
             }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java Sun Jan 10 00:00:16 2010
@@ -49,7 +49,7 @@
     @Override
     public void checkCreateConditions()
     {
-        ManagedBeanConfigurator.checkSimpleWebBeanCondition(getBean().getReturnType());
+        ManagedBeanConfigurator.checkManagedBeanCondition(getBean().getReturnType());
         WebBeansUtil.checkGenericType(getBean());
         
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java Sun Jan 10 00:00:16 2010
@@ -655,15 +655,20 @@
                 managedBeanCreator.setMetaDataProvider(MetaDataProvider.THIRDPARTY);
             }
             
-            //Define meta-data
             managedBeanCreator.defineSerializable();
+
+            //Scope type
+            managedBeanCreator.defineScopeType(logger.getTokenString(OWBLogConst.TEXT_MB_IMPL) + clazz.getName() + logger.getTokenString(OWBLogConst.TEXT_SAME_SCOPE));
+            managedBeanCreator.checkCreateConditions();
+            
+            
+            //Define meta-data
             managedBeanCreator.defineStereoTypes();
             
             //Check for Enabled via Alternative
             WebBeansUtil.setBeanEnableFlag(managedBean);
             
             managedBeanCreator.defineApiType();
-            managedBeanCreator.defineScopeType(logger.getTokenString(OWBLogConst.TEXT_MB_IMPL) + clazz.getName() + logger.getTokenString(OWBLogConst.TEXT_SAME_SCOPE));
             managedBeanCreator.defineQualifier();
             managedBeanCreator.defineName(WebBeansUtil.getSimpleWebBeanDefaultName(clazz.getSimpleName()));
             managedBeanCreator.defineConstructor();            

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java Sun Jan 10 00:00:16 2010
@@ -54,13 +54,13 @@
      * @param clazz implementation class
      * @throws WebBeansConfigurationException if any configuration exception occurs
      */
-    public static void checkSimpleWebBeanCondition(Class<?> clazz) throws WebBeansConfigurationException
+    public static void checkManagedBeanCondition(Class<?> clazz) throws WebBeansConfigurationException
     {
         int modifier = clazz.getModifiers();
 
         if (AnnotationUtil.hasClassAnnotation(clazz, Decorator.class) && AnnotationUtil.hasClassAnnotation(clazz, Interceptor.class))
         {
-            throw new WebBeansConfigurationException("Simple WebBean Component implementation class : " + clazz.getName() + " may not annotated with both @Interceptor and @Decorator annotation");
+            throw new WebBeansConfigurationException("ManagedBean implementation class : " + clazz.getName() + " may not annotated with both @Interceptor and @Decorator annotation");
         }
 
         if (!AnnotationUtil.hasClassAnnotation(clazz, Decorator.class) && !AnnotationUtil.hasClassAnnotation(clazz, Interceptor.class))
@@ -70,7 +70,7 @@
 
         if (ClassUtil.isInterface(modifier))
         {
-            throw new WebBeansConfigurationException("Simple WebBean Component implementation class : " + clazz.getName() + " may not defined as interface");
+            throw new WebBeansConfigurationException("ManagedBean implementation class : " + clazz.getName() + " may not defined as interface");
         }
     }
 
@@ -108,7 +108,7 @@
     {
         BeanManagerImpl manager = BeanManagerImpl.getManager();
 
-        checkSimpleWebBeanCondition(clazz);
+        checkManagedBeanCondition(clazz);
 
         ManagedBean<T> component = new ManagedBean<T>(clazz, type);
         

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java Sun Jan 10 00:00:16 2010
@@ -29,6 +29,7 @@
 import org.apache.webbeans.component.InstanceBean;
 import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.container.InjectionResolver;
+import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
@@ -71,8 +72,11 @@
      * @param injectionPoint injection point definition  
      * @return current bean instance in the resolved bean scope
      */
+    @SuppressWarnings("unchecked")
     public <T> Object inject(InjectionPoint injectionPoint)
     {
+        Object injected = null;
+        
         if(injectionPoint.getType().equals(InjectionPoint.class))
         {
             //Try to inject dependent owner injection point
@@ -87,19 +91,37 @@
         }
         
         //Get injection point Bean to look for @Dependent
-        Bean<?> component = InjectionResolver.getInstance().getInjectionPointBean(injectionPoint);
+        Bean<?> injectedBean = InjectionResolver.getInstance().getInjectionPointBean(injectionPoint);
+        
+        boolean dependent = false;
         
         //Managed @Dependence instances
-        if (component.getScope().equals(Dependent.class))
+        if (injectedBean.getScope().equals(Dependent.class))
+        {
+            dependent = true;
+        }
+        
+        if(dependent && (WebBeansUtil.isManagedBean(this.injectionOwnerComponent) || 
+                WebBeansUtil.isEnterpriseBean(this.injectionOwnerComponent)))
+        {
+            injected = injectForBeanDependent(injectedBean,injectionPoint);   
+        }                 
+        else
         {
-            if(WebBeansUtil.isManagedBean(this.injectionOwnerComponent) || 
-                    WebBeansUtil.isEnterpriseBean(this.injectionOwnerComponent))
+            injected = injectForComponent(injectionPoint);
+            
+            if(dependent && WebBeansUtil.isProducerBean(this.injectionOwnerComponent))
             {
-                return injectForDependent(component,injectionPoint);   
-            }                
+                if(this.creationalContext instanceof CreationalContext)
+                {
+                    CreationalContextImpl<?> cc = (CreationalContextImpl<?>)this.creationalContext;
+                    cc.addDependent((Bean<Object>)injectedBean, injected, BeanManagerImpl.getManager().createCreationalContext((Bean<Object>)injectedBean));                    
+                }
+            }
         }
+         
 
-        return injectForComponent(injectionPoint);
+        return injected;
     }
     
     /**
@@ -136,7 +158,7 @@
      * @param injectionPoint injection point
      * @return injection point instance
      */
-    private Object injectForDependent(Bean<?> bean, InjectionPoint injectionPoint)
+    private Object injectForBeanDependent(Bean<?> bean, InjectionPoint injectionPoint)
     {
         Object object = null;
         object = this.injectionOwnerComponent.getDependent(bean,injectionPoint, this.creationalContext);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java Sun Jan 10 00:00:16 2010
@@ -18,6 +18,7 @@
 import java.util.List;
 
 import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.Disposes;
 import javax.enterprise.inject.spi.AnnotatedParameter;
 import javax.enterprise.inject.spi.InjectionPoint;
 
@@ -32,6 +33,10 @@
 
     /** Component instance that owns the method */
     protected Object instance;
+    
+    private boolean disposable;
+    
+    private Object producerMethodInstance = null;
 
     /**
      * Constructs new instance.
@@ -64,7 +69,15 @@
                 AnnotatedParameter<?> parameter = (AnnotatedParameter<?>)point.getAnnotated();
                 if(parameter.getPosition() == i)
                 {
-                    list.add(inject(point));
+                    if(isDisposable() && parameter.getAnnotation(Disposes.class) != null)
+                    {
+                        list.add(this.producerMethodInstance);
+                    }
+                    else
+                    {
+                        list.add(inject(point));    
+                    }
+                    
                     break;
                 }
             }
@@ -85,4 +98,25 @@
             throw new WebBeansException(e);
         }
     }
+
+    /**
+     * @return the disposable
+     */
+    private boolean isDisposable()
+    {
+        return disposable;
+    }
+
+    /**
+     * @param disposable the disposable to set
+     */
+    public void setDisposable(boolean disposable)
+    {
+        this.disposable = disposable;
+    }
+    
+    public void setProducerMethodInstance(Object instance)
+    {
+        this.producerMethodInstance = instance;
+    }
 }
\ No newline at end of file

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java Sun Jan 10 00:00:16 2010
@@ -24,6 +24,7 @@
 
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.Decorator;
 
 import org.apache.webbeans.annotation.WebBeansAnnotation;
 import org.apache.webbeans.component.AbstractBean;
@@ -69,7 +70,8 @@
         Object result = null;
         
         List<InterceptorData> interceptors = ((AbstractBean<?>) bean).getInterceptorStack();
-        if(interceptors.isEmpty())
+        List<Decorator<?>> decorators = ((AbstractBean<?>) bean).getDecorators();
+        if(interceptors.isEmpty() && decorators.isEmpty())
         {
             return actualInstance;
         }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Sun Jan 10 00:00:16 2010
@@ -60,6 +60,7 @@
 import javax.enterprise.inject.spi.AnnotatedType;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.InjectionPoint;
 import javax.enterprise.inject.spi.Interceptor;
 import javax.enterprise.inject.spi.ObserverMethod;
@@ -188,7 +189,7 @@
         {
             if(!bean.getScope().equals(Dependent.class))
             {
-                throw new WebBeansConfigurationException("Generic type may only defined with scope @Dependent for bean class : " + clazz.getName());
+                throw new WebBeansConfigurationException("Generic type may only defined with scope @Dependent for ManagedBean class : " + clazz.getName());
             }
         }
     }
@@ -294,6 +295,11 @@
         {
             throw new WebBeansConfigurationException("Bean implementation class : " + clazz.getName() + " must define at least one Constructor");   
         }
+        
+        if(Extension.class.isAssignableFrom(clazz))
+        {
+            throw new WebBeansConfigurationException("Bean implementation class can not implement javax.enterprise.inject.spi.Extension.!");
+        }
             
         // and finally call all checks which are defined in plugins like JSF, JPA, etc
         List<OpenWebBeansPlugin> plugins = PluginLoader.getInstance().getPlugins();
@@ -1819,6 +1825,17 @@
         return false;
     }
     
+    public static boolean isProducerBean(AbstractBean<?> bean)
+    {
+        if(bean.getWebBeansType().equals(WebBeansType.PRODUCERFIELD) ||
+                bean.getWebBeansType().equals(WebBeansType.PRODUCERMETHOD))
+        {
+            return true;
+        }
+        
+        return false;
+    }
+    
     /**
      * Returns true if bean is an enterprise bean, false otherwise.
      * @param bean bean instance

Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java?rev=897579&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java Sun Jan 10 00:00:16 2010
@@ -0,0 +1,72 @@
+/*
+ * 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.webbeans.newtests.promethods;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Set;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+
+import junit.framework.Assert;
+
+import org.apache.webbeans.component.ProducerMethodBean;
+import org.apache.webbeans.newtests.AbstractUnitTest;
+import org.apache.webbeans.newtests.interceptors.lifecycle.LifecycleBean;
+import org.apache.webbeans.newtests.promethods.beans.PersonProducerBean;
+import org.apache.webbeans.newtests.promethods.common.Person;
+import org.junit.Test;
+
+public class PersonProducerTest extends AbstractUnitTest
+{
+    public PersonProducerTest()
+    {
+        
+    }
+    
+    @Test
+    @SuppressWarnings("unchecked")
+    public void testPersonProducer()
+    {
+        Collection<URL> beanXmls = new ArrayList<URL>();
+        
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(Person.class);
+        beanClasses.add(PersonProducerBean.class);
+        
+        startContainer(beanClasses, beanXmls);      
+        
+        Set<Bean<?>> beans = getBeanManager().getBeans("personProducer");
+        Assert.assertNotNull(beans);        
+        Bean<Person> bean = (Bean<Person>)beans.iterator().next();
+        
+        Assert.assertTrue(bean instanceof ProducerMethodBean);
+        
+        CreationalContext<Person> ctx = getBeanManager().createCreationalContext(bean);
+        
+        Object reference = getBeanManager().getReference(bean, Person.class, ctx);
+        Assert.assertNotNull(reference);
+        
+        Assert.assertTrue(reference instanceof Person);
+        
+        
+    }
+}

Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java?rev=897579&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java Sun Jan 10 00:00:16 2010
@@ -0,0 +1,35 @@
+/*
+ * 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.webbeans.newtests.promethods.beans;
+
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Produces;
+import javax.inject.Named;
+
+import org.apache.webbeans.newtests.promethods.common.Person;
+
+public class PersonProducerBean
+{
+    
+    @Produces @SessionScoped @Named("personProducer")
+    public Person producer()
+    {
+        return new Person();
+    }
+}

Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java?rev=897579&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java Sun Jan 10 00:00:16 2010
@@ -0,0 +1,24 @@
+/*
+ * 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.webbeans.newtests.promethods.common;
+
+public class Person
+{
+
+}

Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java Sun Jan 10 00:00:16 2010
@@ -418,7 +418,7 @@
     {
         ManagedBean<T> component = null;
 
-        ManagedBeanConfigurator.checkSimpleWebBeanCondition(clazz);
+        ManagedBeanConfigurator.checkManagedBeanCondition(clazz);
         {
             // This is the interceptor class
             if (InterceptorsManager.getInstance().isInterceptorEnabled(clazz))

Modified: openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java (original)
+++ openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java Sun Jan 10 00:00:16 2010
@@ -41,7 +41,7 @@
     {
         ManagedBean<T> bean = null;
 
-        ManagedBeanConfigurator.checkSimpleWebBeanCondition(clazz);
+        ManagedBeanConfigurator.checkManagedBeanCondition(clazz);
         
         bean = ManagedBeanConfigurator.define(clazz, WebBeansType.MANAGED);