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 2009/08/10 23:44:08 UTC

svn commit: r802932 - in /incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config: DefinitionUtil.java WebBeansContainerDeployer.java

Author: gerdogdu
Date: Mon Aug 10 21:44:08 2009
New Revision: 802932

URL: http://svn.apache.org/viewvc?rev=802932&view=rev
Log:
Updating disposal method resulotions. Add disposal methods after adding producer methods to container.

Modified:
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java?rev=802932&r1=802931&r2=802932&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java Mon Aug 10 21:44:08 2009
@@ -778,9 +778,6 @@
             }
 
             Set<Bean<?>> set = InjectionResolver.getInstance().implResolveByType(type, annot);
-            if (set == null || set.isEmpty()) {
-                continue;
-            }
             Bean<?> bean = set.iterator().next();
             ProducerMethodBean<?> pr = null;
 
@@ -807,6 +804,13 @@
                 }
             }
 
+            Method producerMethod = pr.getCreatorMethod();
+            //Disposer methods and producer methods must be in the same class
+            if(!producerMethod.getDeclaringClass().getName().equals(declaredMethod.getDeclaringClass().getName()))
+            {
+                throw new WebBeansConfigurationException("Producer method component of the disposal method : " + declaredMethod.getName() + " in class : " + clazz.getName() + " must be in the same class!");
+            }
+            
             pr.setDisposalMethod(declaredMethod);
 
             addMethodInjectionPointMetaData(component, declaredMethod);

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java?rev=802932&r1=802931&r2=802932&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java Mon Aug 10 21:44:08 2009
@@ -633,7 +633,6 @@
             managedBeanCreator.defineConstructor();            
             Set<ProducerMethodBean<?>> producerMethods = managedBeanCreator.defineProducerMethods();       
             Set<ProducerFieldBean<?>> producerFields = managedBeanCreator.defineProducerFields();           
-            managedBeanCreator.defineDisposalMethods();
             managedBeanCreator.defineInjectedFields();
             managedBeanCreator.defineInjectedMethods();
             managedBeanCreator.defineObserverMethods();
@@ -700,6 +699,7 @@
                 DecoratorUtil.checkManagedBeanDecoratorConditions(managedBean);
                 BeanManagerImpl.getManager().addBean(managedBean);
                 BeanManagerImpl.getManager().getBeans().addAll(producerMethods);
+                managedBeanCreator.defineDisposalMethods();//Define disposal method after adding producers
                 BeanManagerImpl.getManager().getBeans().addAll(producerFields);
             }
         }