[jboss-cvs] JBossAS SVN: r75794 - in projects/ejb3/trunk: core/src/main/java/org/jboss/ejb3/aop and 10 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 14 13:00:53 EDT 2008


Author: wolfc
Date: 2008-07-14 13:00:52 -0400 (Mon, 14 Jul 2008)
New Revision: 75794

Added:
   projects/ejb3/trunk/transactions/.settings/org.maven.ide.eclipse.prefs
   projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/
   projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionComponentMetaDataLoaderFactory.java
   projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionMetaDataBridge.java
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/AppRuntimeException.java
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStateful.java
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStatefulBean.java
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/unit/
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/unit/MetaDataTestCase.java
Modified:
   projects/ejb3/trunk/core/pom.xml
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/BeanContainer.java
   projects/ejb3/trunk/transactions/.classpath
   projects/ejb3/trunk/transactions/.project
   projects/ejb3/trunk/transactions/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/trunk/transactions/pom.xml
   projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/TxUtil.java
   projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/test/tx/common/StatefulContainer.java
Log:
EJBTHREE-1438: created application exception meta data bridge

Modified: projects/ejb3/trunk/core/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/core/pom.xml	2008-07-14 17:00:52 UTC (rev 75794)
@@ -373,7 +373,7 @@
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-transactions</artifactId>
-      <version>0.13.1</version>
+      <version>0.13.2-SNAPSHOT</version>
     </dependency>
     
     <dependency>

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/BeanContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/BeanContainer.java	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/aop/BeanContainer.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -32,10 +32,6 @@
 import org.jboss.aop.annotation.AnnotationRepository;
 import org.jboss.ejb3.EJBContainer;
 import org.jboss.ejb3.cluster.metadata.ClusteredMetaDataBridge;
-import org.jboss.ejb3.interceptors.InterceptorFactoryRef;
-import org.jboss.ejb3.interceptors.container.AbstractContainer;
-import org.jboss.ejb3.interceptors.container.ContainerInterceptorFactory;
-import org.jboss.ejb3.interceptors.container.InterceptorFactoryRefImpl;
 import org.jboss.ejb3.interceptors.container.ManagedObjectAdvisor;
 import org.jboss.ejb3.interceptors.direct.AbstractDirectContainer;
 import org.jboss.ejb3.interceptors.metadata.AdditiveBeanInterceptorMetaDataBridge;
@@ -44,7 +40,10 @@
 import org.jboss.ejb3.metadata.MetaDataBridge;
 import org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData;
 import org.jboss.ejb3.security.bridge.SecurityDomainMetaDataBridge;
