[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