[jboss-cvs] JBossAS SVN: r72152 - in projects/ejb3/trunk/interceptors/src: test/java/org/jboss/ejb3/test/interceptors/additive/unit and 10 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 14 04:56:18 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-04-14 04:56:17 -0400 (Mon, 14 Apr 2008)
New Revision: 72152

Added:
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunnerWrapper.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSetup.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/common/AOPDeployer.java
Modified:
   projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/additive/unit/AdditiveTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunner.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSuite.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/direct/unit/DirectTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/ejbthree1215/unit/ContextGetMethodTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/instances/unit/InterceptorInstancesTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/lifecycle/unit/CallbackMethodDescriptorTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/metadata/unit/MetadataTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/proxy/unit/ProxyTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/signature/unit/SignatureTestCase.java
   projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/supermethod/unit/SuperMethodTestCase.java
Log:
[EJBTHREE-1274] Refactor tests so they no longer get confused about aop info and classloaders. The culprit was doing all this in BasicTestCase's constructor since it gets called even when we are trying to run other tests

Modified: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -52,7 +52,7 @@
  * - there is always an instance advisor delegate
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public class ManagedObjectAdvisor<T, C extends AbstractContainer<T, C>> extends ClassAdvisor implements ExtendedAdvisor, InstanceAdvisor
 {
@@ -195,6 +195,10 @@
       return instanceAdvisorDelegate;
    }
    
