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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 18 06:26:50 EST 2009


Author: alesj
Date: 2009-02-18 06:26:50 -0500 (Wed, 18 Feb 2009)
New Revision: 84375

Modified:
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
   projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
   projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
Extend BMDBuilder for demands.

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java	2009-02-18 11:18:18 UTC (rev 84374)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java	2009-02-18 11:26:50 UTC (rev 84375)
@@ -881,20 +881,23 @@
     *
     * @param demand the demand
     * @param whenRequired the when required
+    * @param targetState the target state
     * @param transformer the transformer
     * @return the demand metadata
     */
-   protected DemandMetaData createDemandMetaData(Object demand, ControllerState whenRequired, String transformer)
+   protected DemandMetaData createDemandMetaData(Object demand, ControllerState whenRequired, ControllerState targetState, String transformer)
    {
       AbstractDemandMetaData admd = new AbstractDemandMetaData(demand);
       if (whenRequired != null)
          admd.setWhenRequired(whenRequired);
+      if (targetState != null)
+         admd.setTargetState(targetState);
       if (transformer != null)
          admd.setTransformer(transformer);
       return admd;
    }
 
-   public BeanMetaDataBuilder addDemand(Object demand, ControllerState whenRequired, String transformer)
+   public BeanMetaDataBuilder addDemand(Object demand, ControllerState whenRequired, ControllerState targetState, String transformer)
    {
       Set<DemandMetaData> demands = beanMetaData.getDemands();
       if (demands == null)
@@ -902,7 +905,7 @@
          demands = new HashSet<DemandMetaData>();
          beanMetaData.setDemands(demands);
       }
-      demands.add(createDemandMetaData(demand, whenRequired, transformer));
+      demands.add(createDemandMetaData(demand, whenRequired, targetState, transformer));
       return this;
    }
 

Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java	2009-02-18 11:18:18 UTC (rev 84374)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java	2009-02-18 11:26:50 UTC (rev 84375)
@@ -720,9 +720,23 @@
     * @param transformer the transformer
     * @return the builder
     */
-   public abstract BeanMetaDataBuilder addDemand(Object demand, ControllerState whenRequired, String transformer);
+   public BeanMetaDataBuilder addDemand(Object demand, ControllerState whenRequired, String transformer)
+   {
+      return addDemand(demand, whenRequired, null, transformer);
+   }
 
    /**
+    * Add a demand
+    *
+    * @param demand the demand
+    * @param whenRequired when the demand is required
+    * @param targetState the target state
+    * @param transformer the transformer
+    * @return the builder
+    */
+   public abstract BeanMetaDataBuilder addDemand(Object demand, ControllerState whenRequired, ControllerState targetState, String transformer);
+
+   /**
     * Add a dependency
     * 
     * @param dependency the dependency

Modified: projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java	2009-02-18 11:18:18 UTC (rev 84374)
+++ projects/microcontainer/trunk/kernel/src/test/java/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java	2009-02-18 11:26:50 UTC (rev 84375)
@@ -194,6 +194,37 @@
    }
 
    @SuppressWarnings("deprecation")
+   public void testDemandWithTargetState() throws Throwable
+   {
+      BeanMetaDataBuilder demand = BeanMetaDataBuilderFactory.createBuilder("DemandBean", SimpleBean.class.getName());
+      demand.addDemand("SupplyBean", ControllerState.CREATE, ControllerState.START, null);
+      BeanMetaDataFactory demandBean = demand.getBeanMetaDataFactory();
+
+      BeanMetaDataBuilder supply = BeanMetaDataBuilderFactory.createBuilder("SupplyBean", SimpleLifecycleBean.class.getName());
+      BeanMetaDataFactory supplyBean = supply.getBeanMetaDataFactory();
+
+      AbstractKernelDeployment deployment = new AbstractKernelDeployment();
+      deployment.setBeanFactories(Arrays.asList(demandBean, supplyBean));
+
+      Kernel kernel = bootstrap();
+      KernelController controller = kernel.getController();
+      AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
+
+      deployer.deploy(deployment);
+      try
+      {
+         Object db = controller.getInstalledContext("DemandBean").getTarget();
+         assertNotNull(db);
+         Object sb = controller.getInstalledContext("SupplyBean").getTarget();
+         assertNotNull(sb);
+      }
+      finally
+      {
+         deployer.undeploy(deployment);
+      }
+   }
+
+   @SuppressWarnings("deprecation")
    public void testDependency() throws Throwable
    {
       BeanMetaDataBuilder dependOn = BeanMetaDataBuilderFactory.createBuilder("DependOnBean", SimpleBean.class.getName());




More information about the jboss-cvs-commits mailing list