+import org.jboss.ejb3.tx.metadata.ApplicationExceptionComponentMetaDataLoaderFactory;
+import org.jboss.ejb3.tx.metadata.ApplicationExceptionMetaDataBridge;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorMetaData;
 
 /**
@@ -193,6 +192,10 @@
       annotations.addComponentMetaDataLoaderFactory(new InterceptorComponentMetaDataLoaderFactory(interceptorBridges));
       annotations.addMetaDataBridge(new AdditiveBeanInterceptorMetaDataBridge(beanClass, classLoader, beanMetaData));
       
+      List<MetaDataBridge<ApplicationExceptionMetaData>> appExceptionBridges = new ArrayList<MetaDataBridge<ApplicationExceptionMetaData>>();
+      appExceptionBridges.add(new ApplicationExceptionMetaDataBridge());
+      annotations.addComponentMetaDataLoaderFactory(new ApplicationExceptionComponentMetaDataLoaderFactory(appExceptionBridges));
+      
       //Add a security domain bridge
       annotations.addMetaDataBridge(new SecurityDomainMetaDataBridge());
       // Ensure that an @Clustered annotation is visible to AOP if the XML says the bean is  clustered.

Modified: projects/ejb3/trunk/transactions/.classpath
===================================================================
--- projects/ejb3/trunk/transactions/.classpath	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/transactions/.classpath	2008-07-14 17:00:52 UTC (rev 75794)
@@ -1,75 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/tests-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/tests-classes" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.0.2/activation-1.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar" sourcepath="M2_REPO/ant/ant/1.6.5/ant-1.6.5-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-logging/commons-logging/1.1.0.jboss/commons-logging-1.1.0.jboss.jar" sourcepath="M2_REPO/apache-logging/commons-logging/1.1.0.jboss/commons-logging-1.1.0.jboss-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/oswego-concurrent/concurrent/1.3.4-jboss-update1/concurrent-1.3.4-jboss-update1.jar" sourcepath="M2_REPO/oswego-concurrent/concurrent/1.3.4-jboss-update1/concurrent-1.3.4-jboss-update1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/wutka-dtdparser/dtdparser121/1.2.1/dtdparser121-1.2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javassist/3.6.0.GA/javassist-3.6.0.GA.jar" sourcepath="M2_REPO/org/jboss/javassist/3.6.0.GA/javassist-3.6.0.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar" sourcepath="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR7/jboss-aop-2.0.0.CR7.jar" sourcepath="M2_REPO/org/jboss/aop/jboss-aop/2.0.0.CR7/jboss-aop-2.0.0.CR7-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/aop/jboss-aop-deployer-jdk50/2.0.0.CR8/jboss-aop-deployer-jdk50-2.0.0.CR8.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/cl/jboss-classloader/2.0.0.Beta11/jboss-classloader-2.0.0.Beta11.jar" sourcepath="M2_REPO/org/jboss/cl/jboss-classloader/2.0.0.Beta11/jboss-classloader-2.0.0.Beta11-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/cl/jboss-classloading/2.0.0.Beta11/jboss-classloading-2.0.0.Beta11.jar" sourcepath="M2_REPO/org/jboss/cl/jboss-classloading/2.0.0.Beta11/jboss-classloading-2.0.0.Beta11-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-classloading-spi/5.0.0.Beta4/jboss-classloading-spi-5.0.0.Beta4.jar" sourcepath="M2_REPO/org/jboss/jboss-classloading-spi/5.0.0.Beta4/jboss-classloading-spi-5.0.0.Beta4-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/cl/jboss-classloading-vfs/2.0.0.Beta11/jboss-classloading-vfs-2.0.0.Beta11.jar" sourcepath="M2_REPO/org/jboss/cl/jboss-classloading-vfs/2.0.0.Beta11/jboss-classloading-vfs-2.0.0.Beta11-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.5.GA/jboss-common-core-2.2.5.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.5.GA/jboss-common-core-2.2.5.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-container/2.0.0.Beta9/jboss-container-2.0.0.Beta9.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-container/2.0.0.Beta9/jboss-container-2.0.0.Beta9-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/aspects/jboss-current-invocation-aspects/1.0.0-SNAPSHOT/jboss-current-invocation-aspects-1.0.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/aspects/jboss-current-invocation-aspects/1.0.0-SNAPSHOT/jboss-current-invocation-aspects-1.0.0-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-dependency/2.0.0.Beta13/jboss-dependency-2.0.0.Beta13.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-dependency/2.0.0.Beta13/jboss-dependency-2.0.0.Beta13-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-client/2.0.0.Beta14/jboss-deployers-client-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-client/2.0.0.Beta14/jboss-deployers-client-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-client-spi/2.0.0.Beta14/jboss-deployers-client-spi-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-client-spi/2.0.0.Beta14/jboss-deployers-client-spi-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-core/2.0.0.Beta14/jboss-deployers-core-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-core/2.0.0.Beta14/jboss-deployers-core-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-core-spi/2.0.0.Beta14/jboss-deployers-core-spi-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-core-spi/2.0.0.Beta14/jboss-deployers-core-spi-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-impl/2.0.0.Beta14/jboss-deployers-impl-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-impl/2.0.0.Beta14/jboss-deployers-impl-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-spi/2.0.0.Beta14/jboss-deployers-spi-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-spi/2.0.0.Beta14/jboss-deployers-spi-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-structure-spi/2.0.0.Beta14/jboss-deployers-structure-spi-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-structure-spi/2.0.0.Beta14/jboss-deployers-structure-spi-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-vfs/2.0.0.Beta14/jboss-deployers-vfs-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-vfs/2.0.0.Beta14/jboss-deployers-vfs-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/deployers/jboss-deployers-vfs-spi/2.0.0.Beta14/jboss-deployers-vfs-spi-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/deployers/jboss-deployers-vfs-spi/2.0.0.Beta14/jboss-deployers-vfs-spi-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.CR1/jboss-ejb-api-3.0.0.CR1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.CR1/jboss-ejb-api-3.0.0.CR1-sources.jar"/>
-  <classpathentry kind="src" path="/jboss-ejb3-cache"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3/jboss-ejb3-ext-api-0.3.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/0.3/jboss-ejb3-ext-api-0.3-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api-impl/0.3/jboss-ejb3-ext-api-impl-0.3.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api-impl/0.3/jboss-ejb3-ext-api-impl-0.3-sources.jar"/>
-  <classpathentry kind="src" path="/jboss-ejb3-interceptors"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-metadata/0.12.1-SNAPSHOT/jboss-ejb3-metadata-0.12.1-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-metadata/0.12.1-SNAPSHOT/jboss-ejb3-metadata-0.12.1-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-javaee/5.0.0.Beta3Update1/jboss-javaee-5.0.0.Beta3Update1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-javaee/5.0.0.Beta3Update1/jboss-javaee-5.0.0.Beta3Update1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxrpc/1.0.4.GA/jboss-jaxrpc-1.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-jaxws/2.0.1.GA/jboss-jaxws-2.0.1.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-jca-api/1.5.0.CR1/jboss-jca-api-1.5.0.CR1.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-jca-api/1.5.0.CR1/jboss-jca-api-1.5.0.CR1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-kernel/2.0.0.Beta13/jboss-kernel-2.0.0.Beta13.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-kernel/2.0.0.Beta13/jboss-kernel-2.0.0.Beta13-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.3.GA/jboss-logging-spi-2.0.3.GA.jar" sourcepath="M2_REPO/jboss/jboss-logging-spi/2.0.3.GA/jboss-logging-spi-2.0.3.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/man/jboss-managed/2.0.0.Beta12/jboss-managed-2.0.0.Beta12.jar" sourcepath="M2_REPO/org/jboss/man/jboss-managed/2.0.0.Beta12/jboss-managed-2.0.0.Beta12-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-mdr/2.0.0.Beta14/jboss-mdr-2.0.0.Beta14.jar" sourcepath="M2_REPO/org/jboss/jboss-mdr/2.0.0.Beta14/jboss-mdr-2.0.0.Beta14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/metadata/jboss-metadata/1.0.0.Beta9/jboss-metadata-1.0.0.Beta9.jar" sourcepath="M2_REPO/org/jboss/metadata/jboss-metadata/1.0.0.Beta9/jboss-metadata-1.0.0.Beta9-sources.jar">
-    <attributes>
-      <attribute value="jar:file:/Users/svn/repository.jboss.org/maven2/org/jboss/metadata/jboss-metadata/1.0.0.Beta9/jboss-metadata-1.0.0.Beta9-javadoc.jar!/" name="javadoc_location"/>
-    </attributes>
-  </classpathentry>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/man/jboss-metatype/2.0.0.Beta12/jboss-metatype-2.0.0.Beta12.jar" sourcepath="M2_REPO/org/jboss/man/jboss-metatype/2.0.0.Beta12/jboss-metatype-2.0.0.Beta12-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-reflect/2.0.0.Beta12/jboss-reflect-2.0.0.Beta12.jar" sourcepath="M2_REPO/org/jboss/jboss-reflect/2.0.0.Beta12/jboss-reflect-2.0.0.Beta12-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/remoting/jboss-remoting/2.4.0.CR1/jboss-remoting-2.4.0.CR1.jar" sourcepath="M2_REPO/jboss/remoting/jboss-remoting/2.4.0.CR1/jboss-remoting-2.4.0.CR1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/aspects/jboss-transaction-aspects/1.0.0-SNAPSHOT/jboss-transaction-aspects-1.0.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/aspects/jboss-transaction-aspects/1.0.0-SNAPSHOT/jboss-transaction-aspects-1.0.0-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-transaction-spi/5.0.0.Beta4/jboss-transaction-spi-5.0.0.Beta4.jar" sourcepath="M2_REPO/org/jboss/jboss-transaction-spi/5.0.0.Beta4/jboss-transaction-spi-5.0.0.Beta4-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/2.0.0.Beta10/jboss-vfs-2.0.0.Beta10.jar" sourcepath="M2_REPO/org/jboss/jboss-vfs/2.0.0.Beta10/jboss-vfs-2.0.0.Beta10-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jbossts/jbossjta/4.3.0.GA/jbossjta-4.3.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jbossts/jbossts-common/4.3.0.GA/jbossts-common-4.3.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.0.2.GA/jbossws-spi-1.0.2.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.0.CR8/jbossxb-2.0.0.CR8.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.0.CR8/jbossxb-2.0.0.CR8-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/naming/jnpserver/5.0.0.CR1/jnpserver-5.0.0.CR1.jar" sourcepath="M2_REPO/org/jboss/naming/jnpserver/5.0.0.CR1/jnpserver-5.0.0.CR1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/qdox/qdox/1.6/qdox-1.6.jar" sourcepath="M2_REPO/qdox/qdox/1.6/qdox-1.6-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar" sourcepath="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/trove/trove/1.0.2/trove-1.0.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="eclipse-target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="eclipse-target/tests-classes" path="src/test/java"/>
+	<classpathentry excluding="**/*.java" kind="src" output="eclipse-target/tests-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_15"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="eclipse-target/classes"/>
+</classpath>