+   public final void setInstanceAdvisorDelegate(InstanceAdvisorDelegate delegate)
+   {
+      instanceAdvisorDelegate = delegate;
+   }
    
    public void appendInterceptor(Interceptor interceptor)
    {

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/additive/unit/AdditiveTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/additive/unit/AdditiveTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/additive/unit/AdditiveTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -28,7 +28,6 @@
 import junit.framework.TestCase;
 
 import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.container.BeanContext;
 import org.jboss.ejb3.interceptors.direct.AbstractDirectContainer;
 import org.jboss.ejb3.interceptors.metadata.AdditiveBeanInterceptorMetaDataBridge;
@@ -39,6 +38,7 @@
 import org.jboss.ejb3.test.interceptors.additive.MyInterceptor;
 import org.jboss.ejb3.test.interceptors.additive.MySessionBean;
 import org.jboss.ejb3.test.interceptors.additive.XMLInterceptor;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
@@ -114,41 +114,49 @@
 
    public void test() throws Throwable
    {
-      AspectManager.verbose = true;
+      log.info("======= Additive.test()");
+//      AspectManager.verbose = true;
       
       // To make surefire happy
       Thread.currentThread().setContextClassLoader(MySessionBean.class.getClassLoader());
       
       // Bootstrap AOP
       // FIXME: use the right jboss-aop.xml
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-      
-      // Bootstrap metadata
-      UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
-      Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
-      url = Thread.currentThread().getContextClassLoader().getResource("additive/META-INF/ejb-jar.xml");
-      assertNotNull("no ejb-jar.xml", url);
-      EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
-      JBoss50MetaData jbossMetaData = new JBoss50MetaData();
-      jbossMetaData.merge(null, metaData);
-      
-      JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("MySessionBean");
-      assertNotNull(beanMetaData);
-      
-      MyContainer<MySessionBean> container = new MyContainer<MySessionBean>("MySessionBean", "Test", MySessionBean.class, beanMetaData);
-      
-      BeanContext<MySessionBean> bean = container.construct();
-      
-      List<Class<?>> visits = new ArrayList<Class<?>>();
-      container.invoke(bean, "doIt", visits);
-      
-      List<Class<?>> expected = new ArrayList<Class<?>>();
-      expected.add(MyInterceptor.class);
-      expected.add(XMLInterceptor.class);
-      expected.add(MySessionBean.class);
-      
-      assertEquals(expected, visits);
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         log.info(deployer.deploy());
+
+         // Bootstrap metadata
+         UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
+         Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
+         URL url = Thread.currentThread().getContextClassLoader().getResource("additive/META-INF/ejb-jar.xml");
+         assertNotNull("no ejb-jar.xml", url);
+         EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
+         JBoss50MetaData jbossMetaData = new JBoss50MetaData();
+         jbossMetaData.merge(null, metaData);
+         
+         JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("MySessionBean");
+         assertNotNull(beanMetaData);
+         
+         MyContainer<MySessionBean> container = new MyContainer<MySessionBean>("MySessionBean", "Test", MySessionBean.class, beanMetaData);
+         
+         BeanContext<MySessionBean> bean = container.construct();
+         
+         List<Class<?>> visits = new ArrayList<Class<?>>();
+         container.invoke(bean, "doIt", visits);
+         
+         List<Class<?>> expected = new ArrayList<Class<?>>();
+         expected.add(MyInterceptor.class);
+         expected.add(XMLInterceptor.class);
+         expected.add(MySessionBean.class);
+         
+         assertEquals(expected, visits);
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunner.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunner.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunner.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -29,6 +29,7 @@
 import org.jboss.ejb3.test.interceptors.basic.BasicBean;
 import org.jboss.ejb3.test.interceptors.basic.BasicInterceptor;
 import org.jboss.ejb3.test.interceptors.basic.BasicMethodInterceptor;
+import org.jboss.logging.Logger;
 
 /**
  * This one must run within a domain class loader.
@@ -40,8 +41,11 @@
  */
 public class BasicTestRunner extends TestCase
 {
+   private static final Logger log = Logger.getLogger(BasicTestRunner.class);
+
    public void test2() throws Exception
    {
+      log.info("======= Basic.test2()");
       assertEquals(0, BasicInterceptor.postConstructs);
       
       BasicBean bean = new BasicBean();
@@ -69,10 +73,12 @@
       
       //((Destructable) bean)._preDestroy();
       bean = null;
+      log.info("======= Done");
    }
    
    public void testInstances() throws Exception
    {
+      log.info("======= Basic.testInstances()");
       BasicBean bean1 = new BasicBean();
       BasicBean bean2 = new BasicBean();
       
@@ -81,5 +87,6 @@
       
       assertEquals(1, bean1.getState());
       assertEquals(2, bean2.getState());
+      log.info("======= Done");
    }
 }

Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunnerWrapper.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunnerWrapper.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestRunnerWrapper.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -0,0 +1,65 @@
+/*
+* 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.ejb3.test.interceptors.basic.unit;
+
+import java.lang.reflect.Method;
+
+import junit.framework.TestCase;
+
+import org.jboss.logging.Logger;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class BasicTestRunnerWrapper extends TestCase
+{
+   private static final Logger log = Logger.getLogger(BasicTestRunnerWrapper.class);
+
+   private static BasicTestSetup setup;
+   
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      if (setup == null)
+      {
+         //We only want to set the classloader and deploy the aop stuff once
+         setup = new BasicTestSetup();
+         setup.setUp();
+      }
+   }
+
+   public void test2() throws Exception
+   {
+      Method m = setup.getRunner().getClass().getMethod("test2");
+      m.invoke(setup.getRunner());
+   }
+   
+   public void testInstances() throws Exception
+   {
+      Method m = setup.getRunner().getClass().getMethod("testInstances");
+      m.invoke(setup.getRunner());
+   }
+
+}

Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSetup.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSetup.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSetup.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -0,0 +1,113 @@
+/*
+* 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.ejb3.test.interceptors.basic.unit;
+
+import java.net.URL;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.AspectXmlLoader;
+import org.jboss.aop.Domain;
+import org.jboss.aop.DomainDefinition;
+import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
+import org.jboss.ejb3.interceptors.aop.DomainClassLoader;
+import org.jboss.ejb3.interceptors.lang.ScopedClassLoader;
+import org.jboss.logging.Logger;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class BasicTestSetup
+{
+   private static final Logger log = Logger.getLogger(BasicTestSetup.class);
+
+   Object runner = null;
+
+   public BasicTestSetup() throws Exception
+   {
+      log.info("BasicTestSetup constructor");
+   }
+   
+   public void setUp() throws Exception
+   {
+      log.info("===== Setting up");
+      
+      // Neat trick to find the deployment URL
+      // We can't use '.' as resource, because on some machines the classpath order is different,
+      // so we might get target/classes instead of target/test-classes.
+      String resourceName = "log4j.xml";
+      String spec = getClass().getClassLoader().getResource(resourceName).toString();
+      URL deploymentURL = new URL(spec.substring(0, spec.length() - resourceName.length()));
+      log.info(deploymentURL);
+      ScopedClassLoader deploymentClassLoader = new ScopedClassLoader(new URL[] { deploymentURL });
+
+      // Bootstrap AOP
+      URL url = Thread.currentThread().getContextClassLoader().getResource("basic/jboss-aop.xml");
+      log.info("deploying AOP from " + url);
+      AspectXmlLoader.deployXML(url);
+
+      // Bootstrap the basic container
+      String containerName = "InterceptorContainer";
+      
+      DomainDefinition domainDefinition = AspectManager.instance().getContainer(containerName);
+      if(domainDefinition == null)
+         throw new IllegalArgumentException("Domain definition for container '" + containerName + "' can not be found");
+      
+      final Domain domain = (Domain) domainDefinition.getManager();
+      
+      ClassLoader classLoader = new DomainClassLoader(Thread.currentThread().getContextClassLoader(), deploymentClassLoader, domain);
+      Thread.currentThread().setContextClassLoader(classLoader);
+      
+      // The moment an instrumented class comes up it does AspectManager.instance(classLoader), which
+      // should return the classLoader created above. So we tie in a class loader scoping policy.
+      // Note that this won't work in AS.
+      AOPClassLoaderScopingPolicy classLoaderScopingPolicy = new AOPClassLoaderScopingPolicy() {
+         public Domain getDomain(ClassLoader classLoader, AspectManager parent)
+         {
+            //log.debug("getDomain");
+            if(classLoader instanceof DomainClassLoader)
+               return ((DomainClassLoader) classLoader).getDomain();
+            return null;
+         }
+
+         public Domain getTopLevelDomain(AspectManager parent)
+         {
+            throw new RuntimeException("NYI");
+         }
+
+         public boolean isScoped(ClassLoader classLoader)
+         {
+            throw new RuntimeException("NYI");
+         }
+      };
+      AspectManager.setClassLoaderScopingPolicy(classLoaderScopingPolicy);
+      
+      runner = classLoader.loadClass("org.jboss.ejb3.test.interceptors.basic.unit.BasicTestRunner").newInstance();
+      log.info("===== Done setting up");
+   }
+   
+   public Object getRunner()
+   {
+      return runner;
+   }
+}

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSuite.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSuite.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/basic/unit/BasicTestSuite.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -21,19 +21,9 @@
  */
 package org.jboss.ejb3.test.interceptors.basic.unit;
 
-import java.net.URL;
-
 import junit.framework.Test;
-import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
-import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
-import org.jboss.aop.Domain;
-import org.jboss.aop.DomainDefinition;
-import org.jboss.aop.classpool.AOPClassLoaderScopingPolicy;
-import org.jboss.ejb3.interceptors.aop.DomainClassLoader;
-import org.jboss.ejb3.interceptors.lang.ScopedClassLoader;
 import org.jboss.logging.Logger;
 
 /**
@@ -45,97 +35,11 @@
 public class BasicTestSuite extends TestSuite
 {
    private static final Logger log = Logger.getLogger(BasicTestSuite.class);
-   
-   private ClassLoader classLoader;
-   
-   public BasicTestSuite() throws Exception
-   {
-      // Neat trick to find the deployment URL
-      // We can't use '.' as resource, because on some machines the classpath order is different,
-      // so we might get target/classes instead of target/test-classes.
-      String resourceName = "log4j.xml";
-      String spec = getClass().getClassLoader().getResource(resourceName).toString();
-      URL deploymentURL = new URL(spec.substring(0, spec.length() - resourceName.length()));
-      log.info(deploymentURL);
-      ScopedClassLoader deploymentClassLoader = new ScopedClassLoader(new URL[] { deploymentURL });
-
-      // Bootstrap AOP
-      URL url = Thread.currentThread().getContextClassLoader().getResource("basic/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-
-      // Bootstrap the basic container
-      String containerName = "InterceptorContainer";
       
-      DomainDefinition domainDefinition = AspectManager.instance().getContainer(containerName);
-      if(domainDefinition == null)
-         throw new IllegalArgumentException("Domain definition for container '" + containerName + "' can not be found");
-      
-      final Domain domain = (Domain) domainDefinition.getManager();
-      
-      this.classLoader = new DomainClassLoader(Thread.currentThread().getContextClassLoader(), deploymentClassLoader, domain);
-      Thread.currentThread().setContextClassLoader(classLoader);
-      
-      // The moment an instrumented class comes up it does AspectManager.instance(classLoader), which
-      // should return the classLoader created above. So we tie in a class loader scoping policy.
-      // Note that this won't work in AS.
-      AOPClassLoaderScopingPolicy classLoaderScopingPolicy = new AOPClassLoaderScopingPolicy() {
-         public Domain getDomain(ClassLoader classLoader, AspectManager parent)
-         {
-            //log.debug("getDomain");
-            if(classLoader instanceof DomainClassLoader)
-               return ((DomainClassLoader) classLoader).getDomain();
-            return null;
-         }
-
-         public Domain getTopLevelDomain(AspectManager parent)
-         {
-            throw new RuntimeException("NYI");
-         }
-
-         public boolean isScoped(ClassLoader classLoader)
-         {
-            throw new RuntimeException("NYI");
-         }
-      };
-      AspectManager.setClassLoaderScopingPolicy(classLoaderScopingPolicy);
-      
-      // We're done
-   }
-   
    public static Test suite() throws Exception
    {
       BasicTestSuite suite = new BasicTestSuite();
-      suite.addTestSuite("org.jboss.ejb3.test.interceptors.basic.unit.BasicTestRunner");
+      suite.addTestSuite(BasicTestRunnerWrapper.class);
       return suite;
    }
-   
-   @Override
-   @SuppressWarnings("unchecked")
-   public void addTestSuite(Class testClass)
-   {
-      // trick or treat
-      try
-      {
-         addTestSuite(testClass.getName());
-      }
-      catch(final ClassNotFoundException e)
-      {
-         Test test = new TestCase("error") {
-            @Override
-            protected void runTest() throws Throwable
-            {
-               fail("Failed to load class" + e.getMessage());
-            }
-         };
-         super.addTest(test);
-      }
-   }
-
-   @SuppressWarnings("unchecked")
-   public void addTestSuite(String testClassName) throws ClassNotFoundException
-   {
-      // trick or treat
-      super.addTestSuite((Class<? extends TestCase>) classLoader.loadClass(testClassName));
-   }
 }

Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/common/AOPDeployer.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/common/AOPDeployer.java	                        (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/common/AOPDeployer.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -0,0 +1,68 @@
+/*
+* 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.ejb3.test.interceptors.common;
+
+import java.net.URL;
+
+import org.jboss.aop.AspectXmlLoader;
+import org.jboss.logging.Logger;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class AOPDeployer
+{
+   private static Logger log = Logger.getLogger(AOPDeployer.class);
+   
+   private String path;
+   
+   URL url;
+   
+   public AOPDeployer(String path)
+   {
+      this.path = path;
+   }
+   
+   public String deploy() throws Exception
+   {
+      url = Thread.currentThread().getContextClassLoader().getResource(path);
+      log.info("Deploying AOP from " + url);
+      AspectXmlLoader.deployXML(url);
+      return "Deployed " + url;
+   }
+   
+   public String undeploy()
+   {
+      try
+      {
+         log.info("Undeploying AOP from " + url);
+         AspectXmlLoader.undeployXML(url);
+      }
+      catch(Exception e)
+      {
+         log.warn("Error undeploying " + url, e); 
+      }
+      return "Undeployed " + url;
+   }
+}

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/direct/unit/DirectTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/direct/unit/DirectTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/direct/unit/DirectTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -21,16 +21,15 @@
  */
 package org.jboss.ejb3.test.interceptors.direct.unit;
 
-import java.net.URL;
 import java.util.Arrays;
 
 import junit.framework.TestCase;
 
 import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.container.BeanContext;
 import org.jboss.ejb3.interceptors.container.ManagedObjectAdvisor;
 import org.jboss.ejb3.interceptors.direct.DirectContainer;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.direct.DirectBean;
 import org.jboss.ejb3.test.interceptors.direct.DirectInterceptor;
 import org.jboss.ejb3.test.interceptors.direct.DirectMethodInterceptor;
@@ -62,49 +61,57 @@
          assertTrue(((ManagedObjectAdvisor<T, DirectContainer<T>>) getAdvisor()).getContainer() == this);
       }
    }
