[jboss-cvs] JBossAS SVN: r71171 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/spi/builder and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Mar 22 08:23:42 EDT 2008
Author: alesj
Date: 2008-03-22 08:23:42 -0400 (Sat, 22 Mar 2008)
New Revision: 71171
Added:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractCallbackMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallCallbackMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyInstallCallbackMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyUninstallCallbackMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallCallbackMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleCallbackBean.java
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractInstallMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/CreateLifecycleMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/DestroyLifecycleMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/LifecycleMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StartLifecycleMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StateMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StopLifecycleMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
[JBMICROCONT-268]; adding callback handling to bean meta data builder.
Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractCallbackMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractCallbackMetaDataBuilder.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractCallbackMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -0,0 +1,43 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.beans.metadata.plugins.builder;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCallbackMetaData;
+
+/**
+ * AbstractCallbackMetaDataBuilder.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public abstract class AbstractCallbackMetaDataBuilder extends StateMetaDataBuilder<AbstractCallbackMetaData>
+{
+ protected AbstractCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ super(beanMetaData);
+ }
+
+ protected void applyAfterSet(AbstractCallbackMetaData lifecycle)
+ {
+ // do nothing
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractInstallMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractInstallMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/AbstractInstallMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -22,7 +22,6 @@
package org.jboss.beans.metadata.plugins.builder;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
import org.jboss.beans.metadata.plugins.AbstractInstallMetaData;
/**
@@ -31,24 +30,19 @@
* @author <a href="ales.justin at jboss.com">Ales Justin</a>
* @author <a href="adrian at jboss.com">Adrian Brock</a>
*/
-public abstract class AbstractInstallMetaDataBuilder extends StateMetaDataBuilder
+public abstract class AbstractInstallMetaDataBuilder extends StateMetaDataBuilder<AbstractInstallMetaData>
{
- /**
- * Create a new StartLifecycleMetaDataBuilder.
- *
- * @param beanMetaData
- */
- public AbstractInstallMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ protected AbstractInstallMetaDataBuilder(AbstractBeanMetaData beanMetaData)
{
super(beanMetaData);
}
- protected AbstractLifecycleMetaData createLifecycleMetaData()
+ protected AbstractInstallMetaData createLifecycleMetaData()
{
return new AbstractInstallMetaData();
}
- protected void applyAfterSet(AbstractLifecycleMetaData lifecycle)
+ protected void applyAfterSet(AbstractInstallMetaData lifecycle)
{
// do nothing
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -28,8 +28,10 @@
import java.util.Map;
import java.util.Set;
+import org.jboss.beans.info.spi.BeanAccessMode;
import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCallbackMetaData;
import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
import org.jboss.beans.metadata.plugins.AbstractCollectionMetaData;
import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
@@ -54,7 +56,7 @@
import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.beans.metadata.spi.builder.ParameterMetaDataBuilder;
-import org.jboss.beans.info.spi.BeanAccessMode;
+import org.jboss.dependency.spi.Cardinality;
import org.jboss.dependency.spi.ControllerMode;
import org.jboss.dependency.spi.ControllerState;
@@ -62,8 +64,6 @@
* Helper class.
* Similar to StringBuffer, methods return current instance of BeanMetaDataBuilder.
*
- * TODO - add on demand, when building OSGi, Spring, ...
- *
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
* @author <a href="mailto:adrian at jboss.org">Adrian Brock</a>
*/
@@ -93,6 +93,18 @@
/** The uninstall builder */
private AbstractInstallMetaDataBuilder uninstallBuilder;
+ /** The incallback builder */
+ private AbstractCallbackMetaDataBuilder propIncallbackBuilder;
+
+ /** The uncallback builder */
+ private AbstractCallbackMetaDataBuilder propUncallbackBuilder;
+
+ /** The incallback builder */
+ private AbstractCallbackMetaDataBuilder incallbackBuilder;
+
+ /** The uncallback builder */
+ private AbstractCallbackMetaDataBuilder uncallbackBuilder;
+
/**
* Create a new BeanMetaDataBuilderImpl.
*
@@ -130,6 +142,11 @@
// install
installBuilder = new InstallMetaDataBuilder(beanMetaData);
uninstallBuilder = new UninstallMetaDataBuilder(beanMetaData);
+ // callback
+ propIncallbackBuilder = new PropertyInstallCallbackMetaDataBuilder(beanMetaData);
+ propUncallbackBuilder = new PropertyUninstallCallbackMetaDataBuilder(beanMetaData);
+ incallbackBuilder = new InstallCallbackMetaDataBuilder(beanMetaData);
+ uncallbackBuilder = new UninstallCallbackMetaDataBuilder(beanMetaData);
}
public BeanMetaData getBeanMetaData()
@@ -453,7 +470,7 @@
public ParameterMetaDataBuilder addInstallWithParameters(String methodName, String bean, ControllerState state, ControllerState whenRequired)
{
- AbstractInstallMetaData install = (AbstractInstallMetaData) installBuilder.createLifecycleMetaData(methodName);
+ AbstractInstallMetaData install = installBuilder.createLifecycleMetaData(methodName);
install.setBean(bean);
if (state != null)
install.setDependentState(state);
@@ -464,7 +481,7 @@
public ParameterMetaDataBuilder addUninstallWithParameters(String methodName, String bean, ControllerState state, ControllerState whenRequired)
{
- AbstractInstallMetaData uninstall = (AbstractInstallMetaData) uninstallBuilder.createLifecycleMetaData(methodName);
+ AbstractInstallMetaData uninstall = uninstallBuilder.createLifecycleMetaData(methodName);
uninstall.setBean(bean);
if (state != null)
uninstall.setDependentState(state);
@@ -473,28 +490,72 @@
return new ParameterMetaDataBuilderImpl<AbstractInstallMetaData>(uninstall);
}
+ public BeanMetaDataBuilder addPropertyInstallCallback(String property, String signature, ControllerState whenRequired, ControllerState dependentState, Cardinality cardinality)
+ {
+ AbstractCallbackMetaData callback = propIncallbackBuilder.createLifecycleMetaData(property);
+ callback.setSignature(signature);
+ callback.setState(whenRequired);
+ if (dependentState != null)
+ callback.setDependentState(dependentState);
+ callback.setCardinality(cardinality);
+ return this;
+ }
+
+ public BeanMetaDataBuilder addPropertyUninstallCallback(String property, String signature, ControllerState whenRequired, ControllerState dependentState, Cardinality cardinality)
+ {
+ AbstractCallbackMetaData callback = propUncallbackBuilder.createLifecycleMetaData(property);
+ callback.setSignature(signature);
+ callback.setState(whenRequired);
+ if (dependentState != null)
+ callback.setDependentState(dependentState);
+ callback.setCardinality(cardinality);
+ return this;
+ }
+
+ public BeanMetaDataBuilder addMethodInstallCallback(String method, String signature, ControllerState whenRequired, ControllerState dependentState, Cardinality cardinality)
+ {
+ AbstractCallbackMetaData callback = incallbackBuilder.createLifecycleMetaData(method);
+ callback.setSignature(signature);
+ callback.setState(whenRequired);
+ if (dependentState != null)
+ callback.setDependentState(dependentState);
+ callback.setCardinality(cardinality);
+ return this;
+ }
+
+ public BeanMetaDataBuilder addMethodUninstallCallback(String method, String signature, ControllerState whenRequired, ControllerState dependentState, Cardinality cardinality)
+ {
+ AbstractCallbackMetaData callback = uncallbackBuilder.createLifecycleMetaData(method);
+ callback.setSignature(signature);
+ callback.setState(whenRequired);
+ if (dependentState != null)
+ callback.setDependentState(dependentState);
+ callback.setCardinality(cardinality);
+ return this;
+ }
+
public ValueMetaData createNull()
{
return new AbstractValueMetaData();
}
-
+
public ValueMetaData createThis()
{
return new ThisValueMetaData();
}
-
+
public ValueMetaData createValue(Object value)
{
return new AbstractValueMetaData(value);
}
-
+
public ValueMetaData createString(String type, String value)
{
StringValueMetaData result = new StringValueMetaData(value);
result.setType(type);
return result;
}
-
+
public ValueMetaData createInject(Object bean, String property, ControllerState whenRequired, ControllerState dependentState)
{
AbstractDependencyValueMetaData result = new AbstractDependencyValueMetaData(bean, property);
@@ -504,7 +565,7 @@
result.setDependentState(dependentState);
return result;
}
-
+
@SuppressWarnings("unchecked")
public Collection<ValueMetaData> createCollection(String collectionType, String elementType)
{
@@ -515,7 +576,7 @@
collection.setElementType(elementType);
return (Collection) collection;
}
-
+
@SuppressWarnings("unchecked")
public List<ValueMetaData> createList(String listType, String elementType)
{
@@ -526,7 +587,7 @@
collection.setElementType(elementType);
return (List) collection;
}
-
+
@SuppressWarnings("unchecked")
public Set<ValueMetaData> createSet(String setType, String elementType)
{
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/CreateLifecycleMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/CreateLifecycleMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/CreateLifecycleMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -35,7 +35,7 @@
/**
* Create a new CreateLifecycleMetaDataBuilder.
*
- * @param beanMetaData
+ * @param beanMetaData the bean meta data
*/
public CreateLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
{
@@ -51,5 +51,4 @@
{
beanMetaData.setCreate(lifecycle);
}
-
}
\ No newline at end of file
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/DestroyLifecycleMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/DestroyLifecycleMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/DestroyLifecycleMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -35,7 +35,7 @@
/**
* Create a new DestroyLifecycleMetaDataBuilder.
*
- * @param beanMetaData
+ * @param beanMetaData the bean meta data
*/
public DestroyLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
{
@@ -51,5 +51,4 @@
{
beanMetaData.setDestroy(lifecycle);
}
-
}
\ No newline at end of file
Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallCallbackMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallCallbackMetaDataBuilder.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallCallbackMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -0,0 +1,59 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.beans.metadata.plugins.builder;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import org.jboss.beans.metadata.spi.CallbackMetaData;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.InstallCallbackMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCallbackMetaData;
+
+/**
+ * InstallCallbackMetaDataBuilder.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class InstallCallbackMetaDataBuilder extends AbstractCallbackMetaDataBuilder
+{
+ public InstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ super(beanMetaData);
+ }
+
+ protected void setLifecycle(AbstractBeanMetaData beanMetaData, AbstractCallbackMetaData lifecycle)
+ {
+ List<CallbackMetaData> callbacks = beanMetaData.getInstallCallbacks();
+ if (callbacks == null)
+ {
+ callbacks = new ArrayList<CallbackMetaData>();
+ beanMetaData.setInstallCallbacks(callbacks);
+ }
+ callbacks.add(lifecycle);
+ }
+
+ protected AbstractCallbackMetaData createLifecycleMetaData()
+ {
+ return new InstallCallbackMetaData();
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/InstallMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -21,11 +21,11 @@
*/
package org.jboss.beans.metadata.plugins.builder;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.spi.LifecycleMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInstallMetaData;
import org.jboss.beans.metadata.spi.InstallMetaData;
/**
@@ -38,7 +38,7 @@
/**
* Create a new StartLifecycleMetaDataBuilder.
*
- * @param beanMetaData
+ * @param beanMetaData the bean meta data
* @throws IllegalArgumentException
*/
public InstallMetaDataBuilder(AbstractBeanMetaData beanMetaData)
@@ -46,7 +46,7 @@
super(beanMetaData);
}
- protected void setLifecycle(AbstractBeanMetaData beanMetaData, LifecycleMetaData lifecycle)
+ protected void setLifecycle(AbstractBeanMetaData beanMetaData, AbstractInstallMetaData lifecycle)
{
List<InstallMetaData> installs = beanMetaData.getInstalls();
if (installs == null)
@@ -54,7 +54,6 @@
installs = new ArrayList<InstallMetaData>();
beanMetaData.setInstalls(installs);
}
- installs.add((InstallMetaData) lifecycle);
+ installs.add(lifecycle);
}
-
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/LifecycleMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/LifecycleMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/LifecycleMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -35,27 +35,30 @@
*
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
-public abstract class LifecycleMetaDataBuilder extends StateMetaDataBuilder
+public abstract class LifecycleMetaDataBuilder extends StateMetaDataBuilder<LifecycleMetaData>
{
protected ParameterMetaDataBuilderImpl<AbstractLifecycleMetaData> builder;
- public LifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ protected LifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
{
super(beanMetaData);
}
abstract LifecycleMetaData getLifecycle(AbstractBeanMetaData beanMetaData);
- protected AbstractLifecycleMetaData createLifecycleMetaData()
+ protected LifecycleMetaData createLifecycleMetaData()
{
return new AbstractLifecycleMetaData();
}
- protected void applyAfterSet(AbstractLifecycleMetaData lifecycle)
+ protected void applyAfterSet(LifecycleMetaData lifecycle)
{
- builder = new ParameterMetaDataBuilderImpl<AbstractLifecycleMetaData>(lifecycle);
+ builder = new ParameterMetaDataBuilderImpl<AbstractLifecycleMetaData>((AbstractLifecycleMetaData)lifecycle);
}
+ /**
+ * Check lifecycle.
+ */
protected void checkLlifecycle()
{
LifecycleMetaData lifecycle = getLifecycle(beanMetaData);
@@ -65,16 +68,29 @@
}
}
+ /**
+ * Add parameter.
+ *
+ * @param type the type
+ * @param value the value
+ * @return parameter builder
+ */
public ParameterMetaDataBuilder addParameterMetaData(String type, Object value)
{
checkLlifecycle();
return builder.addParameterMetaData(type, value);
}
+ /**
+ * Add parameter.
+ *
+ * @param type the type
+ * @param value the value
+ * @return parameter builder
+ */
public ParameterMetaDataBuilder addParameterMetaData(String type, ValueMetaData value)
{
checkLlifecycle();
return builder.addParameterMetaData(type, value);
}
-
}
Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyInstallCallbackMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyInstallCallbackMetaDataBuilder.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyInstallCallbackMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -0,0 +1,43 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.beans.metadata.plugins.builder;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCallbackMetaData;
+
+/**
+ * PropertyInstallCallbackMetaDataBuilder.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class PropertyInstallCallbackMetaDataBuilder extends InstallCallbackMetaDataBuilder
+{
+ public PropertyInstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ super(beanMetaData);
+ }
+
+ protected void setMethodInfo(AbstractCallbackMetaData lifecycle, String methodInfo)
+ {
+ lifecycle.setProperty(methodInfo);
+ }
+}
Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyUninstallCallbackMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyUninstallCallbackMetaDataBuilder.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/PropertyUninstallCallbackMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -0,0 +1,43 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.beans.metadata.plugins.builder;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCallbackMetaData;
+
+/**
+ * PropertyInstallCallbackMetaDataBuilder.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class PropertyUninstallCallbackMetaDataBuilder extends UninstallCallbackMetaDataBuilder
+{
+ public PropertyUninstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ super(beanMetaData);
+ }
+
+ protected void setMethodInfo(AbstractCallbackMetaData lifecycle, String methodInfo)
+ {
+ lifecycle.setProperty(methodInfo);
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StartLifecycleMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StartLifecycleMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StartLifecycleMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -35,7 +35,7 @@
/**
* Create a new StartLifecycleMetaDataBuilder.
*
- * @param beanMetaData
+ * @param beanMetaData the bean meta data
*/
public StartLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
{
@@ -51,5 +51,4 @@
{
beanMetaData.setStart(lifecycle);
}
-
}
\ No newline at end of file
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StateMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StateMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StateMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -22,7 +22,6 @@
package org.jboss.beans.metadata.plugins.builder;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
import org.jboss.beans.metadata.spi.LifecycleMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
@@ -31,10 +30,12 @@
* @see BeanMetaDataBuilder
* @see org.jboss.beans.metadata.plugins.builder.ParameterMetaDataBuilderImpl
*
+ * @param <T> exact type
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
-public abstract class StateMetaDataBuilder
+public abstract class StateMetaDataBuilder<T extends LifecycleMetaData>
{
+ /** The bean meta data */
protected AbstractBeanMetaData beanMetaData;
public StateMetaDataBuilder(AbstractBeanMetaData beanMetaData)
@@ -42,22 +43,54 @@
this.beanMetaData = beanMetaData;
}
- protected abstract void setLifecycle(AbstractBeanMetaData beanMetaData, LifecycleMetaData lifecycle);
+ /**
+ * Set lifecycle metadata to bean metadata.
+ *
+ * @param beanMetaData the bean metadata
+ * @param lifecycle the lifecycle
+ */
+ protected abstract void setLifecycle(AbstractBeanMetaData beanMetaData, T lifecycle);
- protected abstract AbstractLifecycleMetaData createLifecycleMetaData();
+ /**
+ * Create lifecycle meta data.
+ *
+ * @return lifecycle metadata instance
+ */
+ protected abstract T createLifecycleMetaData();
- protected abstract void applyAfterSet(AbstractLifecycleMetaData lifecycle);
+ /**
+ * Invoke after set.
+ *
+ * @param lifecycle the lifecycle
+ */
+ protected abstract void applyAfterSet(T lifecycle);
- public LifecycleMetaData createLifecycleMetaData(String methodName)
+ /**
+ * Create lifecycle meta data.
+ *
+ * @param methodInfo the method info
+ * @return lifecycle meta data
+ */
+ public T createLifecycleMetaData(String methodInfo)
{
- AbstractLifecycleMetaData lifecycle = createLifecycleMetaData();
- if (methodName != null)
+ T lifecycle = createLifecycleMetaData();
+ if (methodInfo != null)
{
- lifecycle.setMethodName(methodName);
+ setMethodInfo(lifecycle, methodInfo);
}
setLifecycle(beanMetaData, lifecycle);
applyAfterSet(lifecycle);
return lifecycle;
}
+ /**
+ * Set the methid info.
+ *
+ * @param lifecycle the lifecycle
+ * @param methodInfo the method info
+ */
+ protected void setMethodInfo(T lifecycle, String methodInfo)
+ {
+ lifecycle.setMethodName(methodInfo);
+ }
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StopLifecycleMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StopLifecycleMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/StopLifecycleMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -22,6 +22,7 @@
package org.jboss.beans.metadata.plugins.builder;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
import org.jboss.beans.metadata.spi.LifecycleMetaData;
/**
Added: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallCallbackMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallCallbackMetaDataBuilder.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallCallbackMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -0,0 +1,59 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.beans.metadata.plugins.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.UninstallCallbackMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCallbackMetaData;
+import org.jboss.beans.metadata.spi.CallbackMetaData;
+
+/**
+ * UninstallCallbackMetaDataBuilder.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class UninstallCallbackMetaDataBuilder extends AbstractCallbackMetaDataBuilder
+{
+ public UninstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ super(beanMetaData);
+ }
+
+ protected void setLifecycle(AbstractBeanMetaData beanMetaData, AbstractCallbackMetaData lifecycle)
+ {
+ List<CallbackMetaData> callbacks = beanMetaData.getUninstallCallbacks();
+ if (callbacks == null)
+ {
+ callbacks = new ArrayList<CallbackMetaData>();
+ beanMetaData.setUninstallCallbacks(callbacks);
+ }
+ callbacks.add(lifecycle);
+ }
+
+ protected AbstractCallbackMetaData createLifecycleMetaData()
+ {
+ return new UninstallCallbackMetaData();
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/UninstallMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -21,11 +21,11 @@
*/
package org.jboss.beans.metadata.plugins.builder;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.spi.LifecycleMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInstallMetaData;
import org.jboss.beans.metadata.spi.InstallMetaData;
/**
@@ -38,14 +38,14 @@
/**
* Create a new StartLifecycleMetaDataBuilder.
*
- * @param beanMetaData
+ * @param beanMetaData the bean meta data
*/
public UninstallMetaDataBuilder(AbstractBeanMetaData beanMetaData)
{
super(beanMetaData);
}
- protected void setLifecycle(AbstractBeanMetaData beanMetaData, LifecycleMetaData lifecycle)
+ protected void setLifecycle(AbstractBeanMetaData beanMetaData, AbstractInstallMetaData lifecycle)
{
List<InstallMetaData> uninstalls = beanMetaData.getUninstalls();
if (uninstalls == null)
@@ -53,7 +53,6 @@
uninstalls = new ArrayList<InstallMetaData>();
beanMetaData.setUninstalls(uninstalls);
}
- uninstalls.add((InstallMetaData) lifecycle);
+ uninstalls.add(lifecycle);
}
-
}
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/spi/builder/BeanMetaDataBuilder.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -34,6 +34,7 @@
import org.jboss.beans.info.spi.BeanAccessMode;
import org.jboss.dependency.spi.ControllerMode;
import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.Cardinality;
/**
* BeanMetaDataBuilder contract.
@@ -1108,6 +1109,266 @@
public abstract ParameterMetaDataBuilder addUninstallWithParameters(String methodName, String bean, ControllerState state, ControllerState whenRequired);
/**
+ * Add property install callback.
+ *
+ * @param property the property name
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyInstallCallback(String property)
+ {
+ return addPropertyInstallCallback(property, null, null);
+ }
+
+ /**
+ * Add property install callback.
+ *
+ * @param property the property name
+ * @param whenRequired the when required state
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyInstallCallback(String property, ControllerState whenRequired)
+ {
+ return addPropertyInstallCallback(property, whenRequired, null);
+ }
+
+ /**
+ * Add property install callback.
+ *
+ * @param property the property name
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyInstallCallback(String property, Cardinality cardinality)
+ {
+ return addPropertyInstallCallback(property, null, cardinality);
+ }
+
+ /**
+ * Add property install callback.
+ *
+ * @param property the property name
+ * @param whenRequired the when required state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyInstallCallback(String property, ControllerState whenRequired, Cardinality cardinality)
+ {
+ return addPropertyInstallCallback(property, null, whenRequired, null, cardinality);
+ }
+
+ /**
+ * Add property install callback.
+ *
+ * @param property the property name
+ * @param signature the property signature
+ * @param whenRequired the when required state
+ * @param dependentState the dependant state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public abstract BeanMetaDataBuilder addPropertyInstallCallback(
+ String property,
+ String signature,
+ ControllerState whenRequired,
+ ControllerState dependentState,
+ Cardinality cardinality);
+
+ /**
+ * Add property uninstall callback.
+ *
+ * @param property the property name
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyUninstallCallback(String property)
+ {
+ return addPropertyUninstallCallback(property, null, null);
+ }
+
+ /**
+ * Add property uninstall callback.
+ *
+ * @param property the property name
+ * @param whenRequired the when required state
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyUninstallCallback(String property, ControllerState whenRequired)
+ {
+ return addPropertyUninstallCallback(property, whenRequired, null);
+ }
+
+ /**
+ * Add property uninstall callback.
+ *
+ * @param property the property name
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyUninstallCallback(String property, Cardinality cardinality)
+ {
+ return addPropertyUninstallCallback(property, null, cardinality);
+ }
+
+ /**
+ * Add property uninstall callback.
+ *
+ * @param property the property name
+ * @param whenRequired the when required state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addPropertyUninstallCallback(String property, ControllerState whenRequired, Cardinality cardinality)
+ {
+ return addPropertyUninstallCallback(property, null, whenRequired, null, cardinality);
+ }
+
+ /**
+ * Add property uninstall callback.
+ *
+ * @param property the property name
+ * @param signature the property signature
+ * @param whenRequired the when required state
+ * @param dependentState the dependant state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public abstract BeanMetaDataBuilder addPropertyUninstallCallback(
+ String property,
+ String signature,
+ ControllerState whenRequired,
+ ControllerState dependentState,
+ Cardinality cardinality);
+
+ /**
+ * Add method install callback.
+ *
+ * @param method the method name
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodInstallCallback(String method)
+ {
+ return addMethodInstallCallback(method, null, null);
+ }
+
+ /**
+ * Add method install callback.
+ *
+ * @param method the method name
+ * @param whenRequired the when required state
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodInstallCallback(String method, ControllerState whenRequired)
+ {
+ return addMethodInstallCallback(method, whenRequired, null);
+ }
+
+ /**
+ * Add method install callback.
+ *
+ * @param method the method name
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodInstallCallback(String method, Cardinality cardinality)
+ {
+ return addMethodInstallCallback(method, null, cardinality);
+ }
+
+ /**
+ * Add method install callback.
+ *
+ * @param method the method name
+ * @param whenRequired the when required state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodInstallCallback(String method, ControllerState whenRequired, Cardinality cardinality)
+ {
+ return addMethodInstallCallback(method, null, whenRequired, null, cardinality);
+ }
+
+ /**
+ * Add method install callback.
+ *
+ * @param method the method name
+ * @param signature the method signature
+ * @param whenRequired the when required state
+ * @param dependentState the dependant state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public abstract BeanMetaDataBuilder addMethodInstallCallback(
+ String method,
+ String signature,
+ ControllerState whenRequired,
+ ControllerState dependentState,
+ Cardinality cardinality);
+
+ /**
+ * Add method uninstall callback.
+ *
+ * @param method the method name
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodUninstallCallback(String method)
+ {
+ return addMethodUninstallCallback(method, null, null);
+ }
+
+ /**
+ * Add method uninstall callback.
+ *
+ * @param method the method name
+ * @param whenRequired the when required state
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodUninstallCallback(String method, ControllerState whenRequired)
+ {
+ return addMethodUninstallCallback(method, whenRequired, null);
+ }
+
+ /**
+ * Add method uninstall callback.
+ *
+ * @param method the method name
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodUninstallCallback(String method, Cardinality cardinality)
+ {
+ return addMethodUninstallCallback(method, null, cardinality);
+ }
+
+ /**
+ * Add method uninstall callback.
+ *
+ * @param method the method name
+ * @param whenRequired the when required state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public BeanMetaDataBuilder addMethodUninstallCallback(String method, ControllerState whenRequired, Cardinality cardinality)
+ {
+ return addMethodUninstallCallback(method, null, whenRequired, null, cardinality);
+ }
+
+ /**
+ * Add method uninstall callback.
+ *
+ * @param method the method name
+ * @param signature the method signature
+ * @param whenRequired the when required state
+ * @param dependentState the dependant state
+ * @param cardinality the cardinality
+ * @return the builder
+ */
+ public abstract BeanMetaDataBuilder addMethodUninstallCallback(
+ String method,
+ String signature,
+ ControllerState whenRequired,
+ ControllerState dependentState,
+ Cardinality cardinality);
+
+ /**
* Create a null value
*
* @return the null value
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleCallbackBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleCallbackBean.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/support/SimpleCallbackBean.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -0,0 +1,53 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.config.support;
+
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class SimpleCallbackBean
+{
+ private Set<Transformer<?>> transformers = new HashSet<Transformer<?>>();
+
+ public Set<Transformer<?>> getTransformers()
+ {
+ return transformers;
+ }
+
+ public void setTransformers(Set<Transformer<?>> transformers)
+ {
+ this.transformers = transformers;
+ }
+
+ public void addTransformer(Transformer<?> transformer)
+ {
+ transformers.add(transformer);
+ }
+
+ public void removeTransformer(Transformer<?> transformer)
+ {
+ transformers.remove(transformer);
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-03-21 22:39:57 UTC (rev 71170)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-03-22 12:23:42 UTC (rev 71171)
@@ -30,8 +30,11 @@
import junit.framework.Test;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
+import org.jboss.beans.metadata.plugins.InstallCallbackMetaData;
+import org.jboss.beans.metadata.plugins.UninstallCallbackMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.CallbackMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.deployment.AbstractKernelDeployer;
@@ -39,7 +42,13 @@
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.test.kernel.config.support.SimpleBean;
+import org.jboss.test.kernel.config.support.SimpleCallbackBean;
import org.jboss.test.kernel.config.support.SimpleLifecycleBean;
+import org.jboss.test.kernel.config.support.TrimTransformer;
+import org.jboss.test.kernel.config.support.Transformer;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.Cardinality;
+
/**
* Builder TestCase.
*
@@ -154,13 +163,17 @@
AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
deployer.deploy(deployment);
-
- Object db = controller.getInstalledContext("DemandBean").getTarget();
- assertNotNull(db);
- Object sb = controller.getInstalledContext("SupplyBean").getTarget();
- assertNotNull(sb);
-
- deployer.undeploy(deployment);
+ try
+ {
+ Object db = controller.getInstalledContext("DemandBean").getTarget();
+ assertNotNull(db);
+ Object sb = controller.getInstalledContext("SupplyBean").getTarget();
+ assertNotNull(sb);
+ }
+ finally
+ {
+ deployer.undeploy(deployment);
+ }
}
@SuppressWarnings("deprecation")
@@ -181,13 +194,17 @@
AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
deployer.deploy(deployment);
-
- Object db = controller.getInstalledContext("DependOnBean").getTarget();
- assertNotNull(db);
- Object rb = controller.getInstalledContext("DependencyResolver").getTarget();
- assertNotNull(rb);
-
- deployer.undeploy(deployment);
+ try
+ {
+ Object db = controller.getInstalledContext("DependOnBean").getTarget();
+ assertNotNull(db);
+ Object rb = controller.getInstalledContext("DependencyResolver").getTarget();
+ assertNotNull(rb);
+ }
+ finally
+ {
+ deployer.undeploy(deployment);
+ }
}
@SuppressWarnings("deprecation")
@@ -228,36 +245,42 @@
AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
deployer.deploy(deployment);
-
- Object o = controller.getInstalledContext("CollectionBean").getTarget();
- assertNotNull(o);
- assertInstanceOf(o, SimpleBean.class);
- SimpleBean bean = (SimpleBean)o;
-
- Object[] arr = bean.getArray();
- assertEquals(2, arr.length);
- assertEquals(5, arr[0]);
- assertEquals(10, arr[1]);
-
- List<?> lst = bean.getList();
- assertEquals(2, lst.size());
- assertEquals("One", lst.get(0));
- assertEquals("Two", lst.get(1));
-
- Set<?> st = bean.getSet();
- assertEquals(2, lst.size());
- assertTrue(st.contains("En"));
- assertTrue(st.contains("To"));
-
- Collection<?> coll = bean.getCollection();
- assertEquals(2, lst.size());
- assertTrue(coll.contains("Eins"));
- assertTrue(coll.contains("Zwei"));
-
- Map<?, ?> mp = bean.getMap();
- assertEquals(2, mp.size());
- assertEquals("Uno", mp.get("One"));
- assertEquals("Dos", mp.get("Two"));
+ try
+ {
+ Object o = controller.getInstalledContext("CollectionBean").getTarget();
+ assertNotNull(o);
+ assertInstanceOf(o, SimpleBean.class);
+ SimpleBean bean = (SimpleBean)o;
+
+ Object[] arr = bean.getArray();
+ assertEquals(2, arr.length);
+ assertEquals(5, arr[0]);
+ assertEquals(10, arr[1]);
+
+ List<?> lst = bean.getList();
+ assertEquals(2, lst.size());
+ assertEquals("One", lst.get(0));
+ assertEquals("Two", lst.get(1));
+
+ Set<?> st = bean.getSet();
+ assertEquals(2, lst.size());
+ assertTrue(st.contains("En"));
+ assertTrue(st.contains("To"));
+
+ Collection<?> coll = bean.getCollection();
+ assertEquals(2, lst.size());
+ assertTrue(coll.contains("Eins"));
+ assertTrue(coll.contains("Zwei"));
+
+ Map<?, ?> mp = bean.getMap();
+ assertEquals(2, mp.size());
+ assertEquals("Uno", mp.get("One"));
+ assertEquals("Dos", mp.get("Two"));
+ }
+ finally
+ {
+ deployer.undeploy(deployment);
+ }
}
@SuppressWarnings("deprecation")
@@ -300,30 +323,424 @@
AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
deployer.deploy(deployment);
-
- Object o = controller.getInstalledContext("ReplaceBean").getTarget();
- assertNotNull(o);
- assertInstanceOf(o, SimpleBean.class);
- SimpleBean bean = (SimpleBean)o;
-
- Integer integer = bean.getAnInt();
- assertEquals(new Integer(5), integer);
-
- String string = bean.getAString();
- assertEquals("Two", string);
-
- Object obj = bean.getAnObject();
- assertEquals("Four", obj);
-
- Object[] arr = bean.getArray();
- assertEquals(2, arr.length);
- assertEquals(5, arr[0]);
- assertEquals(10, arr[1]);
-
- Map<?, ?> mp = bean.getMap();
- assertEquals(2, mp.size());
- assertEquals("Uno", mp.get("One"));
- assertEquals("Dos", mp.get("Two"));
+ try
+ {
+ Object o = controller.getInstalledContext("ReplaceBean").getTarget();
+ assertNotNull(o);
+ assertInstanceOf(o, SimpleBean.class);
+ SimpleBean bean = (SimpleBean)o;
+
+ Integer integer = bean.getAnInt();
+ assertEquals(new Integer(5), integer);
+
+ String string = bean.getAString();
+ assertEquals("Two", string);
+
+ Object obj = bean.getAnObject();
+ assertEquals("Four", obj);
+
+ Object[] arr = bean.getArray();
+ assertEquals(2, arr.length);
+ assertEquals(5, arr[0]);
+ assertEquals(10, arr[1]);
+
+ Map<?, ?> mp = bean.getMap();
+ assertEquals(2, mp.size());
+ assertEquals("Uno", mp.get("One"));
+ assertEquals("Dos", mp.get("Two"));
+ }
+ finally
+ {
+ deployer.undeploy(deployment);
+ }
}
+ public void testCallbacks() throws Throwable
+ {
+ BeanMetaDataBuilder builder;
+ BeanMetaData beanMetaData;
+ List<CallbackMetaData> callbacks;
+ CallbackMetaData callback;
+ KernelControllerContext cc;
+ Object target;
+ Transformer<?> transformer;
+ SimpleCallbackBean bean;
+
+ Kernel kernel = bootstrap();
+ KernelController controller = kernel.getController();
+ try
+ {
+ beanMetaData = BeanMetaDataBuilder.createBuilder("t", TrimTransformer.class.getName()).getBeanMetaData();
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ transformer = assertInstanceOf(target, Transformer.class);
+
+ // ct1
+
+ builder = BeanMetaDataBuilder.createBuilder("ct1", SimpleCallbackBean.class.getName());
+ builder.addPropertyInstallCallback("transformers");
+ builder.addPropertyUninstallCallback("transformers");
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getMethodName());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getMethodName());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct2
+
+ builder = BeanMetaDataBuilder.createBuilder("ct2", SimpleCallbackBean.class.getName());
+ builder.addPropertyInstallCallback("transformers", Cardinality.ONE_TO_MANY);
+ builder.addPropertyUninstallCallback("transformers", Cardinality.ONE_TO_MANY);
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getMethodName());
+ assertEquals(Cardinality.ONE_TO_MANY, callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getMethodName());
+ assertEquals(Cardinality.ONE_TO_MANY, callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct3
+
+ builder = BeanMetaDataBuilder.createBuilder("ct3", SimpleCallbackBean.class.getName());
+ builder.addPropertyInstallCallback("transformers", ControllerState.CREATE);
+ builder.addPropertyUninstallCallback("transformers", ControllerState.CREATE);
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getMethodName());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getMethodName());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct4
+
+ builder = BeanMetaDataBuilder.createBuilder("ct4", SimpleCallbackBean.class.getName());
+ builder.addPropertyInstallCallback("transformers", Set.class.getName(), ControllerState.CREATE, ControllerState.START, Cardinality.ZERO_TO_ONE);
+ builder.addPropertyUninstallCallback("transformers", Set.class.getName(), ControllerState.CREATE, ControllerState.START, Cardinality.ZERO_TO_ONE);
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.START, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertEquals(Set.class.getName(), callback.getSignature());
+ assertEquals(Cardinality.ZERO_TO_ONE, callback.getCardinality());
+ assertNull(callback.getMethodName());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("transformers", callback.getProperty());
+ assertEquals(ControllerState.START, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertEquals(Set.class.getName(), callback.getSignature());
+ assertEquals(Cardinality.ZERO_TO_ONE, callback.getCardinality());
+ assertNull(callback.getMethodName());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct1
+
+ builder = BeanMetaDataBuilder.createBuilder("mct1", SimpleCallbackBean.class.getName());
+ builder.addMethodInstallCallback("addTransformer");
+ builder.addMethodUninstallCallback("removeTransformer");
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("addTransformer", callback.getMethodName());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getProperty());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("removeTransformer", callback.getMethodName());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getProperty());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct2
+
+ builder = BeanMetaDataBuilder.createBuilder("mct2", SimpleCallbackBean.class.getName());
+ builder.addMethodInstallCallback("addTransformer", Cardinality.ONE_TO_MANY);
+ builder.addMethodUninstallCallback("removeTransformer", Cardinality.ONE_TO_MANY);
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("addTransformer", callback.getMethodName());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getProperty());
+ assertEquals(Cardinality.ONE_TO_MANY, callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("removeTransformer", callback.getMethodName());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertNull(callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getProperty());
+ assertEquals(Cardinality.ONE_TO_MANY, callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct3
+
+ builder = BeanMetaDataBuilder.createBuilder("mct3", SimpleCallbackBean.class.getName());
+ builder.addMethodInstallCallback("addTransformer", ControllerState.CREATE);
+ builder.addMethodUninstallCallback("removeTransformer", ControllerState.CREATE);
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("addTransformer", callback.getMethodName());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getProperty());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("removeTransformer", callback.getMethodName());
+ assertEquals(ControllerState.INSTALLED, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertNull(callback.getSignature());
+ assertNull(callback.getProperty());
+ assertNull(callback.getCardinality());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+
+ // ct4
+
+ builder = BeanMetaDataBuilder.createBuilder("mct4", SimpleCallbackBean.class.getName());
+ builder.addMethodInstallCallback("addTransformer", Transformer.class.getName(), ControllerState.CREATE, ControllerState.START, Cardinality.ZERO_TO_ONE);
+ builder.addMethodUninstallCallback("removeTransformer", Transformer.class.getName(), ControllerState.CREATE, ControllerState.START, Cardinality.ZERO_TO_ONE);
+ beanMetaData = builder.getBeanMetaData();
+
+ callbacks = beanMetaData.getInstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, InstallCallbackMetaData.class, false);
+ assertEquals("addTransformer", callback.getMethodName());
+ assertEquals(ControllerState.START, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertEquals(Transformer.class.getName(), callback.getSignature());
+ assertEquals(Cardinality.ZERO_TO_ONE, callback.getCardinality());
+ assertNull(callback.getProperty());
+ assertNull(callback.getParameters());
+
+ callbacks = beanMetaData.getUninstallCallbacks();
+ assertNotNull(callbacks);
+ assertEquals(1, callbacks.size());
+ callback = callbacks.get(0);
+ assertNotNull(callback);
+ assertInstanceOf(callback, UninstallCallbackMetaData.class, false);
+ assertEquals("removeTransformer", callback.getMethodName());
+ assertEquals(ControllerState.START, callback.getDependentState());
+ assertEquals(ControllerState.CREATE, callback.getState());
+ assertEquals(Transformer.class.getName(), callback.getSignature());
+ assertEquals(Cardinality.ZERO_TO_ONE, callback.getCardinality());
+ assertNull(callback.getProperty());
+ assertNull(callback.getParameters());
+
+ cc = controller.install(beanMetaData);
+ assertNotNull(cc);
+ assertEquals(ControllerState.INSTALLED, cc.getState());
+ target = cc.getTarget();
+ assertNotNull(target);
+ bean = assertInstanceOf(target, SimpleCallbackBean.class);
+ assertNotNull(bean.getTransformers());
+ assertEquals(1, bean.getTransformers().size());
+ assertSame(transformer, bean.getTransformers().iterator().next());
+ }
+ finally
+ {
+ controller.shutdown();
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list