Modified: projects/ejb3/trunk/transactions/.project
===================================================================
--- projects/ejb3/trunk/transactions/.project	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/transactions/.project	2008-07-14 17:00:52 UTC (rev 75794)
@@ -3,10 +3,7 @@
   <comment>The JBoss EJB 3 Transactions component implements all functionality
     specified in Chapter 13 (Support for Transactions) of the EJB 3.0
     specification.</comment>
-  <projects>
-    <project>jboss-ejb3-cache</project>
-    <project>jboss-ejb3-interceptors</project>
-  </projects>
+  <projects/>
   <buildSpec>
     <buildCommand>
       <name>org.maven.ide.eclipse.maven2Builder</name>

Modified: projects/ejb3/trunk/transactions/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/transactions/.settings/org.eclipse.jdt.core.prefs	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/transactions/.settings/org.eclipse.jdt.core.prefs	2008-07-14 17:00:52 UTC (rev 75794)
@@ -1,4 +1,4 @@
-#Tue Apr 15 15:17:02 CEST 2008
+#Mon Jun 16 11:22:19 CEST 2008
 eclipse.preferences.version=1
 instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5

Added: projects/ejb3/trunk/transactions/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- projects/ejb3/trunk/transactions/.settings/org.maven.ide.eclipse.prefs	                        (rev 0)
+++ projects/ejb3/trunk/transactions/.settings/org.maven.ide.eclipse.prefs	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,8 @@
+#Mon Jul 14 14:54:36 CEST 2008
+activeProfiles=eclipse
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+version=1

