[jbossws-commits] JBossWS SVN: r7501 - in framework/trunk: testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools and 1 other directory.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Wed Jun 11 17:08:50 EDT 2008


Author: heiko.braun at jboss.com
Date: 2008-06-11 17:08:50 -0400 (Wed, 11 Jun 2008)
New Revision: 7501

Modified:
   framework/trunk/framework.iml
   framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/PluginBase.java
   framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSConsumerTestCase.java
   framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderPlugin.java
   framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderTestCase.java
Log:
Update wsprovider tests to use correct classloader hierarchy

Modified: framework/trunk/framework.iml
===================================================================
--- framework/trunk/framework.iml	2008-06-11 21:04:01 UTC (rev 7500)
+++ framework/trunk/framework.iml	2008-06-11 21:08:50 UTC (rev 7501)
@@ -8,6 +8,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/resources" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/testsuite/test/java" isTestSource="false" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />

Modified: framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/PluginBase.java
===================================================================
--- framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/PluginBase.java	2008-06-11 21:04:01 UTC (rev 7500)
+++ framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/PluginBase.java	2008-06-11 21:08:50 UTC (rev 7501)
@@ -35,10 +35,11 @@
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
-public class PluginBase extends JBossWSTest
+public abstract class PluginBase extends JBossWSTest
 {
    protected Object delegate = null;
    protected ClassLoader origClassLoader;
+   protected String oldCPProp;
 
    protected void dispatch(String methodName) throws Exception
    {
@@ -53,7 +54,7 @@
       }
    }
 
-   protected void maskClasspath() throws Exception
+   protected void setupClasspath() throws Exception
    {
       String classpath = System.getProperty("surefire.test.class.path");
       List<URL> jarURLs = new LinkedList<URL>();
@@ -68,6 +69,8 @@
             String s = st.nextToken();
             if(s.endsWith(".jar"))  // JBWS-2175: skip target/classes and target/test-classes
             {
+               if( filtered(s) )
+                  continue;
                jarURLs.add( new File(s).toURL() );
                jarURLString.append( s ).append(File.pathSeparator);
             }
@@ -89,15 +92,19 @@
       this.origClassLoader = Thread.currentThread().getContextClassLoader();
 
       Thread.currentThread().setContextClassLoader(jarFirstClassLoader);
+      this.oldCPProp = System.getProperty("java.class.path");
       System.setProperty("java.class.path", jarURLString.toString());
    }
 
-   protected void unmaskClasspath()
+   protected abstract boolean filtered(String jarName);   
+
+   protected void restoreClasspath()
    {
       if(this.origClassLoader !=null)
       {
          Thread.currentThread().setContextClassLoader(this.origClassLoader);
          this.origClassLoader = null;
+         System.setProperty("java.class.path", oldCPProp);
       }
    }
 }

Modified: framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSConsumerTestCase.java
===================================================================
--- framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSConsumerTestCase.java	2008-06-11 21:04:01 UTC (rev 7500)
+++ framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSConsumerTestCase.java	2008-06-11 21:08:50 UTC (rev 7501)
@@ -40,7 +40,7 @@
    {
 
       // JBWS-2175
-      maskClasspath();
+      setupClasspath();
 
       Class wscClass = Thread.currentThread().getContextClassLoader().loadClass("org.jboss.test.ws.jaxws.smoke.tools.WSConsumerPlugin");
       delegate = wscClass.newInstance();
@@ -49,7 +49,7 @@
 
    protected void tearDown() throws Exception
    {
-      unmaskClasspath();
+      restoreClasspath();
    }
 
    /**
@@ -160,4 +160,8 @@
       dispatch("testSOAP12Extension");
    }
    
+   protected boolean filtered(String jarName)
+   {
+      return false;  
+   }
 }

Modified: framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderPlugin.java
===================================================================
--- framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderPlugin.java	2008-06-11 21:04:01 UTC (rev 7500)
+++ framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderPlugin.java	2008-06-11 21:08:50 UTC (rev 7501)
@@ -48,7 +48,6 @@
    // relative to test execution
    File outputDirectory;
 
-
    public WSProviderPlugin()
    {
        // create a new consumer for every test case
@@ -56,16 +55,16 @@
       if(toogleMessageOut) provider.setMessageStream(System.out);
 
       // shared output directory, relative to test execution
-      outputDirectory = createResourceFile("../test-classes");
+      outputDirectory = createResourceFile("../wsprovide/java");      
    }
 
    private ClassLoader getArtefactClassLoader() throws Exception {
-      /*URLClassLoader loader = new URLClassLoader(new URL[] {
-        new URL("file:"+System.getProperty("user.dir")+"/wsprovide/java/") }
+      URLClassLoader loader = new URLClassLoader(
+        new URL[] { outputDirectory.toURL() },
+        Thread.currentThread().getContextClassLoader()
       );
 
-      return loader;*/
-      return Thread.currentThread().getContextClassLoader();
+      return loader;
    }
 
    /**
@@ -180,7 +179,7 @@
             new URL("file:"+targetDir+"/test-libs/jaxws-classloading-types.jar"),
             new URL("file:"+jdkHome+"/lib/tools.jar")
          },
-        Thread.currentThread().getContextClassLoader()
+        getArtefactClassLoader()
       );
 
       provider.setClassLoader(loader);

Modified: framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderTestCase.java
===================================================================
--- framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderTestCase.java	2008-06-11 21:04:01 UTC (rev 7500)
+++ framework/trunk/testsuite/test/java/org/jboss/test/ws/jaxws/smoke/tools/WSProviderTestCase.java	2008-06-11 21:08:50 UTC (rev 7501)
@@ -33,9 +33,8 @@
     */
    protected void setUp() throws Exception
    {
-   
 
-      maskClasspath();
+      setupClasspath();
 
       Class wspClass = Thread.currentThread().getContextClassLoader()
         .loadClass("org.jboss.test.ws.jaxws.smoke.tools.WSProviderPlugin");
@@ -45,7 +44,7 @@
 
    protected void tearDown() throws Exception
    {
-      unmaskClasspath();
+      restoreClasspath();
    }
 
    public void testGenerateWsdl() throws Exception
@@ -82,4 +81,17 @@
    {
       dispatch("testMessageStream");
    }
+
+   /**
+    * Filter sun jaxws implementation because it clashes
+    * with the native one (ServiceLoader...)
+    * @param jarName
+    * @return
+    */
+   protected boolean filtered(String jarName)
+   {
+      return (isIntegrationNative() &&
+        (jarName.indexOf("jaxws-rt")!=-1 || jarName.indexOf("jaxws-tools")!=-1)
+        );
+   }
 }




More information about the jbossws-commits mailing list