[jboss-cvs] JBossAS SVN: r71751 - in projects/microcontainer/trunk/aop-mc-int/src: resources/main/schema and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Apr 6 17:46:33 EDT 2008
Author: kabir.khan at jboss.com
Date: 2008-04-06 17:46:33 -0400 (Sun, 06 Apr 2008)
New Revision: 71751
Added:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.xml
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderTest.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataTest.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.java
Modified:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/AOPDeployment.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java
projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleAopTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleDeploymentTestCase.xml
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/POJO.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/TestClassMetaDataAspect.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.java
projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java
Log:
[JBAOP-468] Add <metadata> and <metadata-loader> support
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/AOPDeployment.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/AOPDeployment.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/AOPDeployment.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -35,6 +35,7 @@
import org.jboss.managed.api.annotation.ManagementObject;
import org.jboss.managed.api.annotation.ManagementProperties;
import org.jboss.xb.annotations.JBossXmlSchema;
+import org.w3c.dom.Element;
/**
*
@@ -72,6 +73,8 @@
@XmlElement(name="lifecycle-instantiate", type=InstantiateLifecycleBeanMetaDataFactory.class),
@XmlElement(name="lifecycle-preinstall", type=PreInstallLifecycleBeanMetaDataFactory.class),
@XmlElement(name="lifecycle-start", type=StartLifecycleBeanMetaDataFactory.class),
+ @XmlElement(name="metadata", type=MetaDataBeanMetaDataFactory.class),
+ @XmlElement(name="metadata-loader", type=MetaDataLoaderBeanMetaDataFactory.class),
@XmlElement(name="pointcut", type=NamedPointcutBeanMetaDataFactory.class),
@XmlElement(name="precedence", type=PrecedenceBeanMetaDataFactory.class),
@XmlElement(name="prepare", type=PrepareMetaDataFactory.class),
@@ -83,4 +86,17 @@
{
super.setBeanFactories(beanFactories);
}
+
+// Element metadata;
+//
+// public Element getMetadata()
+// {
+// return metadata;
+// }
+//
+// public void setMetadata(Element elements)
+// {
+// System.out.println("Hello");
+// this.metadata = elements;
+// }
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/DomainBeanMetaDataFactory.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -89,10 +89,10 @@
@XmlElement(name="arraybind", type=ArrayBindBeanMetaDataFactory.class),
@XmlElement(name="aspect", type=AspectBeanMetaDataFactory.class),
@XmlElement(name="bind", type=BindBeanMetaDataFactory.class),
+ @XmlElement(name="cflow-stack", type=CFlowStackBeanMetaDataFactory.class),
@XmlElement(name="declare-error", type=DeclareErrorBeanMetaDataFactory.class),
@XmlElement(name="declare-warning", type=DeclareWarningBeanMetaDataFactory.class),
@XmlElement(name="dynamic-cflow", type=DynamicCflowBeanMetaDataFactory.class),
- @XmlElement(name="cflow-stack", type=CFlowStackBeanMetaDataFactory.class),
@XmlElement(name="interceptor", type=InterceptorBeanMetaDataFactory.class),
@XmlElement(name="introduction", type=IntroductionBeanMetaDataFactory.class),
@XmlElement(name="lifecycle-configure", type=ConfigureLifecycleBeanMetaDataFactory.class),
@@ -102,6 +102,8 @@
@XmlElement(name="lifecycle-instantiate", type=InstantiateLifecycleBeanMetaDataFactory.class),
@XmlElement(name="lifecycle-preinstall", type=PreInstallLifecycleBeanMetaDataFactory.class),
@XmlElement(name="lifecycle-start", type=StartLifecycleBeanMetaDataFactory.class),
+ @XmlElement(name="metadata", type=MetaDataBeanMetaDataFactory.class),
+ @XmlElement(name="metadata-loader", type=MetaDataLoaderBeanMetaDataFactory.class),
@XmlElement(name="pointcut", type=NamedPointcutBeanMetaDataFactory.class),
@XmlElement(name="precedence", type=PrecedenceBeanMetaDataFactory.class),
@XmlElement(name="prepare", type=PrepareMetaDataFactory.class),
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataBeanMetaDataFactory.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -21,14 +21,24 @@
*/
package org.jboss.aop.microcontainer.beans.metadata;
+import java.io.BufferedWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.jboss.aop.microcontainer.beans.ClassMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.util.id.GUID;
+import org.jboss.util.xml.DOMWriter;
import org.jboss.xb.annotations.JBossXmlSchema;
+import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
/**
@@ -38,6 +48,9 @@
*/
@JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
@XmlRootElement(name="metadata")
+//Set a random proporder since we don't want to set any of the properties in GenericBeanFactoryMetaData in the
+//freeform xml contained in this element
+ at XmlType(name="metaDataType", propOrder={"non$$existant$$property"})
public class MetaDataBeanMetaDataFactory extends AspectManagerAwareBeanMetaDataFactory
{
private static final long serialVersionUID = 1L;
@@ -45,8 +58,12 @@
String tag;
String clazz;
+
+ //It would have been nice to handle the normal metadata elements handled by the SimpleMetaDataElements in a typed
+ //way, but what if we have a custom metadata loader that expects elements with the same names?
+ List<Element> elements;
- List<Element> elements;
+ String fullDocument;
public String getTag()
{
@@ -63,7 +80,7 @@
{
return clazz;
}
-
+
@XmlAttribute(name="class")
public void setClazz(String clazz)
{
@@ -75,13 +92,64 @@
return elements;
}
- @XmlAnyElement
+ @XmlAnyElement(lax=true)
public void setElements(List<Element> elements)
{
this.elements = elements;
}
+
+ @Override
+ public List<BeanMetaData> getBeans()
+ {
+ List<BeanMetaData> beans = new ArrayList<BeanMetaData>();
+ if (name == null)
+ {
+ name = GUID.asString();
+ }
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ClassMetaData.class.getName());
+ builder.addPropertyMetaData("tag", tag);
+ builder.addPropertyMetaData("className", clazz);
+ builder.addPropertyMetaData("element", getRootElement());
+
+ setAspectManagerProperty(builder);
+ beans.add(builder.getBeanMetaData());
+ return beans;
+ }
+ private String getRootElement()
+ {
+ try
+ {
+ StringWriter writer = new StringWriter();
+ StringBuffer contents = writer.getBuffer();
+ contents.append("<metadata ");
+ contents.append("tag=\"" + tag + "\" ");
+ contents.append("class=\"" + clazz + "\"");
+ contents.append(">");
+
+ DOMWriter domWriter = new DOMWriter(new BufferedWriter(writer));
+ for (Element child : elements)
+ {
+ domWriter.print(child);
+ }
+
+ contents.append("</metadata>");
+
+ fullDocument = writer.getBuffer().toString();
+ System.out.println(fullDocument);
+ return fullDocument;
+ }
+ catch (DOMException e)
+ {
+ e.printStackTrace();
+ throw e;
+ }
+ }
-
-
+ /**
+ * Here to match the @XMLType.propOrder
+ */
+ public void setNon$$existant$$property(String ignored)
+ {
+ }
}
Added: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/metadata/MetaDataLoaderBeanMetaDataFactory.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,90 @@
+/*
+* 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.metadata;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.jboss.aop.microcontainer.beans.ClassMetaDataLoader;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.util.id.GUID;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlSchema(namespace="urn:jboss:aop-beans:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
+ at XmlRootElement(name="metadata")
+public class MetaDataLoaderBeanMetaDataFactory extends AspectManagerAwareBeanMetaDataFactory
+{
+ private static final long serialVersionUID = 1L;
+
+ String tag;
+
+ String clazz;
+
+ public String getTag()
+ {
+ return tag;
+ }
+
+ @XmlAttribute
+ public void setTag(String tag)
+ {
+ this.tag = tag;
+ }
+
+ public String getClazz()
+ {
+ return clazz;
+ }
+
+ @XmlAttribute(name="class")
+ public void setClazz(String clazz)
+ {
+ this.clazz = clazz;
+ }
+
+ @Override
+ public List<BeanMetaData> getBeans()
+ {
+ List<BeanMetaData> beans = new ArrayList<BeanMetaData>();
+ if (name == null)
+ {
+ name = GUID.asString();
+ }
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ClassMetaDataLoader.class.getName());
+ builder.addPropertyMetaData("tag", tag);
+ builder.addPropertyMetaData("className", clazz);
+
+ setAspectManagerProperty(builder);
+ beans.add(builder.getBeanMetaData());
+ return beans;
+ }
+}
Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/main/schema/aop-beans_1_0.xsd 2008-04-06 21:46:33 UTC (rev 71751)
@@ -271,6 +271,8 @@
<xsd:element name="dynamic-cflow" type="dynamicCflowStackType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="introduction" type="introductionType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="metadata" type="metadataType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="metadata-loader" type="metadataLoaderType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="precedence" type="precedenceType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="prepare" type="prepareType" minOccurs="0" maxOccurs="unbounded"/>
@@ -315,6 +317,8 @@
<xsd:element name="dynamic-cflow" type="dynamicCflowStackType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="introduction" type="introductionType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="metadata" type="metadataType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="metadata-loader" type="metadataLoaderType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="precedence" type="precedenceType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="prepare" type="prepareType" minOccurs="0" maxOccurs="unbounded"/>
@@ -899,6 +903,54 @@
</xsd:simpleContent>
</xsd:complexType>
+ <xsd:element name="metadata" type="metadataType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ A metadata
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="metadataType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ A metadata
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:any namespace="##other" processContents="strict" minOccurs="0">
+ </xsd:any>
+ </xsd:choice>
+ <xsd:attribute name="tag" type="xsd:string" use="required"></xsd:attribute>
+ <xsd:attribute name="class" type="xsd:string" use="required"></xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:element name="metadata-loader" type="metadataLoaderType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ A metadata
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="metadataLoaderType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ A metadata
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="tag" type="xsd:string" use="required"></xsd:attribute>
+ <xsd:attribute name="class" type="xsd:string" use="required"></xsd:attribute>
+ </xsd:complexType>
+
<xsd:element name="arrayreplacement" type="arrayreplacementType">
<xsd:annotation>
<xsd:documentation>
Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+ <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+ <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+ </bean>
+
+ <metadata tag="SomeTag" class="org.jboss.test.microcontainer.beans.POJO">
+ <class>
+ <clazz1>clazz1</clazz1>
+ <clazz2>clazz2</clazz2>
+ </class>
+ <default>
+ <data>default</data>
+ </default>
+ <constructor expr="POJO()">
+ <data>ctor</data>
+ </constructor>
+ <method expr="int method(..)">
+ <data>method1</data>
+ </method>
+ <method expr="void method()">
+ <data>method2</data>
+ </method>
+ </metadata>
+
+ <aspect class="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/>
+
+ <bind pointcut="execution(org.jboss.test.microcontainer.beans.POJO->new(..)) OR execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+ <advice aspect="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" name="advice"/>
+ </bind>
+
+ <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+
+</aop>
Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -13,13 +13,20 @@
<property name="element">
<![CDATA[
<metadata>
+ <class>
+ <clazz1>clazz1</clazz1>
+ <clazz2>clazz2</clazz2>
+ </class>
+ <default>
+ <data>default</data>
+ </default>
<constructor expr="POJO()">
<data>ctor</data>
</constructor>
- <method expr="int *(..)">
+ <method expr="int method(..)">
<data>method1</data>
</method>
- <method expr="void *()">
+ <method expr="void method()">
<data>method2</data>
</method>
</metadata>
Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,36 @@
+<?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>
+
+ <metadata xmlns="urn:jboss:aop-beans:1.0" tag="SomeTag" class="org.jboss.test.microcontainer.beans.POJO">
+ <class>
+ <clazz1>clazz1</clazz1>
+ <clazz2>clazz2</clazz2>
+ </class>
+ <default>
+ <data>default</data>
+ </default>
+ <constructor expr="POJO()">
+ <data>ctor</data>
+ </constructor>
+ <method expr="int method(..)">
+ <data>method1</data>
+ </method>
+ <method expr="void method()">
+ <data>method2</data>
+ </method>
+ </metadata>
+
+ <aspect xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/>
+
+ <bind xmlns="urn:jboss:aop-beans:1.0" pointcut="execution(org.jboss.test.microcontainer.beans.POJO->new(..)) OR execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+ <advice aspect="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" name="advice"/>
+ </bind>
+
+ <bean 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/ClassMetaDataLoaderAopTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+ <bean name="AspectManager" class="org.jboss.aop.AspectManager">
+ <constructor factoryClass="org.jboss.aop.AspectManager" factoryMethod="instance"/>
+ </bean>
+
+ <metadata-loader tag="custom" class="org.jboss.test.microcontainer.beans.TestMetaDataLoader"/>
+
+ <metadata tag="custom" class="org.jboss.test.microcontainer.beans.POJO">
+ <data>custom1</data>
+ </metadata>
+
+ <aspect class="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/>
+
+ <bind pointcut="execution(org.jboss.test.microcontainer.beans.POJO->new(..)) OR execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+ <advice aspect="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" name="advice"/>
+ </bind>
+
+ <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+
+</aop>
Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,23 @@
+<?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>
+
+ <metadata-loader xmlns="urn:jboss:aop-beans:1.0" tag="custom" class="org.jboss.test.microcontainer.beans.TestMetaDataLoader"/>
+
+ <metadata xmlns="urn:jboss:aop-beans:1.0" tag="custom" class="org.jboss.test.microcontainer.beans.POJO">
+ <data>custom1</data>
+ </metadata>
+
+ <aspect xmlns="urn:jboss:aop-beans:1.0" class="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect"/>
+
+ <bind xmlns="urn:jboss:aop-beans:1.0" pointcut="execution(org.jboss.test.microcontainer.beans.POJO->new(..)) OR execution(* org.jboss.test.microcontainer.beans.POJO->*(..))">
+ <advice aspect="org.jboss.test.microcontainer.beans.TestClassMetaDataAspect" name="advice"/>
+ </bind>
+
+ <bean name="Bean" class="org.jboss.test.microcontainer.beans.POJO"/>
+
+</deployment>
Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleAopTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleAopTestCase.xml 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleAopTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -66,6 +66,12 @@
<interceptor-ref name="org.jboss.test.microcontainer.beans.TestInterceptor"/>
</arraybind>
+ <metadata-loader tag="custom" class="org.jboss.test.microcontainer.beans.TestMetaDataLoader"/>
+
+ <metadata tag="custom" class="org.jboss.test.microcontainer.beans.POJO">
+ <data>custom1</data>
+ </metadata>
+
<declare-error name="DeclareError" expr="call(* org.acme.Foo->error(..))">Error!!!</declare-error>
</domain>
Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleBeansTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -191,6 +191,25 @@
<property name="binding"><inject bean="TestArrayBinding" state="Instantiated"/></property>
</bean>
+ <bean name="custom$loader" class="org.jboss.aop.microcontainer.beans.ClassMetaDataLoader">
+ <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
+ <property name="tag">custom</property>
+ <property name="className">org.jboss.test.microcontainer.beans.TestMetaDataLoader</property>
+ </bean>
+
+ <bean name="ClassMetaData" class="org.jboss.aop.microcontainer.beans.ClassMetaData">
+ <property name="manager"><inject bean="AOPDomain" property="domain"/></property>
+ <property name="tag">custom</property>
+ <property name="className">org.jboss.test.microcontainer.beans.POJO</property>
+ <property name="element">
+ <![CDATA[
+ <metadata>
+ <data>custom1</data>
+ </metadata>
+ ]]>
+ </property>
+ </bean>
+
<bean name="DeclareError" class="org.jboss.aop.microcontainer.beans.DeclareDefinition">
<property name="manager"><inject bean="AOPDomain" property="domain"/></property>
<property name="name">DeclareError</property>
@@ -198,5 +217,4 @@
<property name="message">Error!!!</property>
<property name="warning">false</property>
</bean>
-
</deployment>
Modified: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleDeploymentTestCase.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleDeploymentTestCase.xml 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleDeploymentTestCase.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -66,6 +66,12 @@
<interceptor-ref name="org.jboss.test.microcontainer.beans.TestInterceptor"/>
</arraybind>
+ <metadata-loader xmlns="urn:jboss:aop-beans:1.0" tag="custom" class="org.jboss.test.microcontainer.beans.TestMetaDataLoader"/>
+
+ <metadata xmlns="urn:jboss:aop-beans:1.0" tag="custom" class="org.jboss.test.microcontainer.beans.POJO">
+ <data>custom1</data>
+ </metadata>
+
<declare-error name="DeclareError" expr="call(* org.acme.Foo->error(..))">Error!!!</declare-error>
</domain>
Added: projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.xml
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.xml (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/resources/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.xml 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,33 @@
+<?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>
+
+ <metadata xmlns="urn:jboss:aop-beans:1.0" tag="Simple" class="Whatever">
+ <default>
+ <d1>One</d1>
+ <d2>Two</d2>
+ </default>
+ <clazz>
+ <cl1>One</cl1>
+ <cl2>Two</cl2>
+ </clazz>
+ <clazz>
+ <cl3>Three</cl3>
+ </clazz>
+ </metadata>
+
+<!--
+ <class>
+ <cl1>One</cl1>
+ <cl2>Two</cl2>
+ </class>
+ <class>
+ <cl3>Three</cl3>
+ </class>
+-->
+
+</deployment>
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/POJO.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/POJO.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/POJO.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -37,4 +37,9 @@
{
}
+
+ public void defaultMethod()
+ {
+
+ }
}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/TestClassMetaDataAspect.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/TestClassMetaDataAspect.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/TestClassMetaDataAspect.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -32,12 +32,23 @@
{
public static boolean invoked;
public static String last;
+ public static String clazz1;
+ public static String clazz2;
public Object advice(Invocation inv) throws Throwable
{
Interceptions.add(this);
invoked = true;
last = (String)inv.getMetaData("SomeTag", "data");
+ clazz1 = (String)inv.resolveClassMetaData("SomeTag", "clazz1");
+ clazz2 = (String)inv.resolveClassMetaData("SomeTag", "clazz2");
+
return inv.invokeNext();
}
+
+ public static void reset()
+ {
+ invoked = false;
+ last = clazz1 = clazz2 = null;
+ }
}
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataAopTestCase.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,42 @@
+/*
+* 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.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 ClassMetaDataAopTestCase extends ClassMetaDataTest
+{
+ public static Test suite()
+ {
+ return suite(ClassMetaDataAopTestCase.class);
+ }
+
+ public ClassMetaDataAopTestCase(String test)
+ {
+ super(test);
+ }
+}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataBeansTestCase.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -23,38 +23,13 @@
import junit.framework.Test;
-import org.jboss.test.aop.junit.AOPMicrocontainerTest;
-import org.jboss.test.microcontainer.beans.POJO;
-import org.jboss.test.microcontainer.beans.TestClassMetaDataAspect;
-
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
-public class ClassMetaDataBeansTestCase extends AOPMicrocontainerTest
+public class ClassMetaDataBeansTestCase extends ClassMetaDataTest
{
- public void testMetaData() throws Exception
- {
- POJO pojo = (POJO)getBean("Bean");
- assertNotNull(pojo);
-
- assertTrue(TestClassMetaDataAspect.invoked);
- assertEquals("ctor", TestClassMetaDataAspect.last);
-
- TestClassMetaDataAspect.invoked = false;
- TestClassMetaDataAspect.last = null;
- pojo.method(2);
- assertTrue(TestClassMetaDataAspect.invoked);
- assertEquals("method1", TestClassMetaDataAspect.last);
-
- TestClassMetaDataAspect.invoked = false;
- TestClassMetaDataAspect.last = null;
- pojo.method();
- assertTrue(TestClassMetaDataAspect.invoked);
- assertEquals("method2", TestClassMetaDataAspect.last);
- }
-
public static Test suite()
{
return suite(ClassMetaDataBeansTestCase.class);
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataDeploymentTestCase.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,42 @@
+/*
+* 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.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 ClassMetaDataDeploymentTestCase extends ClassMetaDataTest
+{
+ public static Test suite()
+ {
+ return suite(ClassMetaDataDeploymentTestCase.class);
+ }
+
+ public ClassMetaDataDeploymentTestCase(String test)
+ {
+ super(test);
+ }
+}
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderAopTestCase.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,42 @@
+/*
+* 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.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 ClassMetaDataLoaderAopTestCase extends ClassMetaDataLoaderTest
+{
+ public static Test suite()
+ {
+ return suite(ClassMetaDataLoaderAopTestCase.class);
+ }
+
+ public ClassMetaDataLoaderAopTestCase(String test)
+ {
+ super(test);
+ }
+}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderBeansTestCase.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -23,38 +23,13 @@
import junit.framework.Test;
-import org.jboss.test.aop.junit.AOPMicrocontainerTest;
-import org.jboss.test.microcontainer.beans.POJO;
-import org.jboss.test.microcontainer.beans.TestClassMetaDataAspect;
-
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
-public class ClassMetaDataLoaderBeansTestCase extends AOPMicrocontainerTest
+public class ClassMetaDataLoaderBeansTestCase extends ClassMetaDataLoaderTest
{
- public void testMetaData() throws Exception
- {
- POJO pojo = (POJO)getBean("Bean");
- assertNotNull(pojo);
-
- assertTrue(TestClassMetaDataAspect.invoked);
- assertEquals("Ccustom1", TestClassMetaDataAspect.last);
-
- TestClassMetaDataAspect.invoked = false;
- TestClassMetaDataAspect.last = null;
- pojo.method(2);
- assertTrue(TestClassMetaDataAspect.invoked);
- assertEquals("Mcustom1", TestClassMetaDataAspect.last);
-
- TestClassMetaDataAspect.invoked = false;
- TestClassMetaDataAspect.last = null;
- pojo.method();
- assertTrue(TestClassMetaDataAspect.invoked);
- assertEquals("Mcustom1", TestClassMetaDataAspect.last);
- }
-
public static Test suite()
{
return suite(ClassMetaDataLoaderBeansTestCase.class);
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderDeploymentTestCase.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,42 @@
+/*
+* 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.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 ClassMetaDataLoaderDeploymentTestCase extends ClassMetaDataLoaderTest
+{
+ public static Test suite()
+ {
+ return suite(ClassMetaDataLoaderDeploymentTestCase.class);
+ }
+
+ public ClassMetaDataLoaderDeploymentTestCase(String test)
+ {
+ super(test);
+ }
+}
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderTest.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataLoaderTest.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,63 @@
+/*
+* 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.test.microcontainer.beans.test;
+
+import org.jboss.test.aop.junit.AOPMicrocontainerTest;
+import org.jboss.test.microcontainer.beans.POJO;
+import org.jboss.test.microcontainer.beans.TestClassMetaDataAspect;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class ClassMetaDataLoaderTest extends AOPMicrocontainerTest
+{
+ public void testMetaData() throws Exception
+ {
+ POJO pojo = (POJO)getBean("Bean");
+ assertNotNull(pojo);
+
+ assertTrue(TestClassMetaDataAspect.invoked);
+ assertEquals("Ccustom1", TestClassMetaDataAspect.last);
+
+ TestClassMetaDataAspect.invoked = false;
+ TestClassMetaDataAspect.last = null;
+ pojo.method(2);
+ assertTrue(TestClassMetaDataAspect.invoked);
+ assertEquals("Mcustom1", TestClassMetaDataAspect.last);
+
+ TestClassMetaDataAspect.invoked = false;
+ TestClassMetaDataAspect.last = null;
+ pojo.method();
+ assertTrue(TestClassMetaDataAspect.invoked);
+ assertEquals("Mcustom1", TestClassMetaDataAspect.last);
+ }
+
+
+ public ClassMetaDataLoaderTest(String name)
+ {
+ // FIXME ClassMetaDataLoaderTest constructor
+ super(name);
+ }
+
+}
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataTest.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ClassMetaDataTest.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,69 @@
+/*
+* 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.test.microcontainer.beans.test;
+
+import org.jboss.test.aop.junit.AOPMicrocontainerTest;
+import org.jboss.test.microcontainer.beans.POJO;
+import org.jboss.test.microcontainer.beans.TestClassMetaDataAspect;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class ClassMetaDataTest extends AOPMicrocontainerTest
+{
+ public void testMetaData() throws Exception
+ {
+ POJO pojo = (POJO)getBean("Bean");
+ assertNotNull(pojo);
+
+ assertInvokedLastAndClass("ctor");
+
+ TestClassMetaDataAspect.reset();
+ pojo.method(2);
+ assertInvokedLastAndClass("method1");
+
+ TestClassMetaDataAspect.reset();
+ pojo.method();
+ assertInvokedLastAndClass("method2");
+
+ TestClassMetaDataAspect.reset();
+ pojo.defaultMethod();
+ assertInvokedLastAndClass("default");
+
+ }
+
+ private void assertInvokedLastAndClass(String last)
+ {
+ assertTrue(TestClassMetaDataAspect.invoked);
+ assertEquals(last, TestClassMetaDataAspect.last);
+ assertEquals("clazz1", TestClassMetaDataAspect.clazz1);
+ assertEquals("clazz2", TestClassMetaDataAspect.clazz2);
+ }
+
+ public ClassMetaDataTest(String name)
+ {
+ super(name);
+ }
+
+}
Modified: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java 2008-04-06 18:54:40 UTC (rev 71750)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/DomainSimpleTest.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -115,6 +115,9 @@
o = manager.getArrayBinding("TestArrayBinding");
checkShouldBeThere(o, shouldBeThere);
+ checkShouldBeThere(manager.getClassMetaData().keySet(), shouldBeThere);
+ checkShouldBeThere(manager.getClassMetaDataLoaders().keySet(), shouldBeThere);
+
Iterator<DeclareDef> it = manager.getDeclares();
if (shouldBeThere)
{
Added: projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.java (rev 0)
+++ projects/microcontainer/trunk/aop-mc-int/src/tests/org/jboss/test/microcontainer/beans/test/ThrowawayMetaDataTest.java 2008-04-06 21:46:33 UTC (rev 71751)
@@ -0,0 +1,49 @@
+/*
+* 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.test.microcontainer.beans.test;
+
+import junit.framework.Test;
+
+import org.jboss.test.aop.junit.AOPMicrocontainerTest;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ThrowawayMetaDataTest extends AOPMicrocontainerTest
+{
+ public static Test suite()
+ {
+ return suite(ThrowawayMetaDataTest.class);
+ }
+
+ public ThrowawayMetaDataTest(String name)
+ {
+ super(name);
+ }
+
+ public void testMetaData()
+ {
+ System.out.println("Hello!!!");
+ }
+}
More information about the jboss-cvs-commits
mailing list