Modified: projects/ejb3/trunk/transactions/pom.xml
===================================================================
--- projects/ejb3/trunk/transactions/pom.xml	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/transactions/pom.xml	2008-07-14 17:00:52 UTC (rev 75794)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.jboss.ejb3</groupId>
     <artifactId>jboss-ejb3-build</artifactId>
-    <version>0.13.7</version>
+    <version>0.13.9</version>
     <relativePath>../build/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -110,7 +110,7 @@
     <dependency>
       <groupId>org.jboss.microcontainer</groupId>
       <artifactId>jboss-kernel</artifactId>
-      <version>2.0.0.Beta13</version>
+      <version>2.0.0.Beta14</version>
       <scope>test</scope>
     </dependency>
     <!--

Modified: projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/TxUtil.java
===================================================================
--- projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/TxUtil.java	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/TxUtil.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -68,33 +68,6 @@
    public static ApplicationException getApplicationException(Class<?> exceptionClass, Invocation invocation)
    {
       return AbstractInterceptor.resolveAnnotation(invocation, exceptionClass, ApplicationException.class);
-      /*
-      MethodInvocation ejb = (MethodInvocation) invocation;
-      EJBContainer container = AbstractInterceptor.getEJBContainer(invocation);
-
-      // TODO: Wolf: refactor onto a unified metadata view
-      
-      if (exceptionClass.isAnnotationPresent(ApplicationException.class))
-         return (ApplicationException)exceptionClass.getAnnotation(ApplicationException.class);
-
-      JBossAssemblyDescriptorMetaData assembly = container.getAssemblyDescriptor();
-
-      if (assembly != null)
-      {
-         ApplicationExceptionsMetaData exceptions = assembly.getApplicationExceptions();
-         if (exceptions != null)
-         {
-            for(ApplicationExceptionMetaData exception : exceptions)
-            {
-               if (exception.getExceptionClass().equals(exceptionClass.getName()))
-                  return new ApplicationExceptionImpl(exception.isRollback());
-            }
-         }
-
-      }
-      return null;
-      */
-      
    }
 
    public static boolean getRollbackOnly()