-   
+
    public void test() throws Throwable
    {
-      AspectManager.verbose = true;
+      log.info("======= Direct.test()");
+//      AspectManager.verbose = true;
       
       // To make surefire happy
       Thread.currentThread().setContextClassLoader(DirectBean.class.getClassLoader());
       
-      // Bootstrap AOP
-      // FIXME: use the right jboss-aop.xml
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-      
-      assertEquals(0, DirectInterceptor.postConstructs);
-      
-      MyContainer<DirectBean> container = new MyContainer<DirectBean>("DirectBean", "Test", DirectBean.class);
-      container.testAdvisor();
-      
-      BeanContext<DirectBean> bean = container.construct();
-      
-      assertEquals("DirectInterceptor postConstruct must have been called once", 1, DirectInterceptor.postConstructs);
-      assertEquals("DirectBean postConstruct must have been called once", 1, DirectBean.postConstructs);
-      
-      System.out.println(bean.getClass() + " " + bean.getClass().getClassLoader());
-      System.out.println("  " + Arrays.toString(bean.getClass().getInterfaces()));
-      String result = container.invoke(bean, "sayHi", "Test");
-      System.out.println(result);
-      
-      assertEquals("sayHi didn't invoke DirectInterceptor.aroundInvoke once", 1, DirectInterceptor.aroundInvokes);
-      assertEquals("sayHi didn't invoke DirectBean.aroundInvoke once", 1, DirectBean.aroundInvokes);
-      
-      container.invoke(bean, "intercept");
-      assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 1, DirectMethodInterceptor.aroundInvokes);
-      container.invoke(bean, "intercept");
-      assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 2, DirectMethodInterceptor.aroundInvokes);
-      
-      assertEquals("intercept didn't invoke DirectInterceptor.aroundInvoke", 3, DirectInterceptor.aroundInvokes);
-      assertEquals("DirectInterceptor postConstruct must have been called once", 1, DirectInterceptor.postConstructs);
-      // 12.7 footnote 57
-      assertEquals("DirectMethodInterceptor.postConstruct must not have been called (12.7 footnote 57)", 0, DirectMethodInterceptor.postConstructs);
-      
-      //((Destructable) bean)._preDestroy();
-      bean = null;
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         // FIXME: use the right jboss-aop.xml
+         log.info(deployer.deploy());
+         
+         assertEquals(0, DirectInterceptor.postConstructs);
+         
+         MyContainer<DirectBean> container = new MyContainer<DirectBean>("DirectBean", "Test", DirectBean.class);
+         container.testAdvisor();
+         
+         BeanContext<DirectBean> bean = container.construct();
+         
+         assertEquals("DirectInterceptor postConstruct must have been called once", 1, DirectInterceptor.postConstructs);
+         assertEquals("DirectBean postConstruct must have been called once", 1, DirectBean.postConstructs);
+         
+         System.out.println(bean.getClass() + " " + bean.getClass().getClassLoader());
+         System.out.println("  " + Arrays.toString(bean.getClass().getInterfaces()));
+         String result = container.invoke(bean, "sayHi", "Test");
+         System.out.println(result);
+         
+         assertEquals("sayHi didn't invoke DirectInterceptor.aroundInvoke once", 1, DirectInterceptor.aroundInvokes);
+         assertEquals("sayHi didn't invoke DirectBean.aroundInvoke once", 1, DirectBean.aroundInvokes);
+         
+         container.invoke(bean, "intercept");
+         assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 1, DirectMethodInterceptor.aroundInvokes);
+         container.invoke(bean, "intercept");
+         assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 2, DirectMethodInterceptor.aroundInvokes);
+         
+         assertEquals("intercept didn't invoke DirectInterceptor.aroundInvoke", 3, DirectInterceptor.aroundInvokes);
+         assertEquals("DirectInterceptor postConstruct must have been called once", 1, DirectInterceptor.postConstructs);
+         // 12.7 footnote 57
+         assertEquals("DirectMethodInterceptor.postConstruct must not have been called (12.7 footnote 57)", 0, DirectMethodInterceptor.postConstructs);
+         
+         //((Destructable) bean)._preDestroy();
+         bean = null;
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/ejbthree1215/unit/ContextGetMethodTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/ejbthree1215/unit/ContextGetMethodTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/ejbthree1215/unit/ContextGetMethodTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -21,13 +21,12 @@
  */
 package org.jboss.ejb3.test.interceptors.ejbthree1215.unit;
 
