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 )
     {


Reply via email to