[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