[jboss-cvs] JBossAS SVN: r71960 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/beans/metadata/plugins/builder and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 10 12:47:26 EDT 2008
Author: alesj
Date: 2008-04-10 12:47:26 -0400 (Thu, 10 Apr 2008)
New Revision: 71960
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
Open up BeanMetaDataBuilder.
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java 2008-04-10 16:43:24 UTC (rev 71959)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractAnnotationMetaData.java 2008-04-10 16:47:26 UTC (rev 71960)
@@ -64,6 +64,11 @@
super();
}
+ public AbstractAnnotationMetaData(String annotation)
+ {
+ this.annotation = annotation;
+ }
+
public String getAnnotation()
{
return annotation;
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-04-10 16:43:24 UTC (rev 71959)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2008-04-10 16:47:26 UTC (rev 71960)
@@ -137,20 +137,130 @@
{
this.beanMetaData = beanMetaData;
// lifecycle builders
- createBuilder = new CreateLifecycleMetaDataBuilder(beanMetaData);
- startBuilder = new StartLifecycleMetaDataBuilder(beanMetaData);
- stopBuilder = new StopLifecycleMetaDataBuilder(beanMetaData);
- destroyBuilder = new DestroyLifecycleMetaDataBuilder(beanMetaData);
+ createBuilder = createCreateLifecycleMetaDataBuilder(beanMetaData);
+ startBuilder = createStartLifecycleMetaDataBuilder(beanMetaData);
+ stopBuilder = createStopLifecycleMetaDataBuilder(beanMetaData);
+ destroyBuilder = createDestroyLifecycleMetaDataBuilder(beanMetaData);
// install
- installBuilder = new InstallMetaDataBuilder(beanMetaData);
- uninstallBuilder = new UninstallMetaDataBuilder(beanMetaData);
+ installBuilder = createInstallMetaDataBuilder(beanMetaData);
+ uninstallBuilder = createUninstallMetaDataBuilder(beanMetaData);
// callback
- propIncallbackBuilder = new PropertyInstallCallbackMetaDataBuilder(beanMetaData);
- propUncallbackBuilder = new PropertyUninstallCallbackMetaDataBuilder(beanMetaData);
- incallbackBuilder = new InstallCallbackMetaDataBuilder(beanMetaData);
- uncallbackBuilder = new UninstallCallbackMetaDataBuilder(beanMetaData);
+ propIncallbackBuilder = createPropertyInstallCallbackMetaDataBuilder(beanMetaData);
+ propUncallbackBuilder = createPropertyUninstallCallbackMetaDataBuilder(beanMetaData);
+ incallbackBuilder = createInstallCallbackMetaDataBuilder(beanMetaData);
+ uncallbackBuilder = createUninstallCallbackMetaDataBuilder(beanMetaData);
}
+ /**
+ * Create lifecycle metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the lifecycle metadata builder
+ */
+ protected LifecycleMetaDataBuilder createCreateLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new CreateLifecycleMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create lifecycle metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the lifecycle metadata builder
+ */
+ protected LifecycleMetaDataBuilder createStartLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new StartLifecycleMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create lifecycle metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the lifecycle metadata builder
+ */
+ protected LifecycleMetaDataBuilder createStopLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new StopLifecycleMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create lifecycle metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the lifecycle metadata builder
+ */
+ protected LifecycleMetaDataBuilder createDestroyLifecycleMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new DestroyLifecycleMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create install metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the install builder
+ */
+ protected StateActionBuilder<AbstractInstallMetaData> createInstallMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new InstallMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create install metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the install builder
+ */
+ protected StateActionBuilder<AbstractInstallMetaData> createUninstallMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new UninstallMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create callback metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the callback metadata builder
+ */
+ private StateActionBuilder<AbstractCallbackMetaData> createPropertyInstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new PropertyInstallCallbackMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create callback metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the callback metadata builder
+ */
+ private StateActionBuilder<AbstractCallbackMetaData> createPropertyUninstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new PropertyUninstallCallbackMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create callback metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the callback metadata builder
+ */
+ private StateActionBuilder<AbstractCallbackMetaData> createInstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new InstallCallbackMetaDataBuilder(beanMetaData);
+ }
+
+ /**
+ * Create callback metadata builder.
+ *
+ * @param beanMetaData the bean metadata
+ * @return the callback metadata builder
+ */
+ private StateActionBuilder<AbstractCallbackMetaData> createUninstallCallbackMetaDataBuilder(AbstractBeanMetaData beanMetaData)
+ {
+ return new UninstallCallbackMetaDataBuilder(beanMetaData);
+ }
+
public BeanMetaData getBeanMetaData()
{
return beanMetaData;
@@ -186,6 +296,31 @@
return this;
}
+ /**
+ * Create annotation metadata.
+ *
+ * @param annotation the string annotation
+ * @return the annotation metadata
+ */
+ protected AnnotationMetaData createAnnotationMetaData(String annotation)
+ {
+ return new AbstractAnnotationMetaData(annotation);
+ }
+
+ /**
+ * Create annotation metadata.
+ *
+ * @param annotation the string annotation
+ * @param replace the replace flag
+ * @return the annotation metadata
+ */
+ protected AnnotationMetaData createAnnotationMetaData(String annotation, boolean replace)
+ {
+ AbstractAnnotationMetaData amd = new AbstractAnnotationMetaData(annotation);
+ amd.setReplace(replace);
+ return amd;
+ }
+
public BeanMetaDataBuilder setAnnotations(Set<String> annotations)
{
if (annotations != null && annotations.isEmpty() == false)
@@ -193,8 +328,8 @@
Set<AnnotationMetaData> amds = new HashSet<AnnotationMetaData>();
for (String annotation : annotations)
{
- AbstractAnnotationMetaData amd = new AbstractAnnotationMetaData();
- amd.setAnnotation(annotation);
+ AnnotationMetaData amd = createAnnotationMetaData(annotation);
+ amds.add(amd);
}
beanMetaData.setAnnotations(amds);
}
@@ -220,8 +355,7 @@
public BeanMetaDataBuilder addAnnotation(String annotation)
{
Set<AnnotationMetaData> annotations = getAnnotations();
- AbstractAnnotationMetaData amd = new AbstractAnnotationMetaData();
- amd.setAnnotation(annotation);
+ AnnotationMetaData amd = createAnnotationMetaData(annotation);
annotations.add(amd);
return this;
}
@@ -229,9 +363,7 @@
public BeanMetaDataBuilder addAnnotation(String annotation, boolean replace)
{
Set<AnnotationMetaData> annotations = getAnnotations();
- AbstractAnnotationMetaData amd = new AbstractAnnotationMetaData();
- amd.setAnnotation(annotation);
- amd.setReplace(replace);
+ AnnotationMetaData amd = createAnnotationMetaData(annotation, replace);
annotations.add(amd);
return this;
}
@@ -248,9 +380,21 @@
return this;
}
+ /**
+ * Create class loader metadata.
+ *
+ * @param classLoader the classloader value
+ * @return the classloader metadata
+ */
+ protected ClassLoaderMetaData createClassLoaderMetaData(ValueMetaData classLoader)
+ {
+ return new AbstractClassLoaderMetaData(classLoader);
+ }
+
public BeanMetaDataBuilder setClassLoader(ValueMetaData classLoader)
{
- beanMetaData.setClassLoader(new AbstractClassLoaderMetaData(classLoader));
+ ClassLoaderMetaData clvmd = createClassLoaderMetaData(classLoader);
+ beanMetaData.setClassLoader(clvmd);
return this;
}
@@ -260,12 +404,22 @@
return this;
}
+ /**
+ * Create abstract constructor metadata.
+ *
+ * @return abstract constructor metadata
+ */
+ protected AbstractConstructorMetaData createAbstractConstructorMetaData()
+ {
+ return new AbstractConstructorMetaData();
+ }
+
protected void checkConstructorBuilder()
{
AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) beanMetaData.getConstructor();
if (constructor == null)
{
- constructor = new AbstractConstructorMetaData();
+ constructor = createAbstractConstructorMetaData();
beanMetaData.setConstructor(constructor);
constructorBuilder = new ParameterMetaDataBuilderImpl<AbstractConstructorMetaData>(constructor);
}
@@ -324,27 +478,63 @@
return this;
}
+ /**
+ * Create property metadata.
+ *
+ * @param name the name
+ * @param value the value
+ * @return property metadata
+ */
+ protected PropertyMetaData createPropertyMetaData(String name, Object value)
+ {
+ return new AbstractPropertyMetaData(name, value);
+ }
+
public BeanMetaDataBuilder addPropertyMetaData(String name, Object value)
{
Set<PropertyMetaData> properties = getProperties();
removeProperty(properties, name);
- properties.add(new AbstractPropertyMetaData(name, value));
+ properties.add(createPropertyMetaData(name, value));
return this;
}
+ /**
+ * Create property metadata.
+ *
+ * @param name the name
+ * @param value the value
+ * @return property metadata
+ */
+ protected PropertyMetaData createPropertyMetaData(String name, String value)
+ {
+ return new AbstractPropertyMetaData(name, value);
+ }
+
public BeanMetaDataBuilder addPropertyMetaData(String name, String value)
{
Set<PropertyMetaData> properties = getProperties();
removeProperty(properties, name);
- properties.add(new AbstractPropertyMetaData(name, value));
+ properties.add(createPropertyMetaData(name, value));
return this;
}
+ /**
+ * Create property metadata.
+ *
+ * @param name the name
+ * @param value the value
+ * @return property metadata
+ */
+ protected PropertyMetaData createPropertyMetaData(String name, ValueMetaData value)
+ {
+ return new AbstractPropertyMetaData(name, value);
+ }
+
public BeanMetaDataBuilder addPropertyMetaData(String name, ValueMetaData value)
{
Set<PropertyMetaData> properties = getProperties();
removeProperty(properties, name);
- properties.add(new AbstractPropertyMetaData(name, value));
+ properties.add(createPropertyMetaData(name, value));
return this;
}
@@ -355,11 +545,11 @@
if (value instanceof ValueMetaData)
{
- properties.add(new AbstractPropertyMetaData(name, (ValueMetaData)value));
+ properties.add(createPropertyMetaData(name, (ValueMetaData)value));
}
else
{
- properties.add(new AbstractPropertyMetaData(name, value));
+ properties.add(createPropertyMetaData(name, value));
}
return this;
}
@@ -371,15 +561,22 @@
if (value instanceof ValueMetaData)
{
- properties.add(new AbstractPropertyMetaData(name, (ValueMetaData)value));
+ properties.add(createPropertyMetaData(name, (ValueMetaData)value));
}
else
{
- properties.add(new AbstractPropertyMetaData(name, value));
+ properties.add(createPropertyMetaData(name, value));
}
return this;
}
-
+
+ /**
+ * Remove previous matching property.
+ *
+ * @param properties the properties
+ * @param name the name
+ * @return modified set of properties
+ */
private Set<PropertyMetaData> removeProperty(Set<PropertyMetaData> properties, String name)
{
for (Iterator<PropertyMetaData> it = properties.iterator() ; it.hasNext() ; )
@@ -392,7 +589,12 @@
}
return properties;
}
-
+
+ /**
+ * Get the properties.
+ *
+ * @return the properties
+ */
private Set<PropertyMetaData> getProperties()
{
Set<PropertyMetaData> properties = beanMetaData.getProperties();
@@ -500,6 +702,21 @@
return this;
}
+ /**
+ * Create supply metadata.
+ *
+ * @param supply the supply
+ * @param type the type
+ * @return supply metadata
+ */
+ protected SupplyMetaData createSupplyMetaData(Object supply, String type)
+ {
+ AbstractSupplyMetaData asmd = new AbstractSupplyMetaData(supply);
+ if (type != null)
+ asmd.setType(type);
+ return asmd;
+ }
+
public BeanMetaDataBuilder addSupply(Object supply, String type)
{
Set<SupplyMetaData> supplies = beanMetaData.getSupplies();
@@ -508,13 +725,28 @@
supplies = new HashSet<SupplyMetaData>();
beanMetaData.setSupplies(supplies);
}
- AbstractSupplyMetaData asmd = new AbstractSupplyMetaData(supply);
- if (type != null)
- asmd.setType(type);
- supplies.add(asmd);
+ supplies.add(createSupplyMetaData(supply, type));
return this;
}
+ /**
+ * Create demand metadata.
+ *
+ * @param demand the demand
+ * @param whenRequired the when required
+ * @param transformer the transformer
+ * @return the demand metadata
+ */
+ protected DemandMetaData createDemandMetaData(Object demand, ControllerState whenRequired, String transformer)
+ {
+ AbstractDemandMetaData admd = new AbstractDemandMetaData(demand);
+ if (whenRequired != null)
+ admd.setWhenRequired(whenRequired);
+ if (transformer != null)
+ admd.setTransformer(transformer);
+ return admd;
+ }
+
public BeanMetaDataBuilder addDemand(Object demand, ControllerState whenRequired, String transformer)
{
Set<DemandMetaData> demands = beanMetaData.getDemands();
@@ -523,15 +755,15 @@
demands = new HashSet<DemandMetaData>();
beanMetaData.setDemands(demands);
}
- AbstractDemandMetaData admd = new AbstractDemandMetaData(demand);
- if (whenRequired != null)
- admd.setWhenRequired(whenRequired);
- if (transformer != null)
- admd.setTransformer(transformer);
- demands.add(admd);
+ demands.add(createDemandMetaData(demand, whenRequired, transformer));
return this;
}
+ protected DependencyMetaData createDependencyMetaData(Object dependency)
+ {
+ return new AbstractDependencyMetaData(dependency);
+ }
+
public BeanMetaDataBuilder addDependency(Object dependency)
{
Set<DependencyMetaData> dependencies = beanMetaData.getDepends();
@@ -540,7 +772,7 @@
dependencies = new HashSet<DependencyMetaData>();
beanMetaData.setDepends(dependencies);
}
- dependencies.add(new AbstractDependencyMetaData(dependency));
+ dependencies.add(createDependencyMetaData(dependency));
return this;
}
@@ -632,9 +864,21 @@
return result;
}
+ /**
+ * Create abstract dependency metadata.
+ *
+ * @param bean the bean
+ * @param property the property
+ * @return abstract dependency value metadata
+ */
+ protected AbstractDependencyValueMetaData createAbstractDependencyValueMetaData(Object bean, String property)
+ {
+ return new AbstractDependencyValueMetaData(bean, property);
+ }
+
public ValueMetaData createInject(Object bean, String property, ControllerState whenRequired, ControllerState dependentState)
{
- AbstractDependencyValueMetaData result = new AbstractDependencyValueMetaData(bean, property);
+ AbstractDependencyValueMetaData result = createAbstractDependencyValueMetaData(bean, property);
if (whenRequired != null)
result.setWhenRequiredState(whenRequired);
if (dependentState != null)
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-04-10 16:43:24 UTC (rev 71959)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-04-10 16:47:26 UTC (rev 71960)
@@ -789,8 +789,7 @@
builder = BeanMetaDataBuilderFactory.createBuilder("other", SimpleBean.class.getName());
builder.setAnnotations(Collections.singleton("@" + SimpleAnnotation.class.getName() + "(name=\"foobar\")"));
controller.install(builder.getBeanMetaData());
- assertNotNull(controller.getInstalledContext("other"));
- cc = controller.getInstalledContext("bean");
+ cc = controller.getInstalledContext("other");
assertNotNull(cc);
metaData = cc.getScopeInfo().getMetaData();
assertNotNull(metaData);
More information about the jboss-cvs-commits
mailing list