-import java.net.URL;
 import java.util.Date;
 
 import junit.framework.TestCase;
 
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.proxy.ProxyContainer;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.ejbthree1215.GetMethodInterceptor;
 import org.jboss.ejb3.test.interceptors.ejbthree1215.Hello;
 import org.jboss.ejb3.test.interceptors.ejbthree1215.HelloBean;
@@ -37,7 +36,7 @@
  * EJBTHREE-1215: InvocationContext.getMethod must return null in lifecycle callback.
  * 
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public class ContextGetMethodTestCase extends TestCase
 {
@@ -45,6 +44,7 @@
 
    public void test1() throws Throwable
    {
+      log.info("======= ContextGetMethod.test1()");
       //AspectManager.verbose = true;
       
 //      // TODO: During inventory surefire boots up BasicTestSuite
@@ -55,23 +55,32 @@
 //         URL url = Thread.currentThread().getContextClassLoader().getResource("basic/jboss-aop.xml");
 //         AspectXmlLoader.undeployXML(url);
 //      }
+
       
-      // Bootstrap AOP
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         // FIXME: use the right jboss-aop.xml
+         log.info(deployer.deploy());
 
-      Thread.currentThread().setContextClassLoader(Hello.class.getClassLoader());
-      
-      ProxyContainer<HelloBean> container = new ProxyContainer<HelloBean>("ContextGetMethodTestCase", "InterceptorContainer", HelloBean.class);
-      
-      Class<?> interfaces[] = { Hello.class };
-      Hello proxy = container.constructProxy(interfaces);
-      
-      String name = new Date().toString();
-      String result = proxy.sayHiTo(name);
-      
-      assertEquals(1, GetMethodInterceptor.invocations);
-      assertEquals("Hi " + name, result);
+         Thread.currentThread().setContextClassLoader(Hello.class.getClassLoader());
+         
+         ProxyContainer<HelloBean> container = new ProxyContainer<HelloBean>("ContextGetMethodTestCase", "InterceptorContainer", HelloBean.class);
+         
+         Class<?> interfaces[] = { Hello.class };
+         Hello proxy = container.constructProxy(interfaces);
+         
+         String name = new Date().toString();
+         String result = proxy.sayHiTo(name);
+         
+         assertEquals(1, GetMethodInterceptor.invocations);
+         assertEquals("Hi " + name, result);
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/instances/unit/InterceptorInstancesTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/instances/unit/InterceptorInstancesTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/instances/unit/InterceptorInstancesTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -21,12 +21,10 @@
  */
 package org.jboss.ejb3.test.interceptors.instances.unit;
 
-import java.net.URL;
-
 import junit.framework.TestCase;
 
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.proxy.ProxyContainer;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.instances.SimpleBean;
 import org.jboss.ejb3.test.interceptors.instances.StatefulInterceptor;
 import org.jboss.ejb3.test.interceptors.instances.StatefulInterceptorInterface;
@@ -46,28 +44,37 @@
    
    public void test1() throws Throwable
    {
+      log.info("======= InterceptorInstances.test1()");
       //AspectManager.verbose = true;
       
-      // Bootstrap AOP
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-      
-      Thread.currentThread().setContextClassLoader(StatefulInterceptorInterface.class.getClassLoader());
-      
-      ProxyContainer<SimpleBean> container = new ProxyContainer<SimpleBean>("InterceptorInstancesTestCase", "InterceptorContainer", SimpleBean.class);
-      
-      assertEquals(0, StatefulInterceptor.postConstructs);
-      
-      StatefulInterceptorInterface bean1 = container.constructProxy(new Class[] { StatefulInterceptorInterface.class });
-      StatefulInterceptorInterface bean2 = container.constructProxy(new Class[] { StatefulInterceptorInterface.class });
-      
-      bean1.setState(1);
-      bean2.setState(2);
-      
-      assertEquals(1, bean1.getState());
-      assertEquals(2, bean2.getState());
-      
-      assertEquals(2, StatefulInterceptor.postConstructs);
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         // FIXME: use the right jboss-aop.xml
+         log.info(deployer.deploy());
+         
+         Thread.currentThread().setContextClassLoader(StatefulInterceptorInterface.class.getClassLoader());
+         
+         ProxyContainer<SimpleBean> container = new ProxyContainer<SimpleBean>("InterceptorInstancesTestCase", "InterceptorContainer", SimpleBean.class);
+         
+         assertEquals(0, StatefulInterceptor.postConstructs);
+         
+         StatefulInterceptorInterface bean1 = container.constructProxy(new Class[] { StatefulInterceptorInterface.class });
+         StatefulInterceptorInterface bean2 = container.constructProxy(new Class[] { StatefulInterceptorInterface.class });
+         
+         bean1.setState(1);
+         bean2.setState(2);
+         
+         assertEquals(1, bean1.getState());
+         assertEquals(2, bean2.getState());
+         
+         assertEquals(2, StatefulInterceptor.postConstructs);
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/lifecycle/unit/CallbackMethodDescriptorTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/lifecycle/unit/CallbackMethodDescriptorTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/lifecycle/unit/CallbackMethodDescriptorTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -28,7 +28,6 @@
 import junit.framework.TestCase;
 
 import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.container.BeanContext;
 import org.jboss.ejb3.interceptors.direct.AbstractDirectContainer;
 import org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge;
@@ -36,6 +35,7 @@
 import org.jboss.ejb3.interceptors.metadata.InterceptorMetaDataBridge;
 import org.jboss.ejb3.metadata.MetaDataBridge;
 import org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.lifecycle.SessionBeanCallbackBean;
 import org.jboss.ejb3.test.interceptors.metadata.MetadataBean;
 import org.jboss.logging.Logger;
@@ -104,39 +104,47 @@
 
    public void test() throws Throwable
    {
-      AspectManager.verbose = true;
+      log.info("======= CallbackMethodDescriptor.test()");
+//      AspectManager.verbose = true;
       
       // To make surefire happy
       Thread.currentThread().setContextClassLoader(MetadataBean.class.getClassLoader());
       
-      // Bootstrap AOP
-      // FIXME: use the right jboss-aop.xml
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-      
-      // Bootstrap metadata
-      UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
-      Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
-      url = Thread.currentThread().getContextClassLoader().getResource("lifecycle/META-INF/ejb-jar.xml");
-      EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
-      JBoss50MetaData jbossMetaData = new JBoss50MetaData();
-      jbossMetaData.merge(null, metaData);
-      
-      JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("SessionBeanCallbackBean");
-      assertNotNull(beanMetaData);
-      
-      assertEquals(0, SessionBeanCallbackBean.postConstructs);
-      
-      MyContainer<SessionBeanCallbackBean> container = new MyContainer<SessionBeanCallbackBean>("SessionBeanCallbackBean", "Test", SessionBeanCallbackBean.class, beanMetaData);
-      
-      BeanContext<SessionBeanCallbackBean> bean = container.construct();
-      
-      assertEquals("SessionBeanCallbackBean ejbCreate must have been called once", 1, SessionBeanCallbackBean.postConstructs);
-      
-      container.destroy(bean);
-      assertEquals(1, SessionBeanCallbackBean.preDestroys);
-      
-      bean = null;
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         // FIXME: use the right jboss-aop.xml
+         log.info(deployer.deploy());
+         
+         // Bootstrap metadata
+         UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
+         Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
+         URL url = Thread.currentThread().getContextClassLoader().getResource("lifecycle/META-INF/ejb-jar.xml");
+         EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
+         JBoss50MetaData jbossMetaData = new JBoss50MetaData();
+         jbossMetaData.merge(null, metaData);
+         
+         JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("SessionBeanCallbackBean");
+         assertNotNull(beanMetaData);
+         
+         assertEquals(0, SessionBeanCallbackBean.postConstructs);
+         
+         MyContainer<SessionBeanCallbackBean> container = new MyContainer<SessionBeanCallbackBean>("SessionBeanCallbackBean", "Test", SessionBeanCallbackBean.class, beanMetaData);
+         
+         BeanContext<SessionBeanCallbackBean> bean = container.construct();
+         
+         assertEquals("SessionBeanCallbackBean ejbCreate must have been called once", 1, SessionBeanCallbackBean.postConstructs);
+         
+         container.destroy(bean);
+         assertEquals(1, SessionBeanCallbackBean.preDestroys);
+         
+         bean = null;
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/metadata/unit/MetadataTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/metadata/unit/MetadataTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/metadata/unit/MetadataTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -29,7 +29,6 @@
 import junit.framework.TestCase;
 
 import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.container.BeanContext;
 import org.jboss.ejb3.interceptors.direct.AbstractDirectContainer;
 import org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge;
@@ -37,9 +36,9 @@
 import org.jboss.ejb3.interceptors.metadata.InterceptorMetaDataBridge;
 import org.jboss.ejb3.metadata.MetaDataBridge;
 import org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.common.CommonInterceptor;
 import org.jboss.ejb3.test.interceptors.direct.DirectMethodInterceptor;
-import org.jboss.ejb3.test.interceptors.metadata.InterceptorOrderBean;
 import org.jboss.ejb3.test.interceptors.metadata.MetadataBean;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
@@ -115,114 +114,68 @@
       };
    }
 
-   @Override
-   protected void setUp() throws Exception
-   {
-      CommonInterceptor.aroundInvokes = 0;
-      CommonInterceptor.postConstructs = 0;
-      CommonInterceptor.preDestroys = 0;
-   }
-   
    public void test() throws Throwable
    {
-      AspectManager.verbose = true;
+      log.info("======= MetaData.test()");
+//      AspectManager.verbose = true;
       
       // To make surefire happy
       Thread.currentThread().setContextClassLoader(MetadataBean.class.getClassLoader());
       
-      // Bootstrap AOP
-      // FIXME: use the right jboss-aop.xml
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-      
-      // Bootstrap metadata
-      UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
-      Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
-      url = Thread.currentThread().getContextClassLoader().getResource("metadata/META-INF/ejb-jar.xml");
-      EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
-      JBoss50MetaData jbossMetaData = new JBoss50MetaData();
-      jbossMetaData.merge(null, metaData);
-      
-      JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("MetadataBean");
-      assertNotNull(beanMetaData);
-      
-      assertEquals(0, CommonInterceptor.postConstructs);
-      
-      MyContainer<MetadataBean> container = new MyContainer<MetadataBean>("MetadataBean", "Test", MetadataBean.class, beanMetaData);
-      container.testAdvisor();
-      
-      BeanContext<MetadataBean> bean = container.construct();
-      
-      assertEquals("CommonInterceptor postConstruct must have been called once", 1, CommonInterceptor.postConstructs);
-      
-      System.out.println(bean.getClass() + " " + bean.getClass().getClassLoader());
-      System.out.println("  " + Arrays.toString(bean.getClass().getInterfaces()));
-      String result = container.invoke(bean, "sayHi", "Test");
-      System.out.println(result);
-      
-      assertEquals("sayHi didn't invoke CommonInterceptor.aroundInvoke once", 1, CommonInterceptor.aroundInvokes);
-      assertEquals("sayHi didn't invoke MetadataBean.aroundInvoke once", 1, MetadataBean.aroundInvokes);
-      
-      container.invoke(bean, "intercept");
-      assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 1, DirectMethodInterceptor.aroundInvokes);
-      container.invoke(bean, "intercept");
-      assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 2, DirectMethodInterceptor.aroundInvokes);
-      
-      assertEquals("intercept didn't invoke CommonInterceptor.aroundInvoke", 3, CommonInterceptor.aroundInvokes);
-      assertEquals("CommonInterceptor postConstruct must have been called once", 1, CommonInterceptor.postConstructs);
-      // 12.7 footnote 57
-      assertEquals("DirectMethodInterceptor.postConstruct must not have been called", 0, DirectMethodInterceptor.postConstructs);
-      
-      container.destroy(bean);
-      assertEquals(1, CommonInterceptor.preDestroys);
-      
-      bean = null;
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         // FIXME: use the right jboss-aop.xml
+         log.info(deployer.deploy());
+         
+         // Bootstrap metadata
+         UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
+         Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
+         URL url = Thread.currentThread().getContextClassLoader().getResource("metadata/META-INF/ejb-jar.xml");
+         EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
+         JBoss50MetaData jbossMetaData = new JBoss50MetaData();
+         jbossMetaData.merge(null, metaData);
+         
+         JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("MetadataBean");
+         assertNotNull(beanMetaData);
+         
+         assertEquals(0, CommonInterceptor.postConstructs);
+         
+         MyContainer<MetadataBean> container = new MyContainer<MetadataBean>("MetadataBean", "Test", MetadataBean.class, beanMetaData);
+         container.testAdvisor();
+         
+         BeanContext<MetadataBean> bean = container.construct();
+         
+         assertEquals("CommonInterceptor postConstruct must have been called once", 1, CommonInterceptor.postConstructs);
+         
+         System.out.println(bean.getClass() + " " + bean.getClass().getClassLoader());
+         System.out.println("  " + Arrays.toString(bean.getClass().getInterfaces()));
+         String result = container.invoke(bean, "sayHi", "Test");
+         System.out.println(result);
+         
+         assertEquals("sayHi didn't invoke CommonInterceptor.aroundInvoke once", 1, CommonInterceptor.aroundInvokes);
+         assertEquals("sayHi didn't invoke MetadataBean.aroundInvoke once", 1, MetadataBean.aroundInvokes);
+         
+         container.invoke(bean, "intercept");
+         assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 1, DirectMethodInterceptor.aroundInvokes);
+         container.invoke(bean, "intercept");
+         assertEquals("intercept didn't invoke DirectMethodInterceptor.aroundInvoke", 2, DirectMethodInterceptor.aroundInvokes);
+         
+         assertEquals("intercept didn't invoke CommonInterceptor.aroundInvoke", 3, CommonInterceptor.aroundInvokes);
+         assertEquals("CommonInterceptor postConstruct must have been called once", 1, CommonInterceptor.postConstructs);
+         // 12.7 footnote 57
+         assertEquals("DirectMethodInterceptor.postConstruct must not have been called", 0, DirectMethodInterceptor.postConstructs);
+         
+         container.destroy(bean);
+         assertEquals(1, CommonInterceptor.preDestroys);
+         
+         bean = null;
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
-   
-   public void testInterceptorOrder() throws Throwable
-   {
-      // To make surefire happy
-      Thread.currentThread().setContextClassLoader(MetadataBean.class.getClassLoader());
-      
-      // Bootstrap AOP
-      // FIXME: use the right jboss-aop.xml
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-      
-      // Bootstrap metadata
-      UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
-      Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
-      url = Thread.currentThread().getContextClassLoader().getResource("metadata/META-INF/ejb-jar.xml");
-      EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
-      JBoss50MetaData jbossMetaData = new JBoss50MetaData();
-      jbossMetaData.merge(null, metaData);
-      
-      JBossEnterpriseBeanMetaData beanMetaData = jbossMetaData.getEnterpriseBean("InterceptorOrderBean");
-      assertNotNull(beanMetaData);
-      
-      assertEquals(0, CommonInterceptor.postConstructs);
-      
-      MyContainer<InterceptorOrderBean> container = new MyContainer<InterceptorOrderBean>("InterceptorOrderBean", "Test", InterceptorOrderBean.class, beanMetaData);
-      container.testAdvisor();
-      
-      BeanContext<InterceptorOrderBean> bean = container.construct();
-      
-      assertEquals("CommonInterceptor postConstruct must have been called once", 1, CommonInterceptor.postConstructs);
-      
-      System.out.println(bean.getClass() + " " + bean.getClass().getClassLoader());
-      System.out.println("  " + Arrays.toString(bean.getClass().getInterfaces()));
-      String result = container.invoke(bean, "sayHi", "Test");
-      System.out.println(result);
-      
-      assertEquals("sayHi didn't invoke CommonInterceptor.aroundInvoke once", 1, CommonInterceptor.aroundInvokes);
-      
-      assertEquals("CommonInterceptor postConstruct must have been called once", 1, CommonInterceptor.postConstructs);
-      
-      container.destroy(bean);
-      assertEquals(1, CommonInterceptor.preDestroys);
-      
-      bean = null;
-   }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/proxy/unit/ProxyTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/proxy/unit/ProxyTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/proxy/unit/ProxyTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -21,12 +21,10 @@
  */
 package org.jboss.ejb3.test.interceptors.proxy.unit;
 
