[jboss-dev-forums] [Design of AOP on JBoss (Aspects/JBoss)] - Re: Implementing JAXB style parsing for aop-mc-int

kabir.khan@jboss.com do-not-reply at jboss.com
Thu Feb 21 17:09:14 EST 2008


I seem to need more in my AOPDeployment, the following works for both 

  | <aop xmlns="urn:jboss:aop-beans:1.0">
  |    <aspect class="org.jboss.test.microcontainer.beans.TestAspect"/>
  | </aop>
  | 
and

  | <deployment xmlns="urn:jboss:bean-deployer:2.0">
  |    <aspect xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestAspect"/>
  | </deployment>
  | 


  |    private TestSchemaResolver setupResolver()
  |    {
  |       TestSchemaResolver resolver = new TestSchemaResolver();
  |       
  |       SchemaBinding binding = addSchemaBinding(resolver, AbstractKernelDeployment.class);
  |       binding = addSchemaBinding(resolver, AOPDeployment.class);
  |       binding = addSchemaBinding(resolver, JavaBean.class);
  |       
  |       return resolver;
  |    }
  | 
And I need to add the aspect stuff to AOPDeployment. If "aspects" is not listed in the propOrder it does not get picked up

  | @ManagementObject(properties = ManagementProperties.EXPLICIT) // TODO - explicitly add props we want to manage 
  | @JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
  | @XmlRootElement(name="aop")
  | @XmlType(propOrder={"annotations", "classLoader", "beanFactories", "create", "start", "stop", "destroy", "aliases", "aspects"})
  | public class AOPDeployment extends AbstractKernelDeployment
  | {
  |    private static final long serialVersionUID = 1L;
  |    
  |    List<AspectBeanMetaDataFactory> aspects;
  | 
  |    public List<BeanMetaDataFactory> getBeanFactories()
  |    {
  |       return beanFactories;
  |    }
  |    
  |    public List<AspectBeanMetaDataFactory> getAspects()
  |    {
  |       return aspects;
  |    }
  | 
  |    @XmlElement(name="aspect")
  |       public void setAspects(List<AspectBeanMetaDataFactory> aspects)
  |    {
  |       this.aspects = aspects;
  |    }
  | 
  |    @Override
  |    public List<BeanMetaData> getBeans()
  |    {
  |       List<BeanMetaData> allBeans = super.getBeans();
  |       if (allBeans == null)
  |       {
  |          allBeans = new ArrayList<BeanMetaData>();
  |       }
  |       
  |       for (AspectBeanMetaDataFactory aspect : aspects)
  |       {
  |          allBeans.addAll(aspect.getBeans());
  |       }
  |       
  |       if (allBeans.size() == 0)
  |       {
  |          return null;
  |       }
  |       return allBeans;
  |    }
  |    
  | }
  | 
  | 

Does this look like the correct approach?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4131227#4131227

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4131227



More information about the jboss-dev-forums mailing list