[jboss-cvs] JBossAS SVN: r83618 - in projects/microcontainer/trunk/kernel/src: main/java/org/jboss/beans/metadata/spi and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 29 09:56:43 EST 2009


Author: alesj
Date: 2009-01-29 09:56:43 -0500 (Thu, 29 Jan 2009)
New Revision: 83618

Added:
   projects/microcontainer/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/DemandWithTargetState.xml
Modified:
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/DemandMetaData.java
   projects/microcontainer/trunk/kernel/src/main/resources/schema/jboss-beans-common_2_0.xsd
   projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandJaxbTestCase.java
   projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandTestCase.java
Log:
[JBMICROCONT-404]; enhance demand metadata.

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java	2009-01-29 14:27:56 UTC (rev 83617)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDemandMetaData.java	2009-01-29 14:56:43 UTC (rev 83618)
@@ -47,8 +47,8 @@
 /**
  * A demand.
  * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @author <a href="ales.justin at jboss.com">Ales Justin</a>
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
 @XmlType(name="demandsType")
@@ -63,6 +63,9 @@
    /** When the dependency is required */
    protected ControllerState whenRequired = ControllerState.DESCRIBED;
 
+   /** The target/dependency state */
+   protected ControllerState targetState;
+
    /** The transformer */
    protected String transformer;
 
@@ -107,6 +110,17 @@
       flushJBossObjectCache();
    }
 
+   /**
+    * Set the target/dependency state.
+    *
+    * @param targetState the target state
+    */
+   @XmlAttribute(name="targetState")
+   public void setTargetState(ControllerState targetState)
+   {
+      this.targetState = targetState;
+   }
+
    public Object getDemand()
    {
       return demand;
@@ -117,6 +131,11 @@
       return whenRequired;
    }
 
+   public ControllerState getTargetState()
+   {
+      return targetState;
+   }
+
    /**
     * Get the transformer class name.
     *
@@ -166,6 +185,8 @@
       buffer.append("demand=").append(demand);
       if (whenRequired != null)
          buffer.append(" whenRequired=").append(whenRequired.getStateString());
+      if (targetState != null)
+         buffer.append(" targetState=").append(targetState.getStateString());
    }
    
    public void toShortString(JBossStringBuilder buffer)
@@ -233,7 +254,13 @@
       public boolean resolve(Controller controller)
       {
          Object name = getDemandObject();
-         ControllerContext context = controller.getInstalledContext(name);
+
+         ControllerContext context;
+         if (targetState == null)
+            context = controller.getInstalledContext(name);
+         else
+            context = controller.getContext(name, targetState);
+
          if (context != null)
          {
             setIDependOn(context.getName());

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/DemandMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/DemandMetaData.java	2009-01-29 14:27:56 UTC (rev 83617)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/DemandMetaData.java	2009-01-29 14:56:43 UTC (rev 83618)
@@ -28,6 +28,7 @@
  * Metadata about what a bean demands.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision$
  */
 public interface DemandMetaData extends MetaDataVisitorNode, JBossInterface
@@ -45,4 +46,11 @@
     * @return when the dependency is required
     */
    ControllerState getWhenRequired();
+
+   /**
+    * Get the target state
+    *
+    * @return the target state
+    */
+   ControllerState getTargetState();
 }

Modified: projects/microcontainer/trunk/kernel/src/main/resources/schema/jboss-beans-common_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/resources/schema/jboss-beans-common_2_0.xsd	2009-01-29 14:27:56 UTC (rev 83617)
+++ projects/microcontainer/trunk/kernel/src/main/resources/schema/jboss-beans-common_2_0.xsd	2009-01-29 14:56:43 UTC (rev 83618)
@@ -983,6 +983,7 @@
       <xsd:simpleContent>
          <xsd:extension base="xsd:string">
             <xsd:attribute name="state" type="controllerStateType" use="optional"/>
+            <xsd:attribute name="targetState" type="controllerStateType" use="optional"/>
             <xsd:attribute name="transformer" type="xsd:token" use="optional"/>
          </xsd:extension>
       </xsd:simpleContent>

Modified: projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandJaxbTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandJaxbTestCase.java	2009-01-29 14:27:56 UTC (rev 83617)
+++ projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandJaxbTestCase.java	2009-01-29 14:56:43 UTC (rev 83618)
@@ -33,6 +33,7 @@
  * Demand TestCase.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision: 40800 $
  */
 public class DemandJaxbTestCase extends AbstractMCTest
@@ -62,6 +63,13 @@
       assertEquals(ControllerState.CONFIGURED, demand.getWhenRequired());
    }
 
+   public void testDemandWithTargetState() throws Exception
+   {
+      AbstractDemandMetaData demand = getDemand();
+      assertEquals("Demand", demand.getDemand());
+      assertEquals(ControllerState.CREATE, demand.getTargetState());
+   }
+
    /* TODO
    public void testDemandBadNoValue() throws Exception
    {

Modified: projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandTestCase.java	2009-01-29 14:27:56 UTC (rev 83617)
+++ projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/deployment/xml/test/DemandTestCase.java	2009-01-29 14:56:43 UTC (rev 83618)
@@ -34,6 +34,7 @@
  * Demand TestCase.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision$
  */
 public class DemandTestCase extends AbstractXMLTest
@@ -63,6 +64,13 @@
       assertEquals(ControllerState.CONFIGURED, demand.getWhenRequired());
    }
 
+   public void testDemandWithTargetState() throws Exception
+   {
+      AbstractDemandMetaData demand = getDemand("DemandWithTargetState.xml");
+      assertEquals("Demand", demand.getDemand());
+      assertEquals(ControllerState.CREATE, demand.getTargetState());
+   }
+
    public void testDemandWithTransformer() throws Exception
    {
       AbstractDemandMetaData demand = getDemand("DemandWithTransformer.xml");

Copied: projects/microcontainer/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/DemandWithTargetState.xml (from rev 83617, projects/microcontainer/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/DemandWithWhenRequired.xml)
===================================================================
--- projects/microcontainer/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/DemandWithTargetState.xml	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/DemandWithTargetState.xml	2009-01-29 14:56:43 UTC (rev 83618)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<bean xmlns="urn:jboss:bean-deployer:2.0" class="Dummy">
+   <demand targetState="Create">Demand</demand>
+</bean>


Property changes on: projects/microcontainer/trunk/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/DemandWithTargetState.xml
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list