Added: projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionComponentMetaDataLoaderFactory.java
===================================================================
--- projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionComponentMetaDataLoaderFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionComponentMetaDataLoaderFactory.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.ejb3.tx.metadata;
+
+import java.util.List;
+
+import org.jboss.ejb3.metadata.ComponentMetaDataLoaderFactory;
+import org.jboss.ejb3.metadata.MetaDataBridge;
+import org.jboss.ejb3.metadata.plugins.loader.BridgedMetaDataLoader;
+import org.jboss.ejb3.metadata.spi.signature.ClassSignature;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
+import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
+import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.metadata.spi.signature.Signature;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class ApplicationExceptionComponentMetaDataLoaderFactory implements ComponentMetaDataLoaderFactory<JBossEnterpriseBeanMetaData>
+{
+   private List<MetaDataBridge<ApplicationExceptionMetaData>> defaultBridges;
+
+   public ApplicationExceptionComponentMetaDataLoaderFactory(List<MetaDataBridge<ApplicationExceptionMetaData>> defaultBridges)
+   {
+      assert defaultBridges != null : "defaultBridges is null";
+      assert !defaultBridges.isEmpty() : "defaultBridges is empty"; // equally stupid
+      this.defaultBridges = defaultBridges;
+   }
+   
+   public MetaDataRetrieval createComponentMetaDataRetrieval(JBossEnterpriseBeanMetaData metaData, Signature signature,
+         ScopeKey key, ClassLoader classLoader)
+   {
+      if(signature instanceof ClassSignature)
+      {
+         ApplicationExceptionMetaData appExMetaData = findApplicationException(metaData, signature.getName());
+         if(metaData != null)
+            return new BridgedMetaDataLoader<ApplicationExceptionMetaData>(key, appExMetaData, classLoader, defaultBridges);
+      }
+      return null;
+   }
+   
+   private ApplicationExceptionMetaData findApplicationException(JBossEnterpriseBeanMetaData metaData, String name)
+   {
+      return metaData.getEjbJarMetaData().getAssemblyDescriptor().getApplicationExceptions().get(name);
+   }
+}

