You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by br...@apache.org on 2006/03/04 04:57:56 UTC

svn commit: r383017 - in /maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter: ForkConfiguration.java SurefireBooter.java

Author: brett
Date: Fri Mar  3 19:57:53 2006
New Revision: 383017

URL: http://svn.apache.org/viewcvs?rev=383017&view=rev
Log:
[MSUREFIRE-48] enable assertions always

Modified:
    maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkConfiguration.java
    maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooter.java

Modified: maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkConfiguration.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkConfiguration.java?rev=383017&r1=383016&r2=383017&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkConfiguration.java (original)
+++ maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkConfiguration.java Fri Mar  3 19:57:53 2006
@@ -142,6 +142,7 @@
             }
         }
 
+        // TODO: This shouldn't be required. See SurefireBooter, createClassLoader where assertion status should be set
         cli.createArgument().setValue( "-ea" );
 
         cli.createArgument().setValue( "-classpath" );

Modified: maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooter.java?rev=383017&r1=383016&r2=383017&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooter.java Fri Mar  3 19:57:53 2006
@@ -34,7 +34,6 @@
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -141,9 +140,11 @@
         //noinspection CatchGenericClass,OverlyBroadCatchBlock
         try
         {
-            ClassLoader surefireClassLoader = createClassLoader( surefireClassPathUrls, getClass().getClassLoader() );
+            // TODO: assertions = true shouldn't be required if we had proper separation (see TestNG)
+            ClassLoader surefireClassLoader =
+                createClassLoader( surefireClassPathUrls, getClass().getClassLoader(), true );
 
-            ClassLoader testsClassLoader = createClassLoader( classPathUrls, childDelegation );
+            ClassLoader testsClassLoader = createClassLoader( classPathUrls, childDelegation, true );
 
             Class surefireClass = surefireClassLoader.loadClass( Surefire.class.getName() );
 
@@ -181,9 +182,10 @@
         //noinspection CatchGenericClass,OverlyBroadCatchBlock
         try
         {
-            ClassLoader surefireClassLoader = createClassLoader( surefireClassPathUrls, getClass().getClassLoader() );
+            ClassLoader surefireClassLoader =
+                createClassLoader( surefireClassPathUrls, getClass().getClassLoader(), true );
 
-            ClassLoader testsClassLoader = createClassLoader( classPathUrls, childDelegation );
+            ClassLoader testsClassLoader = createClassLoader( classPathUrls, childDelegation, true );
 
             Class surefireClass = surefireClassLoader.loadClass( Surefire.class.getName() );
 
@@ -226,8 +228,9 @@
         ClassLoader surefireClassLoader;
         try
         {
-            testsClassLoader = createClassLoader( classPathUrls, false );
-            surefireClassLoader = createClassLoader( surefireClassPathUrls, false );
+            testsClassLoader = createClassLoader( classPathUrls, false, true );
+            // TODO: assertions = true shouldn't be required if we had proper separation (see TestNG)
+            surefireClassLoader = createClassLoader( surefireClassPathUrls, false, true );
         }
         catch ( MalformedURLException e )
         {
@@ -450,19 +453,22 @@
         return returnCode == 0;
     }
 
-    private static ClassLoader createClassLoader( List classPathUrls, ClassLoader parent )
+    private static ClassLoader createClassLoader( List classPathUrls, ClassLoader parent, boolean assertionsEnabled )
         throws MalformedURLException
     {
-        return createClassLoader( classPathUrls, parent, false );
+        return createClassLoader( classPathUrls, parent, false, assertionsEnabled );
     }
 
-    private static ClassLoader createClassLoader( List classPathUrls, boolean childDelegation )
+    private static ClassLoader createClassLoader( List classPathUrls, boolean childDelegation,
+                                                  boolean assertionsEnabled )
         throws MalformedURLException
     {
-        return createClassLoader( classPathUrls, ClassLoader.getSystemClassLoader(), childDelegation );
+        return createClassLoader( classPathUrls, ClassLoader.getSystemClassLoader(), childDelegation,
+                                  assertionsEnabled );
     }
 
-    private static ClassLoader createClassLoader( List classPathUrls, ClassLoader parent, boolean childDelegation )
+    private static ClassLoader createClassLoader( List classPathUrls, ClassLoader parent, boolean childDelegation,
+                                                  boolean assertionsEnabled )
         throws MalformedURLException
     {
         List urls = new ArrayList();
@@ -478,25 +484,18 @@
             }
         }
 
-        ClassLoader classLoader;
-        if ( childDelegation )
+        IsolatedClassLoader classLoader = new IsolatedClassLoader( parent, childDelegation );
+        // TODO: for some reason, this doesn't work when forked. -ea is added to the command line as a workaround
+        // in forkConfiguration
+        classLoader.setDefaultAssertionStatus( assertionsEnabled );
+        for ( Iterator iter = urls.iterator(); iter.hasNext(); )
         {
-            IsolatedClassLoader isolatedClassLoader = new IsolatedClassLoader( parent, true );
-            for ( Iterator iter = urls.iterator(); iter.hasNext(); )
-            {
-                URL url = (URL) iter.next();
-                isolatedClassLoader.addURL( url );
-            }
-            classLoader = isolatedClassLoader;
-        }
-        else
-        {
-            URL[] u = new URL[urls.size()];
-            urls.toArray( u );
-            classLoader = new URLClassLoader( u, parent );
+            URL url = (URL) iter.next();
+            classLoader.addURL( url );
         }
         return classLoader;
     }
+
 
     private static List processStringList( String stringList )
     {