-import java.net.URL;
-
 import junit.framework.TestCase;
 
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.proxy.ProxyContainer;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.proxy.MyInterface;
 import org.jboss.ejb3.test.interceptors.proxy.ProxiedBean;
 import org.jboss.ejb3.test.interceptors.proxy.ProxiedInterceptor;
@@ -44,28 +42,36 @@
 
    public void test1() throws Throwable
    {
+      log.info("======= Proxy.test1()");
       //AspectManager.verbose = true;
       
-      // Bootstrap AOP
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         log.info(deployer.deploy());
 
-      Thread.currentThread().setContextClassLoader(MyInterface.class.getClassLoader());
-      
-      ProxyContainer<ProxiedBean> container = new ProxyContainer<ProxiedBean>("ProxyTestCase", "InterceptorContainer", ProxiedBean.class);
-      
-      assertEquals(0, ProxiedInterceptor.postConstructs);
-      
-      Class<?> interfaces[] = { MyInterface.class };
-      MyInterface proxy = container.constructProxy(interfaces);
-      
-      assertEquals("ProxiedInterceptor postConstruct must have been called once", 1, ProxiedInterceptor.postConstructs);
-      
-      String result = proxy.sayHi("Me");
-      assertEquals("Hi Me", result);
-      
-      assertEquals("sayHi didn't invoke ProxiedInterceptor.aroundInvoke once", 1, ProxiedInterceptor.aroundInvokes);
-      assertEquals("sayHi didn't invoke ProxiedBean.aroundInvoke once", 1, ProxiedBean.aroundInvokes);
+         Thread.currentThread().setContextClassLoader(MyInterface.class.getClassLoader());
+         
+         ProxyContainer<ProxiedBean> container = new ProxyContainer<ProxiedBean>("ProxyTestCase", "InterceptorContainer", ProxiedBean.class);
+         
+         assertEquals(0, ProxiedInterceptor.postConstructs);
+         
+         Class<?> interfaces[] = { MyInterface.class };
+         MyInterface proxy = container.constructProxy(interfaces);
+         
+         assertEquals("ProxiedInterceptor postConstruct must have been called once", 1, ProxiedInterceptor.postConstructs);
+         
+         String result = proxy.sayHi("Me");
+         assertEquals("Hi Me", result);
+         
+         assertEquals("sayHi didn't invoke ProxiedInterceptor.aroundInvoke once", 1, ProxiedInterceptor.aroundInvokes);
+         assertEquals("sayHi didn't invoke ProxiedBean.aroundInvoke once", 1, ProxiedBean.aroundInvokes);
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/signature/unit/SignatureTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/signature/unit/SignatureTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/signature/unit/SignatureTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -22,16 +22,15 @@
 package org.jboss.ejb3.test.interceptors.signature.unit;
 
 
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
 import junit.framework.TestCase;
 
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.container.BeanContext;
 import org.jboss.ejb3.interceptors.direct.DirectContainer;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.signature.PackageProtectedInterceptor;
 import org.jboss.ejb3.test.interceptors.signature.SignatureTestBean;
 import org.jboss.logging.Logger;
@@ -55,31 +54,39 @@
    
    public void test() throws Throwable
    {
+      log.info("======= Signature.test()");
       //AspectManager.verbose = true;
       
       // To make surefire happy
       Thread.currentThread().setContextClassLoader(SignatureTestBean.class.getClassLoader());
       
-      // Bootstrap AOP
-      // FIXME: use the right jboss-aop.xml
-      URL url = Thread.currentThread().getContextClassLoader().getResource("proxy/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
+      AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+      try
+      {
+         // Bootstrap AOP
+         // FIXME: use the right jboss-aop.xml
+         log.info(deployer.deploy());
       
-      lifeCycleVisits.clear();
-      
-      DirectContainer<SignatureTestBean> container = new DirectContainer<SignatureTestBean>("SignatureTestBean", "Test", SignatureTestBean.class);
-      
-      BeanContext<SignatureTestBean> bean = container.construct();
-      
-      List<String> expectedLifeCycleVisits = Arrays.asList("org.jboss.ejb3.test.interceptors.signature.PackageProtectedInterceptor.postConstruct");
-      assertEquals(expectedLifeCycleVisits, lifeCycleVisits);
-      
-      List<Class<?>> visits = new ArrayList<Class<?>>();
-      Integer numVisits = container.invoke(bean, "test", visits);
-      
-      assertEquals(2, numVisits.intValue());
-      List<Class<?>> expectedVisits = Arrays.asList(PackageProtectedInterceptor.class, SignatureTestBean.class);
-      assertEquals(expectedVisits, visits);
+         lifeCycleVisits.clear();
+         
+         DirectContainer<SignatureTestBean> container = new DirectContainer<SignatureTestBean>("SignatureTestBean", "Test", SignatureTestBean.class);
+         
+         BeanContext<SignatureTestBean> bean = container.construct();
+         
+         List<String> expectedLifeCycleVisits = Arrays.asList("org.jboss.ejb3.test.interceptors.signature.PackageProtectedInterceptor.postConstruct");
+         assertEquals(expectedLifeCycleVisits, lifeCycleVisits);
+         
+         List<Class<?>> visits = new ArrayList<Class<?>>();
+         Integer numVisits = container.invoke(bean, "test", visits);
+         
+         assertEquals(2, numVisits.intValue());
+         List<Class<?>> expectedVisits = Arrays.asList(PackageProtectedInterceptor.class, SignatureTestBean.class);
+         assertEquals(expectedVisits, visits);
+      }
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }

Modified: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/supermethod/unit/SuperMethodTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/supermethod/unit/SuperMethodTestCase.java	2008-04-14 07:47:29 UTC (rev 72151)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/test/interceptors/supermethod/unit/SuperMethodTestCase.java	2008-04-14 08:56:17 UTC (rev 72152)
@@ -21,14 +21,10 @@
  */
 package org.jboss.ejb3.test.interceptors.supermethod.unit;
 
-import java.net.URL;
-import java.util.LinkedHashMap;
-
 import junit.framework.TestCase;
 
-import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.interceptors.proxy.ProxyContainer;
+import org.jboss.ejb3.test.interceptors.common.AOPDeployer;
 import org.jboss.ejb3.test.interceptors.supermethod.AroundInvokeBean;
 import org.jboss.ejb3.test.interceptors.supermethod.AroundInvokeIF;
 import org.jboss.logging.Logger;
@@ -40,7 +36,7 @@
  * the afterBegintTest defined in AroundInvokeBase must contain SessionSynchronizationInterceptor.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public class SuperMethodTestCase extends TestCase
 {
@@ -48,29 +44,37 @@
 
    public void test1() throws Throwable
    {
+      log.info("======= SuperMethod.test1()");
       //AspectManager.verbose = true;
       
-      // TODO: During inventory surefire boots up BasicTestSuite
-      LinkedHashMap pointcuts = AspectManager.instance().getPointcuts();
-      if(!pointcuts.isEmpty())
+//    // TODO: During inventory surefire boots up BasicTestSuite
+//    LinkedHashMap pointcuts = AspectManager.instance().getPointcuts();
+//    if(!pointcuts.isEmpty())
+//    {
+//       //System.err.println("AspectManager still contains: " + pointcuts);
+//       URL url = Thread.currentThread().getContextClassLoader().getResource("basic/jboss-aop.xml");
+//       AspectXmlLoader.undeployXML(url);
+//    }
+
+      AOPDeployer deployer = new AOPDeployer("supermethod/jboss-aop.xml");
+      try
       {
-         //System.err.println("AspectManager still contains: " + pointcuts);
-         URL url = Thread.currentThread().getContextClassLoader().getResource("basic/jboss-aop.xml");
-         AspectXmlLoader.undeployXML(url);
+         // Bootstrap AOP
+         log.info(deployer.deploy());
+
+         Thread.currentThread().setContextClassLoader(AroundInvokeIF.class.getClassLoader());
+         
+         ProxyContainer<AroundInvokeBean> container = new ProxyContainer<AroundInvokeBean>("SuperMethodTestCase", "InterceptorContainer", AroundInvokeBean.class);
+         
+         Class<?> interfaces[] = { AroundInvokeIF.class };
+         AroundInvokeIF proxy = container.constructProxy(interfaces);
+         
+         proxy.afterBeginTest();
       }
-      
-      // Bootstrap AOP
-      URL url = Thread.currentThread().getContextClassLoader().getResource("supermethod/jboss-aop.xml");
-      log.info("deploying AOP from " + url);
-      AspectXmlLoader.deployXML(url);
-
-      Thread.currentThread().setContextClassLoader(AroundInvokeIF.class.getClassLoader());
-      
-      ProxyContainer<AroundInvokeBean> container = new ProxyContainer<AroundInvokeBean>("SuperMethodTestCase", "InterceptorContainer", AroundInvokeBean.class);
-      
-      Class<?> interfaces[] = { AroundInvokeIF.class };
-      AroundInvokeIF proxy = container.constructProxy(interfaces);
-      
-      proxy.afterBeginTest();
+      finally
+      {
+         log.info(deployer.undeploy());
+      }
+      log.info("======= Done");
    }
 }




More information about the jboss-cvs-commits mailing list