PR: SUREFIRE-27
     URL: http://jira.codehaus.org/browse/SUREFIRE-27
 Summary: classloader stuct should be dumped if -X is passed to maven
Reporter: Hiram Chirino



git-svn-id: https://svn.apache.org/repos/asf/maven/surefire/trunk/surefire-booter@365709 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/surefire/SurefireBooter.java b/src/main/java/org/apache/maven/surefire/SurefireBooter.java
index 67fcc50..d5aebd5 100644
--- a/src/main/java/org/apache/maven/surefire/SurefireBooter.java
+++ b/src/main/java/org/apache/maven/surefire/SurefireBooter.java
@@ -369,6 +369,10 @@
             throw new SurefireBooterForkException( "Error while executing forked tests.", e );
         }
 
+        /*
+
+        The standard reporting modules should do this work ... jvz
+        
         String string = stringWriter.toString();
 
         if ( string != null && string.length() > 0 )
@@ -382,6 +386,7 @@
                 System.out.println( string );
             }
         }
+        */
 
         if ( returnCode != 0 )
         {
@@ -492,6 +497,8 @@
 
         p.setProperty( "batteryConfig", batteryConfig );
 
+        p.setProperty( "debug", "" + debug );
+
         fos = new FileOutputStream( new File( basedir, SUREFIRE_PROPERTIES ) );
 
         p.store( fos, "surefire properties" );
@@ -620,8 +627,6 @@
 
         ClassLoader classLoader = createForkingClassLoader( basedir );
 
-        // Dumps the classloader stuff
-        //logClassLoader(classLoader);
 
         Thread.currentThread().setContextClassLoader( classLoader );
 
@@ -629,6 +634,12 @@
 
         Properties p = getSurefireProperties( basedir );
 
+        boolean debug = "true".equals( p.getProperty( "debug", "false" ) );
+        if ( debug )
+        {
+            logClassLoader( classLoader );
+        }
+
         String batteryExecutorName = p.getProperty( "batteryExecutorName" );
 
         Class batteryExecutorClass = classLoader.loadClass( batteryExecutorName );
@@ -740,12 +751,18 @@
     private static void logClassLoader( ClassLoader classLoader )
     {
         if ( classLoader.getParent() != null )
+        {
             logClassLoader( classLoader.getParent() );
+        }
+
         if ( classLoader instanceof URLClassLoader )
         {
             System.out.println( "ClassLoader: type" + classLoader.getClass() + ", value=" + classLoader );
+
             URLClassLoader ucl = (URLClassLoader) classLoader;
+
             URL[] u = ucl.getURLs();
+
             for ( int i = 0; i < u.length; i++ )
             {
                 System.out.println( "           : " + u[i] );
@@ -756,6 +773,5 @@
             System.out.println( "ClassLoader: type" + classLoader.getClass() + ", value=" + classLoader );
         }
     }
-
 }