Added: projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionMetaDataBridge.java
===================================================================
--- projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionMetaDataBridge.java	                        (rev 0)
+++ projects/ejb3/trunk/transactions/src/main/java/org/jboss/ejb3/tx/metadata/ApplicationExceptionMetaDataBridge.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.ejb3.tx.metadata;
+
+import java.lang.annotation.Annotation;
+
+import javax.ejb.ApplicationException;
+
+import org.jboss.ejb3.annotation.impl.ApplicationExceptionImpl;
+import org.jboss.ejb3.metadata.MetaDataBridge;
+import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class ApplicationExceptionMetaDataBridge implements MetaDataBridge<ApplicationExceptionMetaData>
+{
+   public <A extends Annotation> A retrieveAnnotation(Class<A> annotationClass, ApplicationExceptionMetaData metaData,
+         ClassLoader classLoader)
+   {
+      if(annotationClass == ApplicationException.class && metaData != null)
+      {
+         return annotationClass.cast(new ApplicationExceptionImpl(metaData.isRollback()));
+      }
+      return null;
+   }
+
+   public <A extends Annotation> A retrieveAnnotation(Class<A> annotationClass, ApplicationExceptionMetaData metaData,
+         ClassLoader classLoader, String methodName, String... parameterNames)
+   {
+      if(annotationClass == ApplicationException.class)
+      {
+         throw new IllegalArgumentException("Can't retrieve on a method");
+      }
+      return null;
+   }
+}

Modified: projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/test/tx/common/StatefulContainer.java
===================================================================
--- projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/test/tx/common/StatefulContainer.java	2008-07-14 16:55:32 UTC (rev 75793)
+++ projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/test/tx/common/StatefulContainer.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -52,7 +52,13 @@
 import org.jboss.ejb3.interceptors.container.ContainerMethodInvocation;
 import org.jboss.ejb3.interceptors.container.DestructionInvocation;
 import org.jboss.ejb3.interceptors.lang.ClassHelper;
