[jboss-cvs] JBossAS SVN: r70274 - in projects/microcontainer/trunk/aop-mc-int/src: main/org/jboss/aop/microcontainer/beans/xml and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 29 11:09:05 EST 2008
Author: kabir.khan at jboss.com
Date: 2008-02-29 11:09:04 -0500 (Fri, 29 Feb 2008)
New Revision: 70274
Added:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerUtil.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowEntry.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/MixinData.java
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.java
Removed:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BeanMetaDataUtil.java
Modified:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerAwareBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowCalled.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowNotCalled.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowStackBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/DomainBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/IntroductionBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/LifecycleBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/PrecedenceBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/StackBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/TypeDefBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyJaxbDeploymentTestCaseNotAutomatic1.xml
Log:
[JBAOP-526] Use BeanMetaDataBuilder instead of BeanUtil
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/ArrayBindBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -25,10 +25,10 @@
import java.util.List;
import org.jboss.aop.microcontainer.beans.ArrayBinding;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.dependency.spi.ControllerState;
import org.jboss.util.id.GUID;
/**
@@ -68,50 +68,49 @@
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
//Create AspectBinding
- AbstractBeanMetaData binding = new AbstractBeanMetaData();
if (name == null)
{
name = GUID.asString();
}
- binding.setName(name);
- BeanMetaDataUtil.setSimpleProperty(binding, "name", name);
- binding.setBean(ArrayBinding.class.getName());
- BeanMetaDataUtil.setSimpleProperty(binding, "type", type);
- util.setAspectManagerProperty(binding, "manager");
- result.add(binding);
+ BeanMetaDataBuilder bindingBuilder = BeanMetaDataBuilder.createBuilder(name, ArrayBinding.class.getName());
+ bindingBuilder.addPropertyMetaData("name", name);
+ bindingBuilder.addPropertyMetaData("type", type);
+ util.setAspectManagerProperty(bindingBuilder, "manager");
+ result.add(bindingBuilder.getBeanMetaData());
+
if (interceptors.size() > 0)
{
- AbstractListMetaData almd = new AbstractListMetaData();
+ List<ValueMetaData> bindingInterceptors = bindingBuilder.createList();
int i = 0;
for (BaseInterceptorData interceptor : interceptors)
{
- AbstractBeanMetaData bmd = new AbstractBeanMetaData(interceptor.getBeanClassName());
String intName = name + "$" + i++;
- bmd.setName(intName);
- util.setAspectManagerProperty(bmd, "manager");
- BeanMetaDataUtil.DependencyBuilder builder = new BeanMetaDataUtil.DependencyBuilder(bmd, "binding", name).setState("Instantiated");
- BeanMetaDataUtil.setDependencyProperty(builder);
+ BeanMetaDataBuilder interceptorBuilder = BeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
+ util.setAspectManagerProperty(interceptorBuilder, "manager");
+ ValueMetaData injectBinding = interceptorBuilder.createInject(name, null, null, ControllerState.INSTANTIATED);
+ interceptorBuilder.addPropertyMetaData("binding", injectBinding);
if (interceptor instanceof AdviceOrInterceptorData)
{
- BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "aspect", interceptor.getRefName());
- BeanMetaDataUtil.setDependencyProperty(db);
+ ValueMetaData injectAspect = interceptorBuilder.createInject(interceptor.getRefName());
+ interceptorBuilder.addPropertyMetaData("aspect", injectAspect);
if (((AdviceOrInterceptorData)interceptor).getAdviceMethod() != null)
{
- BeanMetaDataUtil.setSimpleProperty(bmd, "aspectMethod", ((AdviceOrInterceptorData)interceptor).getAdviceMethod());
+ interceptorBuilder.addPropertyMetaData("aspectMethod", ((AdviceOrInterceptorData)interceptor).getAdviceMethod());
}
- BeanMetaDataUtil.setSimpleProperty(bmd, "type", ((AdviceOrInterceptorData)interceptor).getType());
+ interceptorBuilder.addPropertyMetaData("type", ((AdviceOrInterceptorData)interceptor).getType());
}
else
{
- BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "stack", interceptor.getRefName());
- BeanMetaDataUtil.setDependencyProperty(db);
+ ValueMetaData injectStack = interceptorBuilder.createInject(interceptor.getRefName());
+ interceptorBuilder.addPropertyMetaData("stack", injectStack);
}
- result.add(bmd);
- almd.add(new AbstractInjectionValueMetaData(intName));
- BeanMetaDataUtil.setSimpleProperty(binding, "advices", almd);
+ result.add(interceptorBuilder.getBeanMetaData());
+ ValueMetaData injectInterceptor = bindingBuilder.createInject(intName);
+ bindingInterceptors.add(injectInterceptor);
}
+ bindingBuilder.addPropertyMetaData("advices", bindingInterceptors);
}
return result;
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -31,17 +31,12 @@
import javax.xml.bind.annotation.XmlType;
import org.jboss.aop.microcontainer.beans.Aspect;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInstallMetaData;
-import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
-import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
-import org.jboss.beans.metadata.plugins.ThisValueMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.InstallMetaData;
import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.xb.annotations.JBossXmlSchema;
/**
@@ -125,72 +120,52 @@
result.add(this);
//Add the Aspect
- AbstractBeanMetaData aspect = new AbstractBeanMetaData();
- aspect.setName(aspectName);
- aspect.setBean(Aspect.class.getName());
- BeanMetaDataUtil.setSimpleProperty(aspect, "scope", scope);
- util.setAspectManagerProperty(aspect, "manager");
+ BeanMetaDataBuilder aspectBuilder = BeanMetaDataBuilder.createBuilder(aspectName, Aspect.class.getName());
+ aspectBuilder.addPropertyMetaData("scope", scope);
+ util.setAspectManagerProperty(aspectBuilder, "manager");
+
if (factory != null)
{
- BeanMetaDataUtil.setSimpleProperty(aspect, "factory", Boolean.TRUE);
+ aspectBuilder.addPropertyMetaData("factory", Boolean.TRUE);
}
- result.add(aspect);
+ result.add(aspectBuilder.getBeanMetaData());
if (hasInjectedBeans())
{
- configureWithDependencies(aspect);
+ configureWithDependencies(aspectBuilder);
}
else
{
- configureNoDependencies(aspect);
+ configureNoDependencies(aspectBuilder);
}
return result;
}
- private void configureWithDependencies(AbstractBeanMetaData aspect)
+ private void configureWithDependencies(BeanMetaDataBuilder aspectBuilder)
{
- aspect.addProperty(new AbstractPropertyMetaData("adviceBean", name));
+ aspectBuilder.addPropertyMetaData("adviceBean", name);
- AbstractInstallMetaData installAspect = new AbstractInstallMetaData();
- installAspect.setBean(aspect.getName());
- installAspect.setMethodName("install");
- ArrayList<ParameterMetaData> parameters = new ArrayList<ParameterMetaData>();
- parameters.add(new AbstractParameterMetaData(new ThisValueMetaData()));
- installAspect.setParameters(parameters);
-
- List<InstallMetaData> installs = getInstalls();
- if (installs == null)
- installs = new ArrayList<InstallMetaData>();
- installs.add(installAspect);
- setInstalls(installs);
-
- AbstractInstallMetaData uninstallAspect = new AbstractInstallMetaData();
- uninstallAspect.setBean(aspect.getName());
- uninstallAspect.setMethodName("uninstall");
-
- List<InstallMetaData> uninstalls = getUninstalls();
- if (uninstalls == null)
- uninstalls = new ArrayList<InstallMetaData>();
- uninstalls.add(uninstallAspect);
- setUninstalls(uninstalls);
-
+ BeanMetaDataBuilder thisBuilder = BeanMetaDataBuilder.createBuilder(this);
+ thisBuilder.addInstallWithThis("install", aspectBuilder.getBeanMetaData().getName());
+ thisBuilder.addUninstall("uninstall", aspectBuilder.getBeanMetaData().getName());
}
- private void configureNoDependencies(AbstractBeanMetaData aspect/*, AbstractBeanMetaData aspectBinding*/)
+ private void configureNoDependencies(BeanMetaDataBuilder aspectBuilder)
{
- aspect.addProperty(new AbstractPropertyMetaData("advice", new AbstractDependencyValueMetaData(name)));
+ ValueMetaData inject = aspectBuilder.createInject(name);
+ aspectBuilder.addPropertyMetaData("advice", inject);
}
private boolean hasInjectedBeans()
{
- ArrayList<AbstractDependencyValueMetaData> dependencies = new ArrayList<AbstractDependencyValueMetaData>();
+ ArrayList<ValueMetaData> dependencies = new ArrayList<ValueMetaData>();
getDependencies(dependencies, this);
- for (AbstractDependencyValueMetaData dep : dependencies)
+ for (ValueMetaData dep : dependencies)
{
- if(!((String)dep.getValue()).startsWith("jboss.kernel:service="))
+ if(!((String)dep.getUnderlyingValue()).startsWith("jboss.kernel:service="))
{
return true;
}
@@ -198,7 +173,7 @@
return false;
}
- private void getDependencies(ArrayList<AbstractDependencyValueMetaData> dependencies, MetaDataVisitorNode node)
+ private void getDependencies(ArrayList<ValueMetaData> dependencies, MetaDataVisitorNode node)
{
Iterator<? extends MetaDataVisitorNode> children = node.getChildren();
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerAwareBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerAwareBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerAwareBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -33,7 +33,7 @@
{
private static final long serialVersionUID = 1L;
- protected BeanMetaDataUtil util = new BeanMetaDataUtil();
+ protected AspectManagerUtil util = new AspectManagerUtil();
@XmlAttribute(name="manager-bean")
public void setManagerBean(String managerBean)
Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerUtil.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerUtil.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/AspectManagerUtil.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,74 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.aop.microcontainer.beans.beanmetadatafactory;
+
+
+import java.io.Serializable;
+
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class AspectManagerUtil implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /** Unless specified use the bean with this name as the aspect manager */
+ protected final static String DEFAULT_ASPECT_MANAGER = "AspectManager";
+
+ /** The bean name of the aspect manager to use */
+ protected String managerBean = DEFAULT_ASPECT_MANAGER;
+
+ /** The property of the aspect manager bean, if any, containing the aspect manager */
+ protected String managerProperty;
+
+
+ public String getManagerBean()
+ {
+ return managerBean;
+ }
+
+ public void setManagerBean(String managerBean)
+ {
+ this.managerBean = managerBean;
+ }
+
+ public String getManagerProperty()
+ {
+ return managerProperty;
+ }
+
+ public void setManagerProperty(String aspectManagerProperty)
+ {
+ this.managerProperty = aspectManagerProperty;
+ }
+
+ public void setAspectManagerProperty(BeanMetaDataBuilder builder, String propertyName)
+ {
+ ValueMetaData value = builder.createInject(managerBean, managerProperty);
+ builder.addPropertyMetaData(propertyName, value);
+ }
+}
Deleted: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BeanMetaDataUtil.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BeanMetaDataUtil.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BeanMetaDataUtil.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -1,165 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file 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.aop.microcontainer.beans.beanmetadatafactory;
-
-
-import java.io.Serializable;
-
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
-import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.dependency.spi.ControllerState;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class BeanMetaDataUtil implements Serializable
-{
- private static final long serialVersionUID = 1L;
-
- /** Unless specified use the bean with this name as the aspect manager */
- protected final static String DEFAULT_ASPECT_MANAGER = "AspectManager";
-
- /** The bean name of the aspect manager to use */
- protected String managerBean = DEFAULT_ASPECT_MANAGER;
-
- /** The property of the aspect manager bean, if any, containing the aspect manager */
- protected String managerProperty;
-
-
- public String getManagerBean()
- {
- return managerBean;
- }
-
- public void setManagerBean(String managerBean)
- {
- this.managerBean = managerBean;
- }
-
- public String getManagerProperty()
- {
- return managerProperty;
- }
-
- public void setManagerProperty(String aspectManagerProperty)
- {
- this.managerProperty = aspectManagerProperty;
- }
-
- public static void setSimpleProperty(AbstractBeanMetaData bean, String propertyName, Object value)
- {
- bean.addProperty(new AbstractPropertyMetaData(propertyName, value));
- }
-
- public static void setSimpleProperty(AbstractBeanMetaData bean, String propertyName, ValueMetaData value)
- {
- bean.addProperty(new AbstractPropertyMetaData(propertyName, value));
- }
-
- public static void setDependencyProperty(DependencyBuilder builder)
- {
- AbstractDependencyValueMetaData advmd = new AbstractDependencyValueMetaData(builder.getDependencyBean(), builder.getDependencyProperty());
- if (builder.getState() != null)
- {
- advmd.setDependentState(new ControllerState(builder.getState()));
- }
- AbstractBeanMetaData bean = builder.getBean();
- AbstractPropertyMetaData existing = (AbstractPropertyMetaData)bean.getProperty(builder.getPropertyName());
- if (existing != null)
- {
- existing.setValue(advmd);
- }
- else
- {
- bean.addProperty(new AbstractPropertyMetaData(builder.getPropertyName(), advmd));
- }
- }
-
- public void setAspectManagerProperty(AbstractBeanMetaData bean, String propertyName)
- {
- DependencyBuilder builder = new DependencyBuilder(bean, propertyName, managerBean).setDependencyProperty(managerProperty);
- setDependencyProperty(builder);
- }
-
- public static class DependencyBuilder
- {
- AbstractBeanMetaData bean;
- String propertyName;
- String dependencyBean;
- String dependencyProperty;
- String state;
-
- public DependencyBuilder(AbstractBeanMetaData bean, String propertyName, String dependencyBean)
- {
- if (bean == null)
- throw new IllegalArgumentException("Null bean");
- if (propertyName == null)
- throw new IllegalArgumentException("Null property name");
- if (dependencyBean == null)
- throw new IllegalArgumentException("Null dependency bean");
- this.bean = bean;
- this.propertyName = propertyName;
- this.dependencyBean = dependencyBean;
- }
-
- DependencyBuilder setDependencyProperty(String dependencyProperty)
- {
- this.dependencyProperty = dependencyProperty;
- return this;
- }
-
- DependencyBuilder setState(String state)
- {
- this.state = state;
- return this;
- }
-
- public AbstractBeanMetaData getBean()
- {
- return bean;
- }
-
- public String getPropertyName()
- {
- return propertyName;
- }
-
- public String getDependencyBean()
- {
- return dependencyBean;
- }
-
- public String getDependencyProperty()
- {
- return dependencyProperty;
- }
-
- public String getState()
- {
- return state;
- }
- }
-}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/BindBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -31,10 +31,10 @@
import javax.xml.bind.annotation.XmlRootElement;
import org.jboss.aop.microcontainer.beans.AspectBinding;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.dependency.spi.ControllerState;
import org.jboss.util.id.GUID;
import org.jboss.xb.annotations.JBossXmlSchema;
@@ -76,56 +76,52 @@
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
//Create AspectBinding
- AbstractBeanMetaData binding = new AbstractBeanMetaData();
if (name == null)
{
name = GUID.asString();
}
- binding.setName(name);
- BeanMetaDataUtil.setSimpleProperty(binding, "name", name);
- binding.setBean(AspectBinding.class.getName());
-
- BeanMetaDataUtil.setSimpleProperty(binding, "pointcut", pointcut);
-
+ BeanMetaDataBuilder bindingBuilder = BeanMetaDataBuilder.createBuilder(name, AspectBinding.class.getName());
+ bindingBuilder.addPropertyMetaData("name", name);
if (cflow != null)
{
- BeanMetaDataUtil.setSimpleProperty(binding, "cflow", cflow);
+ bindingBuilder.addPropertyMetaData("cflow", cflow);
}
- util.setAspectManagerProperty(binding, "manager");
- result.add(binding);
+ bindingBuilder.addPropertyMetaData("pointcut", pointcut);
+ util.setAspectManagerProperty(bindingBuilder, "manager");
+ result.add(bindingBuilder.getBeanMetaData());
if (interceptors.size() > 0)
{
- AbstractListMetaData almd = new AbstractListMetaData();
+ List<ValueMetaData> bindingInterceptors = bindingBuilder.createList();
int i = 0;
for (BaseInterceptorData interceptor : interceptors)
{
- AbstractBeanMetaData bmd = new AbstractBeanMetaData(interceptor.getBeanClassName());
String intName = name + "$" + i++;
- bmd.setName(intName);
- util.setAspectManagerProperty(bmd, "manager");
- BeanMetaDataUtil.DependencyBuilder builder = new BeanMetaDataUtil.DependencyBuilder(bmd, "binding", name).setState("Instantiated");
- BeanMetaDataUtil.setDependencyProperty(builder);
+ BeanMetaDataBuilder interceptorBuilder = BeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
+ util.setAspectManagerProperty(interceptorBuilder, "manager");
+ ValueMetaData injectBinding = interceptorBuilder.createInject(name, null, null, ControllerState.INSTANTIATED);
+ interceptorBuilder.addPropertyMetaData("binding", injectBinding);
if (interceptor instanceof AdviceOrInterceptorData)
{
- BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "aspect", interceptor.getRefName());
- BeanMetaDataUtil.setDependencyProperty(db);
+ ValueMetaData injectAspect = interceptorBuilder.createInject(interceptor.getRefName());
+ interceptorBuilder.addPropertyMetaData("aspect", injectAspect);
if (((AdviceOrInterceptorData)interceptor).getAdviceMethod() != null)
{
- BeanMetaDataUtil.setSimpleProperty(bmd, "aspectMethod", ((AdviceOrInterceptorData)interceptor).getAdviceMethod());
+ interceptorBuilder.addPropertyMetaData("aspectMethod", ((AdviceOrInterceptorData)interceptor).getAdviceMethod());
}
- BeanMetaDataUtil.setSimpleProperty(bmd, "type", ((AdviceOrInterceptorData)interceptor).getType());
+ interceptorBuilder.addPropertyMetaData("type", ((AdviceOrInterceptorData)interceptor).getType());
}
else
{
- BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "stack", interceptor.getRefName());
- BeanMetaDataUtil.setDependencyProperty(db);
+ ValueMetaData injectStack = interceptorBuilder.createInject(interceptor.getRefName());
+ interceptorBuilder.addPropertyMetaData("stack", injectStack);
}
- result.add(bmd);
- almd.add(new AbstractInjectionValueMetaData(intName));
+ result.add(interceptorBuilder.getBeanMetaData());
+ ValueMetaData injectInterceptor = bindingBuilder.createInject(intName);
+ bindingInterceptors.add(injectInterceptor);
}
- BeanMetaDataUtil.setSimpleProperty(binding, "advices", almd);
+ bindingBuilder.addPropertyMetaData("advices", bindingInterceptors);
}
return result;
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowCalled.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowCalled.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowCalled.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -21,28 +21,13 @@
*/
package org.jboss.aop.microcontainer.beans.beanmetadatafactory;
-import javax.xml.bind.annotation.XmlAttribute;
-
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
-public class CFlowCalled
+public class CFlowCalled extends CFlowEntry
{
- String expr;
-
- public String getExpr()
- {
- return expr;
- }
-
- @XmlAttribute
- public void setExpr(String expr)
- {
- this.expr = expr;
- }
-
public boolean getCalled()
{
return true;
Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowEntry.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowEntry.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowEntry.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,56 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.aop.microcontainer.beans.beanmetadatafactory;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class CFlowEntry
+{
+ private String expr;
+ private boolean called;
+
+ public String getExpr()
+ {
+ return expr;
+ }
+
+ @XmlAttribute
+ public void setExpr(String expr)
+ {
+ this.expr = expr;
+ }
+
+ public boolean getCalled()
+ {
+ return called;
+ }
+
+ public void setCalled(boolean called)
+ {
+ this.called = called;
+ }
+}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowNotCalled.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowNotCalled.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowNotCalled.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -32,5 +32,4 @@
{
return false;
}
-
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowStackBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowStackBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/CFlowStackBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -30,11 +30,11 @@
import javax.xml.bind.annotation.XmlRootElement;
import org.jboss.aop.microcontainer.beans.CFlowStack;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
+import org.jboss.aop.microcontainer.beans.CFlowStackEntry;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.xb.annotations.JBossXmlSchema;
/**
@@ -49,10 +49,8 @@
implements BeanMetaDataFactory
{
private static final long serialVersionUID = 1L;
- /** For use when using the old handlers */
- private ArrayList<AbstractBeanMetaData> entries = new ArrayList<AbstractBeanMetaData>();
- private List<CFlowCalled> calledEntries = new ArrayList<CFlowCalled>();
+ private List<CFlowEntry> calledEntries = new ArrayList<CFlowEntry>();
public CFlowStackBeanMetaDataFactory()
{
@@ -65,56 +63,46 @@
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
//Add the Aspect
- AbstractBeanMetaData cflowStack = new AbstractBeanMetaData(CFlowStack.class.getName());
- cflowStack.setName(getName());
- BeanMetaDataUtil.setSimpleProperty(cflowStack, "name", getName());
- util.setAspectManagerProperty(cflowStack, "manager");
- result.add(cflowStack);
+ BeanMetaDataBuilder cflowStackBuilder = BeanMetaDataBuilder.createBuilder(getName(), CFlowStack.class.getName());
+ cflowStackBuilder.addPropertyMetaData("name", getName());
+ util.setAspectManagerProperty(cflowStackBuilder, "manager");
+ result.add(cflowStackBuilder.getBeanMetaData());
- AbstractListMetaData lmd = new AbstractListMetaData();
- lmd.setType(ArrayList.class.getName());
- BeanMetaDataUtil.setSimpleProperty(cflowStack, "entries", lmd);
+ List<ValueMetaData> entryList = cflowStackBuilder.createList(null, ArrayList.class.getName());
+ cflowStackBuilder.addPropertyMetaData("entries", entryList);
int i = 0;
- if (entries != null)
- {
- for (AbstractBeanMetaData entry : entries)
- {
- String entryName = cflowStack.getName() + "$" + i++;
- entry.setName(entryName);
- lmd.add(new AbstractInjectionValueMetaData(entryName));
- result.add(entry);
- }
- }
if (calledEntries != null)
{
- for (CFlowCalled called : calledEntries)
+ for (CFlowEntry entry : calledEntries)
{
- AbstractBeanMetaData bmd = new AbstractBeanMetaData();
- String entryName = cflowStack.getName() + "$" + i++;
- bmd.setName(name);
- BeanMetaDataUtil.setSimpleProperty(bmd, "called", called);
- lmd.add(new AbstractInjectionValueMetaData(entryName));
+ String entryName = getName() + "$" + i++;
+ BeanMetaDataBuilder entryBuilder = BeanMetaDataBuilder.createBuilder(entryName, CFlowStackEntry.class.getName());
+ entryBuilder.addPropertyMetaData("called", entry.getCalled());
+ entryBuilder.addPropertyMetaData("expr", entry.getExpr());
+ ValueMetaData injectEntry = entryBuilder.createInject(entryName);
+ entryList.add(injectEntry);
+ result.add(entryBuilder.getBeanMetaData());
}
}
return result;
}
- public void addEntry(AbstractBeanMetaData entry)
+ public void addEntry(CFlowEntry entry)
{
- entries.add(entry);
+ calledEntries.add(entry);
}
- public List<CFlowCalled> getCalledEntries()
+ public List<CFlowEntry> getCalledEntries()
{
return calledEntries;
}
@XmlElements({
- @XmlElement(name="called", type=CFlowCalled.class),
+ @XmlElement(name="called", type=CFlowEntry.class),
@XmlElement(name="not-called", type=CFlowNotCalled.class)
})
- public void setCalledEntries(List<CFlowCalled> calledEntries)
+ public void setCalledEntries(List<CFlowEntry> calledEntries)
{
this.calledEntries = calledEntries;
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/DomainBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/DomainBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/DomainBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -26,9 +26,9 @@
import org.jboss.aop.microcontainer.beans.AOPDomain;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
/**
*
@@ -80,28 +80,27 @@
{
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
- AbstractBeanMetaData domain = new AbstractBeanMetaData(AOPDomain.class.getName());
- BeanMetaDataUtil.setSimpleProperty(domain, "name", getName());
- domain.setName(getName());
+ BeanMetaDataBuilder domainBuilder = BeanMetaDataBuilder.createBuilder(getName(), AOPDomain.class.getName());
+ domainBuilder.addPropertyMetaData("name", getName());
if (parentFirst != null)
{
- BeanMetaDataUtil.setSimpleProperty(domain, "parentFirst", parentFirst);
+ domainBuilder.addPropertyMetaData("parentFirst", parentFirst);
}
if (inheritDefinitions != null)
{
- BeanMetaDataUtil.setSimpleProperty(domain, "inheritDefinitions", inheritDefinitions);
+ domainBuilder.addPropertyMetaData("inheritDefinitions", inheritDefinitions);
}
if (inheritBindings != null)
{
- BeanMetaDataUtil.setSimpleProperty(domain, "inheritBindings", inheritBindings);
+ domainBuilder.addPropertyMetaData("inheritBindings", inheritBindings);
}
if (extendz != null)
{
- BeanMetaDataUtil.setSimpleProperty(domain, "extends", extendz);
+ domainBuilder.addPropertyMetaData("extends", extendz);
}
- util.setAspectManagerProperty(domain, "manager");
- result.add(domain);
+ util.setAspectManagerProperty(domainBuilder, "manager");
+ result.add(domainBuilder.getBeanMetaData());
for (BeanMetaData child : childBeans)
{
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/IntroductionBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/IntroductionBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/IntroductionBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -23,15 +23,13 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.StringTokenizer;
import org.jboss.aop.microcontainer.beans.IntroductionBinding;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
-import org.jboss.beans.metadata.plugins.StringValueMetaData;
+import org.jboss.aop.microcontainer.beans.MixinEntry;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.util.id.GUID;
/**
@@ -48,7 +46,7 @@
private String clazz;
private String expr;
private String interfaces;
- private ArrayList<AbstractBeanMetaData> mixins = new ArrayList<AbstractBeanMetaData>();
+ private ArrayList<MixinData> mixins = new ArrayList<MixinData>();
public IntroductionBeanMetaDataFactory()
{
@@ -86,7 +84,7 @@
this.interfaces = interfaces;
}
- public void addMixinEntry(AbstractBeanMetaData mixin)
+ public void addMixinEntry(MixinData mixin)
{
mixins.add(mixin);
}
@@ -96,67 +94,78 @@
{
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
- //Add the Aspect
- AbstractBeanMetaData introduction = new AbstractBeanMetaData(IntroductionBinding.class.getName());
+ //Add the Introduction
String name = getName();
if (name == null)
{
name = GUID.asString();
}
- introduction.setName(name);
- BeanMetaDataUtil.setSimpleProperty(introduction, "name", name);
- util.setAspectManagerProperty(introduction, "manager");
+
+ BeanMetaDataBuilder introductionBuilder = BeanMetaDataBuilder.createBuilder(name, IntroductionBinding.class.getName());
+ introductionBuilder.addPropertyMetaData("name", name);
+ util.setAspectManagerProperty(introductionBuilder, "manager");
if (clazz != null)
{
- BeanMetaDataUtil.setSimpleProperty(introduction, "classes", clazz);
+ introductionBuilder.addPropertyMetaData("classes", clazz);
}
if (expr != null)
{
- BeanMetaDataUtil.setSimpleProperty(introduction, "expr", expr);
+ introductionBuilder.addPropertyMetaData("expr", expr);
}
- result.add(introduction);
-
+ result.add(introductionBuilder.getBeanMetaData());
+
if (interfaces != null)
{
- addInterfaces(introduction, "interfaces", interfaces);
+ addInterfaces(introductionBuilder, interfaces);
}
if (mixins != null)
{
- addMixins(introduction, result);
+ addMixins(introductionBuilder, result);
}
return result;
}
+
+ public static void addInterfaces(BeanMetaDataBuilder introductionBuilder, String interfaces)
+ {
+ addInterfaces(introductionBuilder, "interfaces", interfaces);
+ }
- public static void addInterfaces(AbstractBeanMetaData introduction, String propertyName, String interfaces)
+ public static void addInterfaces(BeanMetaDataBuilder introductionBuilder, String propertyName, String interfaces)
{
- AbstractListMetaData lmd = new AbstractListMetaData();
- lmd.setType(ArrayList.class.getName());
- lmd.setElementType(String.class.getName());
- BeanMetaDataUtil.setSimpleProperty(introduction, propertyName, lmd);
-
- StringTokenizer tok = new StringTokenizer(interfaces, ",");
- while (tok.hasMoreTokens())
+ List<ValueMetaData> ifs = introductionBuilder.createList(ArrayList.class.getName(), String.class.getName());
+ introductionBuilder.addPropertyMetaData(propertyName, ifs);
+ for (String token : interfaces.split(","))
{
- String token = tok.nextToken();
- lmd.add(new StringValueMetaData(token.trim()));
+ ifs.add(introductionBuilder.createValue(token.trim()));
}
}
- private void addMixins(AbstractBeanMetaData introduction, List<BeanMetaData> result)
+ private void addMixins(BeanMetaDataBuilder introductionBuilder, List<BeanMetaData> result)
{
- AbstractListMetaData lmd = new AbstractListMetaData();
- lmd.setType(ArrayList.class.getName());
- BeanMetaDataUtil.setSimpleProperty(introduction, "mixins", lmd);
+ List<ValueMetaData> mixinList = introductionBuilder.createList(ArrayList.class.getName(), null);
+ introductionBuilder.addPropertyMetaData("mixins", mixinList);
int i = 0;
- for (AbstractBeanMetaData mixin : mixins)
+ for (MixinData mixin : mixins)
{
- String name = introduction.getName() + "$" + i++;
- mixin.setName(name);
- result.add(mixin);
-
- lmd.add(new AbstractInjectionValueMetaData(name));
+ String name = introductionBuilder.getBeanMetaData().getName() + "$" + i++;
+ BeanMetaDataBuilder mixinBuilder = BeanMetaDataBuilder.createBuilder(name, MixinEntry.class.getName());
+ mixinBuilder.addPropertyMetaData("mixin", mixin.getMixin());
+ addInterfaces(mixinBuilder, "interfaces", mixin.getInterfaces());
+ if (mixin.getTransient() != null)
+ {
+ mixinBuilder.addPropertyMetaData("transient", mixin.getTransient());
+ }
+ if (mixin.getConstruction() != null)
+ {
+ mixinBuilder.addPropertyMetaData("construction", mixin.getConstruction());
+ }
+
+ result.add(mixinBuilder.getBeanMetaData());
+
+ ValueMetaData injectMixin = introductionBuilder.createInject(name);
+ mixinList.add(injectMixin);
}
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/LifecycleBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/LifecycleBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/LifecycleBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -23,16 +23,15 @@
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.jboss.aop.microcontainer.beans.LifecycleBinding;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
+import org.jboss.beans.metadata.spi.DependencyMetaData;
import org.jboss.beans.metadata.spi.PropertyMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.dependency.spi.ControllerState;
/**
@@ -78,85 +77,53 @@
{
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
- //Do not include the bean factory here, just install the bean directly and the binding
- AbstractBeanMetaData lifecycle = new AbstractBeanMetaData();
- lifecycle.setName(name);
- lifecycle.setBean(getBeanClass());
+ //Do not include the bean factory here, just install the bean directly and the binding
+ BeanMetaDataBuilder lifecycleBuilder = BeanMetaDataBuilder.createBuilder(name, getBeanClass());
for (PropertyMetaData pmd : properties)
{
- lifecycle.addProperty(pmd);
+ lifecycleBuilder.addPropertyMetaData(pmd.getName(), pmd.getValue());
}
- lifecycle.setDepends(getDepends());
- result.add(lifecycle);
+ Set<DependencyMetaData> depends = getDepends();
+ if (depends != null)
+ {
+ for (DependencyMetaData depend : depends)
+ {
+ lifecycleBuilder.addDependency(depend.getDependency());
+ }
+ }
+ result.add(lifecycleBuilder.getBeanMetaData());
+
String aspectBindingName = name + "$AspectBinding";
- AbstractBeanMetaData aspectBinding = new AbstractBeanMetaData();
- aspectBinding.setName(aspectBindingName);
- aspectBinding.setBean(LifecycleBinding.class.getName());
-
- BeanMetaDataUtil.setSimpleProperty(aspectBinding, "callbackBean", name);
- util.setAspectManagerProperty(aspectBinding, "manager");
+ BeanMetaDataBuilder bindingBuilder = BeanMetaDataBuilder.createBuilder(aspectBindingName, LifecycleBinding.class.getName());
+ bindingBuilder.addPropertyMetaData("callbackBean", name);
+ util.setAspectManagerProperty(bindingBuilder, "manager");
if (expr != null)
{
- BeanMetaDataUtil.setSimpleProperty(aspectBinding, "expr", expr);
+ bindingBuilder.addPropertyMetaData("expr", expr);
}
else if (classes != null)
{
- BeanMetaDataUtil.setSimpleProperty(aspectBinding, "classes", classes);
+ bindingBuilder.addPropertyMetaData("classes", classes);
}
- BeanMetaDataUtil.setSimpleProperty(aspectBinding, "state", getState());
+ bindingBuilder.addPropertyMetaData("state", getState());
if (installMethod != null)
{
- BeanMetaDataUtil.setSimpleProperty(aspectBinding, "installMethod", installMethod);
+ bindingBuilder.addPropertyMetaData("installMethod", installMethod);
}
if (uninstallMethod != null)
{
- BeanMetaDataUtil.setSimpleProperty(aspectBinding, "uninstallMethod", uninstallMethod);
+ bindingBuilder.addPropertyMetaData("uninstallMethod", uninstallMethod);
}
- result.add(aspectBinding);
+ result.add(bindingBuilder.getBeanMetaData());
return result;
}
-
- protected boolean hasInjectedBeans()
- {
- ArrayList<AbstractDependencyValueMetaData> dependencies = new ArrayList<AbstractDependencyValueMetaData>();
- getDependencies(dependencies, this);
-
- for (AbstractDependencyValueMetaData dep : dependencies)
- {
- if(!((String)dep.getValue()).startsWith("jboss.kernel:service="))
- {
- return true;
- }
- }
- return false;
- }
-
- private void getDependencies(ArrayList<AbstractDependencyValueMetaData> dependencies, MetaDataVisitorNode node)
- {
- Iterator<? extends MetaDataVisitorNode> children = node.getChildren();
-
- if (children != null)
- {
- while (children.hasNext())
- {
- MetaDataVisitorNode child = children.next();
- if (child instanceof AbstractDependencyValueMetaData)
- {
- dependencies.add((AbstractDependencyValueMetaData)child);
- }
- getDependencies(dependencies, child);
- }
- }
- }
-
@Override
public void addBeanProperty(PropertyMetaData property)
{
properties.add(property);
}
-
}
Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/MixinData.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/MixinData.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/MixinData.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,75 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.aop.microcontainer.beans.beanmetadatafactory;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class MixinData
+{
+ String mixin;
+ String isTransient;
+ String construction;
+ String interfaces;
+
+ public String getTransient()
+ {
+ return isTransient;
+ }
+
+ public void setTransient(String isTransient)
+ {
+ this.isTransient = isTransient;
+ }
+
+ public String getMixin()
+ {
+ return mixin;
+ }
+
+ public void setMixin(String mixin)
+ {
+ this.mixin = mixin;
+ }
+
+ public String getConstruction()
+ {
+ return construction;
+ }
+
+ public void setConstruction(String construction)
+ {
+ this.construction = construction;
+ }
+
+ public String getInterfaces()
+ {
+ return interfaces;
+ }
+
+ public void setInterfaces(String interfaces)
+ {
+ this.interfaces = interfaces;
+ }
+}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/PrecedenceBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/PrecedenceBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/PrecedenceBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -26,10 +26,9 @@
import org.jboss.aop.microcontainer.beans.PrecedenceDef;
import org.jboss.aop.microcontainer.beans.PrecedenceDefEntry;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.util.id.GUID;
/**
@@ -54,33 +53,33 @@
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
//Add the PrecedenceDef
- AbstractBeanMetaData precedence = new AbstractBeanMetaData(PrecedenceDef.class.getName());
String name = getName();
if (name == null)
{
name = GUID.asString();
}
- precedence.setName(name);
- BeanMetaDataUtil.setSimpleProperty(precedence, "name", getName());
- util.setAspectManagerProperty(precedence, "manager");
- result.add(precedence);
+ BeanMetaDataBuilder precedenceBuilder = BeanMetaDataBuilder.createBuilder(name, PrecedenceDef.class.getName());
+ precedenceBuilder.addPropertyMetaData("name", getName());
+ util.setAspectManagerProperty(precedenceBuilder, "manager");
+ result.add(precedenceBuilder.getBeanMetaData());
- AbstractListMetaData lmd = new AbstractListMetaData();
- lmd.setType(ArrayList.class.getName());
- BeanMetaDataUtil.setSimpleProperty(precedence, "entries", lmd);
+ List<ValueMetaData> entryList = precedenceBuilder.createList(ArrayList.class.getName(), null);
+ precedenceBuilder.addPropertyMetaData("entries", entryList);
int i = 0;
for (BaseInterceptorData entry : entries)
{
String entryName = name + "$" + i++;
- AbstractBeanMetaData entryBean = new AbstractBeanMetaData(PrecedenceDefEntry.class.getName());
- entryBean.setName(entryName);
- BeanMetaDataUtil.setSimpleProperty(entryBean, "aspectName", entry.getRefName());
+ BeanMetaDataBuilder entryBuilder = BeanMetaDataBuilder.createBuilder(entryName, PrecedenceDefEntry.class.getName());
+
+ entryBuilder.addPropertyMetaData("aspectName", entry.getRefName());
if (entry instanceof AdviceOrInterceptorData)
{
- BeanMetaDataUtil.setSimpleProperty(entryBean, "aspectMethod", ((AdviceOrInterceptorData)entry).getAdviceMethod());
+ entryBuilder.addPropertyMetaData("aspectMethod", ((AdviceOrInterceptorData)entry).getAdviceMethod());
}
- lmd.add(new AbstractInjectionValueMetaData(entryName));
- result.add(entryBean);
+
+ ValueMetaData injectEntry = precedenceBuilder.createInject(entryName);
+ entryList.add(injectEntry);
+ result.add(entryBuilder.getBeanMetaData());
}
return result;
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/StackBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/StackBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/StackBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -30,10 +30,9 @@
import javax.xml.bind.annotation.XmlRootElement;
import org.jboss.aop.microcontainer.beans.Stack;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractListMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.xb.annotations.JBossXmlSchema;
/**
@@ -59,47 +58,43 @@
{
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
- //Create AspectBinding
- AbstractBeanMetaData stack = new AbstractBeanMetaData();
- stack.setName(name);
- BeanMetaDataUtil.setSimpleProperty(stack, "name", name);
- stack.setBean(Stack.class.getName());
-
- util.setAspectManagerProperty(stack, "manager");
- result.add(stack);
+ //Create Stack
+ BeanMetaDataBuilder stackBuilder = BeanMetaDataBuilder.createBuilder(name, Stack.class.getName());
+ stackBuilder.addPropertyMetaData("name", name);
+ util.setAspectManagerProperty(stackBuilder, "manager");
+ result.add(stackBuilder.getBeanMetaData());
if (interceptors.size() > 0)
{
- AbstractListMetaData almd = new AbstractListMetaData();
+ List<ValueMetaData> advices = stackBuilder.createList();
int i = 0;
for (BaseInterceptorData interceptor : interceptors)
{
- AbstractBeanMetaData bmd = new AbstractBeanMetaData(interceptor.getBeanClassName());
String intName = name + "$" + i++;
- bmd.setName(intName);
- util.setAspectManagerProperty(bmd, "manager");
- BeanMetaDataUtil.setSimpleProperty(bmd, "forStack", Boolean.TRUE);
+ BeanMetaDataBuilder interceptorBuilder = BeanMetaDataBuilder.createBuilder(intName, interceptor.getBeanClassName());
+ util.setAspectManagerProperty(interceptorBuilder, "manager");
+ interceptorBuilder.addPropertyMetaData("forStack", Boolean.TRUE);
if (interceptor instanceof AdviceOrInterceptorData)
{
- BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "aspect", interceptor.getRefName());
- BeanMetaDataUtil.setDependencyProperty(db);
+ ValueMetaData injectAspect = interceptorBuilder.createInject(interceptor.getRefName());
+ interceptorBuilder.addPropertyMetaData("aspect", injectAspect);
if (((AdviceOrInterceptorData)interceptor).getAdviceMethod() != null)
{
- BeanMetaDataUtil.setSimpleProperty(bmd, "aspectMethod", ((AdviceOrInterceptorData)interceptor).getAdviceMethod());
+ interceptorBuilder.addPropertyMetaData("aspectMethod", ((AdviceOrInterceptorData)interceptor).getAdviceMethod());
}
- BeanMetaDataUtil.setSimpleProperty(bmd, "type", ((AdviceOrInterceptorData)interceptor).getType());
-
+ interceptorBuilder.addPropertyMetaData("type", ((AdviceOrInterceptorData)interceptor).getType());
}
else
{
- BeanMetaDataUtil.DependencyBuilder db = new BeanMetaDataUtil.DependencyBuilder(bmd, "stack", interceptor.getRefName());
- BeanMetaDataUtil.setDependencyProperty(db);
+ ValueMetaData injectStack = interceptorBuilder.createInject(interceptor.getRefName());
+ interceptorBuilder.addPropertyMetaData("stack", injectStack);
}
- result.add(bmd);
- almd.add(new AbstractInjectionValueMetaData(intName));
+ result.add(interceptorBuilder.getBeanMetaData());
+ ValueMetaData injectAdvice = stackBuilder.createInject(intName);
+ advices.add(injectAdvice);
}
- BeanMetaDataUtil.setSimpleProperty(stack, "advices", almd);
+ stackBuilder.addPropertyMetaData("advices", advices);
}
return result;
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/TypeDefBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/TypeDefBeanMetaDataFactory.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/beanmetadatafactory/TypeDefBeanMetaDataFactory.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -29,8 +29,8 @@
import javax.xml.bind.annotation.XmlRootElement;
import org.jboss.aop.microcontainer.beans.TypeDef;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.xb.annotations.JBossXmlSchema;
/**
@@ -45,6 +45,11 @@
private static final long serialVersionUID = 1L;
private String expr;
+ public TypeDefBeanMetaDataFactory()
+ {
+ setBeanClass("IGNORED");
+ }
+
public String getExpr()
{
return expr;
@@ -61,16 +66,13 @@
{
ArrayList<BeanMetaData> beans = new ArrayList<BeanMetaData>();
- AbstractBeanMetaData typedef = new AbstractBeanMetaData();
-
- typedef.setName(getName());
- typedef.setBean(TypeDef.class.getName());
- BeanMetaDataUtil.setSimpleProperty(typedef, "name", getName());
- BeanMetaDataUtil.setSimpleProperty(typedef, "expr", expr);
+ BeanMetaDataBuilder typedefBuilder = BeanMetaDataBuilder.createBuilder(getName(), TypeDef.class.getName());
+ typedefBuilder.addPropertyMetaData("name", getName());
+ typedefBuilder.addPropertyMetaData("expr", expr);
- util.setAspectManagerProperty(typedef, "manager");
+ util.setAspectManagerProperty(typedefBuilder, "manager");
- beans.add(typedef);
+ beans.add(typedefBuilder.getBeanMetaData());
return beans;
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -28,20 +28,17 @@
import org.jboss.aop.microcontainer.beans.AnnotationIntroduction;
import org.jboss.aop.microcontainer.beans.AnnotationOverride;
import org.jboss.aop.microcontainer.beans.ArrayReplacement;
-import org.jboss.aop.microcontainer.beans.CFlowStackEntry;
import org.jboss.aop.microcontainer.beans.DynamicCFlowDef;
-import org.jboss.aop.microcontainer.beans.MixinEntry;
-import org.jboss.aop.microcontainer.beans.NamedPointcut;
-import org.jboss.aop.microcontainer.beans.Prepare;
-import org.jboss.aop.microcontainer.beans.TypeDef;
+import org.jboss.aop.microcontainer.beans.NamedPointcut;import org.jboss.aop.microcontainer.beans.Prepare;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AdviceData;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AdviceOrInterceptorData;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.ArrayBindBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AspectBeanMetaDataFactory;
-import org.jboss.aop.microcontainer.beans.beanmetadatafactory.BeanMetaDataUtil;
+import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AspectManagerUtil;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.AspectManagerAwareBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.BaseInterceptorData;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.BindBeanMetaDataFactory;
+import org.jboss.aop.microcontainer.beans.beanmetadatafactory.CFlowEntry;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.CFlowStackBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.ConfigureLifecycleBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.CreateLifecycleBeanMetaDataFactory;
@@ -51,12 +48,16 @@
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.InstantiateLifecycleBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.IntroductionBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.LifecycleBeanMetaDataFactory;
+import org.jboss.aop.microcontainer.beans.beanmetadatafactory.MixinData;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.PreInstallLifecycleBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.PrecedenceBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.StackBeanMetaDataFactory;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.StackRefData;
import org.jboss.aop.microcontainer.beans.beanmetadatafactory.StartLifecycleBeanMetaDataFactory;
+import org.jboss.aop.microcontainer.beans.beanmetadatafactory.TypeDefBeanMetaDataFactory;
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.kernel.plugins.deployment.xml.BeanFactoryHandler;
import org.jboss.kernel.plugins.deployment.xml.BeanSchemaBinding20;
import org.jboss.kernel.plugins.deployment.xml.BeanSchemaBindingHelper;
@@ -271,7 +272,7 @@
type.pushInterceptor(aspectQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
type.pushInterceptor(bindQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
type.pushInterceptor(stackQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
- type.pushInterceptor(typedefQName, DomainBeanMetaDataInterceptor.INTERCEPTOR);
+ type.pushInterceptor(typedefQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
type.pushInterceptor(cflowStackQName, DomainAspectManagerAwareBeanMetaDataFactoryInterceptor.INTERCEPTOR);
type.pushInterceptor(dynamicCflowQName, DomainBeanMetaDataInterceptor.INTERCEPTOR);
type.pushInterceptor(prepareQName, DomainBeanMetaDataInterceptor.INTERCEPTOR);
@@ -546,11 +547,11 @@
}
else if ("inheritBindings".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(bean, "inheritBindings", attrs.getValue(i));
+ bean.setInheritBindings(attrs.getValue(i));
}
else if ("extends".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(bean, "extends", attrs.getValue(i));
+ bean.setExtends(attrs.getValue(i));
}
}
@@ -828,7 +829,8 @@
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
{
AbstractBeanMetaData arrayReplacement = (AbstractBeanMetaData)o;
- BeanMetaDataUtil util = new BeanMetaDataUtil();
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(arrayReplacement);
+ AspectManagerUtil util = new AspectManagerUtil();
String name = null;
for (int i = 0; i < attrs.getLength(); ++i)
{
@@ -837,13 +839,13 @@
{
name = attrs.getValue(i);
}
- else if ("class".equals(localName))
+ if ("class".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(arrayReplacement, "classes", attrs.getValue(i));
+ builder.addPropertyMetaData("classes", attrs.getValue(i));
}
else if ("expr".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(arrayReplacement, "expr", attrs.getValue(i));
+ builder.addPropertyMetaData("expr", attrs.getValue(i));
}
else if (MANAGER_BEAN_NAME.equals(localName))
{
@@ -854,14 +856,14 @@
util.setManagerProperty(attrs.getValue(i));
}
}
- util.setAspectManagerProperty(arrayReplacement, "manager");
+ util.setAspectManagerProperty(builder, "manager");
if (name == null)
{
name = GUID.asString();
}
arrayReplacement.setName(name);
- BeanMetaDataUtil.setSimpleProperty(arrayReplacement, "name", name);
+ builder.addPropertyMetaData("name", name);
}
}
@@ -974,44 +976,36 @@
}
}
- private static class TypeDefHandler extends DefaultElementHandler
+ private static class TypeDefHandler extends AspectManagerAwareBeanFactoryHandler
{
public static final TypeDefHandler HANDLER = new TypeDefHandler();
@Override
public Object startElement(Object parent, QName name, ElementBinding element)
{
- return new AbstractBeanMetaData(TypeDef.class.getName());
+ return new TypeDefBeanMetaDataFactory();
}
@Override
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
{
- BeanMetaDataUtil util = new BeanMetaDataUtil();
- AbstractBeanMetaData typedef = (AbstractBeanMetaData)o;
+ super.attributes(o, elementName, element, attrs, nsCtx);
+ AspectManagerUtil util = new AspectManagerUtil();
+ TypeDefBeanMetaDataFactory factory = (TypeDefBeanMetaDataFactory)o;
+
for (int i = 0; i < attrs.getLength(); ++i)
{
String localName = attrs.getLocalName(i);
if ("name".equals(localName))
{
- typedef.setName(attrs.getValue(i));
- BeanMetaDataUtil.setSimpleProperty(typedef, "name", attrs.getValue(i));
+ factory.setName(attrs.getValue(i));
}
else if ("expr".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(typedef, "expr", attrs.getValue(i));
+ factory.setExpr(attrs.getValue(i));
}
- else if (MANAGER_BEAN_NAME.equals(localName))
- {
- util.setManagerBean(attrs.getValue(i));
- }
- else if (MANAGER_PROPERTY_NAME.equals(localName))
- {
- util.setManagerProperty(attrs.getValue(i));
- }
}
- util.setAspectManagerProperty(typedef, "manager");
}
}
@@ -1022,19 +1016,19 @@
@Override
public Object startElement(Object parent, QName name, ElementBinding element)
{
- return new AbstractBeanMetaData(CFlowStackEntry.class.getName());
+ return new CFlowEntry();
}
@Override
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
{
- AbstractBeanMetaData entry = (AbstractBeanMetaData)o;
+ CFlowEntry entry = (CFlowEntry)o;
for (int i = 0; i < attrs.getLength(); ++i)
{
String localName = attrs.getLocalName(i);
if ("expr".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(entry, "expr", attrs.getValue(i));
+ entry.setExpr(attrs.getValue(i));
}
}
}
@@ -1053,20 +1047,20 @@
@Override
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
{
- BeanMetaDataUtil util = new BeanMetaDataUtil();
+ AspectManagerUtil util = new AspectManagerUtil();
AbstractBeanMetaData dynamicCFlow = (AbstractBeanMetaData)o;
-
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(dynamicCFlow);
for (int i = 0; i < attrs.getLength(); ++i)
{
String localName = attrs.getLocalName(i);
if ("name".equals(localName))
{
dynamicCFlow.setName(attrs.getValue(i));
- BeanMetaDataUtil.setSimpleProperty(dynamicCFlow, "name", attrs.getValue(i));
+ builder.addPropertyMetaData("name", attrs.getValue(i));
}
else if ("class".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(dynamicCFlow, "className", attrs.getValue(i));
+ builder.addPropertyMetaData("className", attrs.getValue(i));
}
else if (MANAGER_BEAN_NAME.equals(localName))
{
@@ -1077,7 +1071,7 @@
util.setManagerProperty(attrs.getValue(i));
}
}
- util.setAspectManagerProperty(dynamicCFlow, "manager");
+ util.setAspectManagerProperty(builder, "manager");
}
}
@@ -1094,8 +1088,9 @@
@Override
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
{
- BeanMetaDataUtil util = new BeanMetaDataUtil();
+ AspectManagerUtil util = new AspectManagerUtil();
AbstractBeanMetaData pointcut = (AbstractBeanMetaData)o;
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(pointcut);
String name = null;
for (int i = 0; i < attrs.getLength(); ++i)
{
@@ -1106,7 +1101,7 @@
}
else if ("expr".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(pointcut, "expr", attrs.getValue(i));
+ builder.addPropertyMetaData("expr", attrs.getValue(i));
}
else if (MANAGER_BEAN_NAME.equals(localName))
{
@@ -1117,14 +1112,14 @@
util.setManagerProperty(attrs.getValue(i));
}
}
- util.setAspectManagerProperty(pointcut, "manager");
+ util.setAspectManagerProperty(builder, "manager");
if (name == null)
{
name = GUID.asString();
}
pointcut.setName(name);
- BeanMetaDataUtil.setSimpleProperty(pointcut, "name", name);
+ builder.addPropertyMetaData("name", name);
}
}
@@ -1152,19 +1147,20 @@
@Override
public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
{
- BeanMetaDataUtil util = new BeanMetaDataUtil();
+ AspectManagerUtil util = new AspectManagerUtil();
AbstractBeanMetaData annotation = (AbstractBeanMetaData)o;
-
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(annotation);
+
for (int i = 0; i < attrs.getLength(); ++i)
{
String localName = attrs.getLocalName(i);
if ("invisible".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(annotation, "invisible", attrs.getValue(i));
+ builder.addPropertyMetaData("invisible", attrs.getValue(i));
}
else if ("expr".equals(localName))
{
- BeanMetaDataUtil.setSimpleProperty(annotation, "expr", attrs.getValue(i));
+ builder.addPropertyMetaData("expr", attrs.getValue(i));
}
else if (MANAGER_BEAN_NAME.equals(localName))
{
@@ -1175,7 +1171,7 @@
util.setManagerProperty(attrs.getValue(i));
}
}
- util.setAspectManagerProperty(annotation, "manager");
+ util.setAspectManagerProperty(builder, "manager");
annotation.setName(GUID.asString());
}
@@ -1218,7 +1214,7 @@
@Override
public Object startElement(Object parent, QName name, ElementBinding element)
{
- return new AbstractBeanMetaData(MixinEntry.class.getName());
+ return new MixinData();
}
}
@@ -1280,8 +1276,8 @@
public void addEntry(Object parent, Object child, QName name, boolean called)
{
CFlowStackBeanMetaDataFactory cflowStack = (CFlowStackBeanMetaDataFactory)parent;
- AbstractBeanMetaData entry = (AbstractBeanMetaData)child;
- BeanMetaDataUtil.setSimpleProperty(entry, "called", called);
+ CFlowEntry entry = (CFlowEntry)child;
+ entry.setCalled(called);
cflowStack.addEntry(entry);
}
}
@@ -1341,7 +1337,7 @@
public void add(Object parent, Object child, QName name)
{
IntroductionBeanMetaDataFactory intro = (IntroductionBeanMetaDataFactory)parent;
- intro.addMixinEntry((AbstractBeanMetaData)child);
+ intro.addMixinEntry((MixinData)child);
}
}
@@ -1352,8 +1348,8 @@
@Override
public void add(Object parent, Object child, QName name)
{
- AbstractBeanMetaData mixin = (AbstractBeanMetaData)parent;
- BeanMetaDataUtil.setSimpleProperty(mixin, "mixin", ((StringBuffer)child).toString());
+ MixinData mixin = (MixinData)parent;
+ mixin.setMixin(((StringBuffer)child).toString());
}
}
@@ -1364,8 +1360,8 @@
@Override
public void add(Object parent, Object child, QName name)
{
- AbstractBeanMetaData mixin = (AbstractBeanMetaData)parent;
- BeanMetaDataUtil.setSimpleProperty(mixin, "transient", ((StringBuffer)child).toString());
+ MixinData mixin = (MixinData)parent;
+ mixin.setTransient(((StringBuffer)child).toString());
}
}
@@ -1376,8 +1372,8 @@
@Override
public void add(Object parent, Object child, QName name)
{
- AbstractBeanMetaData mixin = (AbstractBeanMetaData)parent;
- BeanMetaDataUtil.setSimpleProperty(mixin, "construction", ((StringBuffer)child).toString());
+ MixinData mixin = (MixinData)parent;
+ mixin.setConstruction(((StringBuffer)child).toString());
}
}
@@ -1388,8 +1384,8 @@
@Override
public void add(Object parent, Object child, QName name)
{
- AbstractBeanMetaData mixin = (AbstractBeanMetaData)parent;
- IntroductionBeanMetaDataFactory.addInterfaces(mixin, "interfaces", ((StringBuffer)child).toString());
+ MixinData mixin = (MixinData)parent;
+ mixin.setInterfaces(((StringBuffer)child).toString());
}
}
@@ -1419,10 +1415,10 @@
DomainBeanMetaDataFactory domain = (DomainBeanMetaDataFactory)parent;
AbstractBeanMetaData bean = (AbstractBeanMetaData)child;
//Overwrite the manager property
- BeanMetaDataUtil util = new BeanMetaDataUtil();
+ AspectManagerUtil util = new AspectManagerUtil();
util.setManagerBean(domain.getName());
util.setManagerProperty("domain");
- util.setAspectManagerProperty(bean, "manager");
+ util.setAspectManagerProperty(BeanMetaDataBuilder.createBuilder(bean), "manager");
domain.addChildBean(bean);
}
@@ -1443,7 +1439,8 @@
@Override
public void setValue(QName qname, ElementBinding element, Object owner, Object value)
{
- BeanMetaDataUtil.setSimpleProperty((AbstractBeanMetaData)owner, "annotation", ((String)value).trim());
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder((BeanMetaData)owner);
+ builder.addPropertyMetaData("annotation", ((String)value).trim());
}
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyJaxbDeploymentTestCaseNotAutomatic1.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyJaxbDeploymentTestCaseNotAutomatic1.xml 2008-02-29 16:05:10 UTC (rev 70273)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/AspectWithDependencyJaxbDeploymentTestCaseNotAutomatic1.xml 2008-02-29 16:09:04 UTC (rev 70274)
@@ -7,7 +7,7 @@
</bean>
<aop:aspect xmlns:aop="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestAspectWithDependency">
- <property xmlns="urn:jboss:bean-deployer:2.0" name="dependency"><inject bean="Dependency"/></property>
+ <property name="dependency"><inject bean="Dependency"/></property>
</aop:aspect>
<aop:bind xmlns:aop="urn:jboss:aop-beans:1.0" pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.xml 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+ <bean xmlns="urn:jboss:bean-deployer:2.0" name="AspectManager" class="org.jboss.aop.AspectManager">
+ <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+ </bean>
+
+ <aspect class="org.jboss.test.microcontainer.beans.TestAspect"/>
+
+ <cflow-stack name="CFlow">
+ <not-called expr="void org.jboss.test.microcontainer.beans.test.CFlowTest->notCallPOJO(..)"/>
+ <called expr="void org.jboss.test.microcontainer.beans.test.CFlowTest->callPOJO(..)"/>
+ </cflow-stack>
+
+ <bind pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))" cflow="CFlow">
+ <advice aspect="org.jboss.test.microcontainer.beans.TestAspect" name="advice"/>
+ </bind>
+
+ <bean xmlns="urn:jboss:bean-deployer:2.0" name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+
+</deployment>
Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.xml 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+ <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+ </bean>
+
+ <aspect xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestAspect"/>
+
+ <cflow-stack xmlns="urn:jboss:aop-beans:1.0" name="CFlow">
+ <not-called expr="void org.jboss.test.microcontainer.beans.test.CFlowTest->notCallPOJO(..)"/>
+ <called expr="void org.jboss.test.microcontainer.beans.test.CFlowTest->callPOJO(..)"/>
+ </cflow-stack>
+
+ <bind xmlns="urn:jboss:aop-beans:1.0" pointcut="execution(* org.jboss.test.microcontainer.beans.POJO->*(..))" cflow="CFlow">
+ <advice aspect="org.jboss.test.microcontainer.beans.TestAspect" name="advice"/>
+ </bind>
+
+ <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+
+</deployment>
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbAopTestCase.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,44 @@
+/*
+* 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.microcontainer.beans.test;
+
+import junit.framework.Test;
+
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class CFlowJaxbAopTestCase extends CFlowTest
+{
+ public static Test suite()
+ {
+ setUseJaxb(true);
+ return suite(CFlowJaxbAopTestCase.class);
+ }
+
+ public CFlowJaxbAopTestCase(String test)
+ {
+ super(test);
+ }
+}
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/CFlowJaxbDeploymentTestCase.java 2008-02-29 16:09:04 UTC (rev 70274)
@@ -0,0 +1,44 @@
+/*
+* 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.microcontainer.beans.test;
+
+import junit.framework.Test;
+
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class CFlowJaxbDeploymentTestCase extends CFlowTest
+{
+ public static Test suite()
+ {
+ setUseJaxb(true);
+ return suite(CFlowJaxbDeploymentTestCase.class);
+ }
+
+ public CFlowJaxbDeploymentTestCase(String test)
+ {
+ super(test);
+ }
+}
More information about the jboss-cvs-commits
mailing list