[jboss-cvs] JBossAS SVN: r64194 - in projects/microcontainer/trunk/kernel/src: tests/org/jboss/test/kernel/deployment/xml/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 23 05:39:59 EDT 2007


Author: alesj
Date: 2007-07-23 05:39:59 -0400 (Mon, 23 Jul 2007)
New Revision: 64194

Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ValueFactoryTestCase.java
Log:
Removing pre-set dependantState in ValueFactory.
Better setting of the dependantState in fromContext usage - depending on the whenRequired.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java	2007-07-23 08:41:44 UTC (rev 64193)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java	2007-07-23 09:39:59 UTC (rev 64194)
@@ -21,6 +21,8 @@
 */
 package org.jboss.beans.metadata.plugins;
 
+import java.util.List;
+
 import org.jboss.beans.metadata.spi.AutowireType;
 import org.jboss.beans.metadata.spi.MetaDataVisitor;
 import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
@@ -30,6 +32,7 @@
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.DependencyItem;
 import org.jboss.kernel.plugins.dependency.ClassContextDependencyItem;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.reflect.spi.TypeInfo;
 import org.jboss.util.JBossStringBuilder;
 
@@ -194,11 +197,32 @@
       // controller context property injection
       if (fromContext != null)
       {
-         if (dependentState != null && ControllerState.INSTANTIATED.equals(dependentState) == false && super.getUnderlyingValue() == null)
+         // check if whenRequired > dependent when used on itself
+         if (super.getUnderlyingValue() == null)
          {
-            if (log.isTraceEnabled())
-               log.trace("Cannot set demand state on itself, changing to Instantiated: " + this);
-            dependentState = ControllerState.INSTANTIATED;
+            ControllerState when = whenRequiredState;
+            if (when == null)
+               when = visitor.getContextState();
+
+            KernelControllerContext kcc = visitor.getControllerContext();
+            Controller controller = kcc.getController();
+            List<ControllerState> states = controller.getStates();
+            int whenIndex = states.indexOf(when);
+
+            if (dependentState == null)
+            {
+               dependentState = states.get(whenIndex - 1);
+            }
+            else
+            {
+               int dependentIndex = states.indexOf(dependentState);
+               if (whenIndex <= dependentIndex)
+               {
+                  dependentState = states.get(whenIndex - 1);
+                  if (log.isTraceEnabled())
+                    log.trace("Cannot set demand state to more/equal than when required state, changing it to : " + dependentState);
+               }
+            }
          }
          super.initialVisit(visitor);
          return;

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java	2007-07-23 08:41:44 UTC (rev 64193)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractValueFactoryMetaData.java	2007-07-23 09:39:59 UTC (rev 64194)
@@ -79,7 +79,7 @@
    /**
     * The required state of the dependency or null to look in the registry
     */
-   protected ControllerState dependentState = ControllerState.INSTALLED;
+   protected ControllerState dependentState;
 
    /** The parameters */
    protected List<ParameterMetaData> parameters;

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ValueFactoryTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ValueFactoryTestCase.java	2007-07-23 08:41:44 UTC (rev 64193)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/ValueFactoryTestCase.java	2007-07-23 09:39:59 UTC (rev 64194)
@@ -58,7 +58,7 @@
       AbstractValueFactoryMetaData dependency = getValueFactory("ValueFactoryWithBean.xml");
       assertEquals("Dummy", dependency.getValue());
       assertEquals("getValue", dependency.getMethod());
-      assertEquals(ControllerState.INSTALLED, dependency.getDependentState());
+      assertNull(dependency.getDependentState());
    }
 
    public void testValueFactoryWithParameter() throws Exception
@@ -75,7 +75,7 @@
       ValueMetaData value = pmd.getValue();
       assertNotNull(value);
       assertEquals("foo.bar.key", value.getUnderlyingValue());
-      assertEquals(ControllerState.INSTALLED, dependency.getDependentState());
+      assertNull(dependency.getDependentState());
    }
 
    public void testValueFactoryWithParameters() throws Exception
@@ -97,7 +97,7 @@
       ValueMetaData value2 = pmd2.getValue();
       assertNotNull(value2);
       assertEquals("mydefault", value2.getUnderlyingValue());
-      assertEquals(ControllerState.INSTALLED, dependency.getDependentState());
+      assertNull(dependency.getDependentState());
    }
 
    public void testValueFactoryWithDefault() throws Exception
@@ -106,7 +106,7 @@
       assertEquals("Dummy", dependency.getValue());
       assertEquals("getValue", dependency.getMethod());
       assertEquals("mydefault", dependency.getDefaultValue());
-      assertEquals(ControllerState.INSTALLED, dependency.getDependentState());
+      assertNull(dependency.getDependentState());
    }
 
    public void testValueFactoryWithState() throws Exception




More information about the jboss-cvs-commits mailing list