+import org.jboss.ejb3.metadata.MetaDataBridge;
+import org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData;
+import org.jboss.ejb3.tx.metadata.ApplicationExceptionComponentMetaDataLoaderFactory;
+import org.jboss.ejb3.tx.metadata.ApplicationExceptionMetaDataBridge;
 import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
 
 /**
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
@@ -62,6 +68,8 @@
 {
    private static final Logger log = Logger.getLogger(StatefulContainer.class);
    
+   private JBossSessionBeanMetaData beanMetaData;
+   
    private BeanContextFactory<T, StatefulContainer<T>> beanContextFactory = new BeanContextFactory<T, StatefulContainer<T>>()
    {
 
@@ -203,6 +211,25 @@
       setBeanContextFactory(beanContextFactory);
    }
    
+   public StatefulContainer(String domainName, Class<T> beanClass, JBossSessionBeanMetaData beanMetaData)
+   {
+      super();
+      
+      this.beanMetaData = beanMetaData;
+      
+      String name = beanMetaData.getName();
+      
+      ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+      AnnotationRepositoryToMetaData annotations = new AnnotationRepositoryToMetaData(beanClass, beanMetaData, name, classLoader);
+      List<MetaDataBridge<ApplicationExceptionMetaData>> appExceptionBridges = new ArrayList<MetaDataBridge<ApplicationExceptionMetaData>>();
+      appExceptionBridges.add(new ApplicationExceptionMetaDataBridge());
+      annotations.addComponentMetaDataLoaderFactory(new ApplicationExceptionComponentMetaDataLoaderFactory(appExceptionBridges));
+
+      initializeAdvisor(name, getDomain(domainName), beanClass, annotations);
+      
+      setBeanContextFactory(beanContextFactory);
+   }
+   
    /**
     * For direct access.
     * @return

Added: projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/AppRuntimeException.java
===================================================================
--- projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/AppRuntimeException.java	                        (rev 0)
+++ projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/AppRuntimeException.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.ejb3.tx.test.metadata;
+
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class AppRuntimeException extends RuntimeException
+{
+   private static final long serialVersionUID = 1L;
+
+}

Added: projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStateful.java
===================================================================
--- projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStateful.java	                        (rev 0)
+++ projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStateful.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.ejb3.tx.test.metadata;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public interface MyStateful
+{
+   void throwAppRuntimeException();
+}

Added: projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStatefulBean.java
===================================================================
--- projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStatefulBean.java	                        (rev 0)
+++ projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/MyStatefulBean.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.ejb3.tx.test.metadata;
+
+import javax.ejb.Stateful;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+ at Stateful // markup
+public class MyStatefulBean implements MyStateful
+{
+   public void throwAppRuntimeException()
+   {
+      throw new AppRuntimeException();
+   }
+}

Added: projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/unit/MetaDataTestCase.java
===================================================================
--- projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/unit/MetaDataTestCase.java	                        (rev 0)
+++ projects/ejb3/trunk/transactions/src/test/java/org/jboss/ejb3/tx/test/metadata/unit/MetaDataTestCase.java	2008-07-14 17:00:52 UTC (rev 75794)
@@ -0,0 +1,140 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.ejb3.tx.test.metadata.unit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.net.URL;
+
+import javax.naming.InitialContext;
+import javax.transaction.Status;
+import javax.transaction.TransactionManager;
+
+import org.jboss.ejb3.test.tx.common.StatefulContainer;
+import org.jboss.ejb3.test.tx.mc.UnitTestBootstrap;
+import org.jboss.ejb3.tx.test.metadata.AppRuntimeException;
+import org.jboss.ejb3.tx.test.metadata.MyStateful;
+import org.jboss.ejb3.tx.test.metadata.MyStatefulBean;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
+import org.jboss.metadata.ejb.spec.ApplicationExceptionsMetaData;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class MetaDataTestCase
+{
+   private static UnitTestBootstrap bootstrap;
+   
+   private static InitialContext ctx;
+   private static TransactionManager tm;
+   
+   private StatefulContainer<?> container;
+   
+   private static URL getResource(String name)
+   {
+      return Thread.currentThread().getContextClassLoader().getResource(name);
+   }
+   
+   @BeforeClass
+   public static void setUpBeforeClass() throws Throwable
+   {
+      bootstrap = new UnitTestBootstrap();
+      bootstrap.deploy(getResource("instance/beans.xml"));
+      
+      ctx = new InitialContext();
+      tm = (TransactionManager) ctx.lookup("java:/TransactionManager");
+   }
+
+   @AfterClass
+   public static void tearDownAfterClass() throws Exception
+   {
+      if(ctx != null)
+         ctx.close();
+      
+      if(bootstrap != null)
+         bootstrap.shutdown();
+   }
+
+   @Before
+   public void setUp() throws Exception
+   {
+   }
+
+   @After
+   public void tearDown() throws Exception
+   {
+   }
+
+   @Test
+   public void test1() throws Throwable
+   {
+      ApplicationExceptionMetaData applicationException = new ApplicationExceptionMetaData();
+      applicationException.setExceptionClass(AppRuntimeException.class.getName());
+      applicationException.setRollback(true);
+      
+      ApplicationExceptionsMetaData applicationExceptions = new ApplicationExceptionsMetaData();
+      applicationExceptions.add(applicationException);
+      
+      JBossAssemblyDescriptorMetaData assemblyDescriptor = new JBossAssemblyDescriptorMetaData();
+      assemblyDescriptor.setApplicationExceptions(applicationExceptions);
+      
+      JBossSessionBeanMetaData enterpriseBean = new JBossSessionBeanMetaData();
+      enterpriseBean.setName("MyStatefulBean");
+      
+      JBossEnterpriseBeansMetaData enterpriseBeans = new JBossEnterpriseBeansMetaData();
+      enterpriseBeans.add(enterpriseBean);
+      
+      JBoss50MetaData jarMetaData = new JBoss50MetaData();
+      jarMetaData.setAssemblyDescriptor(assemblyDescriptor);
+      jarMetaData.setEnterpriseBeans(enterpriseBeans);
+      
+      container = new StatefulContainer<MyStatefulBean>("Stateful Container", MyStatefulBean.class, enterpriseBean);
+      
+      MyStateful bean = container.constructProxy(MyStateful.class);
+      
+      tm.begin();
+      try
+      {
+         bean.throwAppRuntimeException();
+         fail("Should have thrown AppRuntimeException");
+      }
+      catch(AppRuntimeException e)
+      {
+         assertEquals("Transaction should have been marked for rollback", Status.STATUS_MARKED_ROLLBACK, tm.getStatus());
+      }
+      finally
+      {
+         tm.rollback();
+      }
+   }
+}




More information about the jboss-cvs-commits mailing list