Author: brett
Date: Fri Oct  7 17:21:13 2005
New Revision: 307224

URL: http://svn.apache.org/viewcvs?rev=307224&view=rev
Log:
PR: MNG-1098
show reactor summary on all failures

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=307224&r1=307223&r2=307224&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 Fri Oct  7 17:21:13 2005
@@ -152,19 +152,18 @@
 
         dispatcher.dispatchStart( event, request.getBaseDirectory() );
 
-        ReactorManager rm;
-
         ProfileManager globalProfileManager = 
request.getGlobalProfileManager();
 
         boolean foundProjects = true;
+        List projects;
         try
         {
             loadSettingsProfiles( globalProfileManager, request.getSettings() 
);
 
             List files = getProjectFiles( request );
 
-            List projects = collectProjects( files, 
request.getLocalRepository(), request.isRecursive(),
-                                             request.getSettings(), 
globalProfileManager, !request.isReactorActive() );
+            projects = collectProjects( files, request.getLocalRepository(), 
request.isRecursive(),
+                                        request.getSettings(), 
globalProfileManager, !request.isReactorActive() );
 
             // the reasoning here is that the list is still unsorted according 
to dependency, so the first project
             // SHOULD BE the top-level, or the one we want to start with if 
we're doing an aggregated build.
@@ -176,15 +175,6 @@
 
                 foundProjects = false;
             }
-
-            rm = new ReactorManager( projects );
-
-            String requestFailureBehavior = request.getFailureBehavior();
-
-            if ( requestFailureBehavior != null )
-            {
-                rm.setFailureBehavior( requestFailureBehavior );
-            }
         }
         catch ( IOException e )
         {
@@ -198,11 +188,24 @@
         {
             return dispatchErrorResponse( dispatcher, event, 
request.getBaseDirectory(), e );
         }
-        catch ( CycleDetectedException e )
+        catch ( ProfileActivationException e )
         {
             return dispatchErrorResponse( dispatcher, event, 
request.getBaseDirectory(), e );
         }
-        catch ( ProfileActivationException e )
+
+        ReactorManager rm = null;
+        try
+        {
+            rm = new ReactorManager( projects );
+
+            String requestFailureBehavior = request.getFailureBehavior();
+
+            if ( requestFailureBehavior != null )
+            {
+                rm.setFailureBehavior( requestFailureBehavior );
+            }
+        }
+        catch ( CycleDetectedException e )
         {
             return dispatchErrorResponse( dispatcher, event, 
request.getBaseDirectory(), e );
         }
@@ -228,18 +231,13 @@
                     if ( ReactorManager.FAIL_AT_END.equals( 
rm.getFailureBehavior() ) &&
                         exception instanceof ReactorException )
                     {
-                        logFailure( response, exception, null );
-
-                        if ( rm.hasMultipleProjects() && 
response.executedMultipleProjects() )
-                        {
-                            writeReactorSummary( rm );
-                        }
+                        logFailure( response, rm, exception, null );
                     }
                     else if ( exception instanceof MojoFailureException )
                     {
                         MojoFailureException e = (MojoFailureException) 
exception;
 
-                        logFailure( response, e, e.getLongMessage() );
+                        logFailure( response, rm, e, e.getLongMessage() );
                     }
                     else if ( exception instanceof MojoExecutionException )
                     {
@@ -248,7 +246,7 @@
                         {
                             MojoExecutionException e = 
(MojoExecutionException) exception;
 
-                            logFailure( response, e, e.getLongMessage() );
+                            logFailure( response, rm, e, e.getLongMessage() );
                         }
                         else
                         {
@@ -258,7 +256,7 @@
                     }
                     else if ( exception instanceof ArtifactNotFoundException )
                     {
-                        logFailure( response, exception, null );
+                        logFailure( response, rm, exception, null );
                     }
                     else
                     {
@@ -321,10 +319,14 @@
             {
                 logReactorSummaryLine( project.getName(), "SKIPPED (dependency 
build failed or was skipped)" );
             }
-            else
+            else if ( rm.hasBuildSuccess( project ) )
             {
                 logReactorSummaryLine( project.getName(), "SUCCESS" );
             }
+            else
+            {
+                logReactorSummaryLine( project.getName(), "NOT BUILT" );
+            }
         }
 
         getLogger().info( "" );
@@ -360,7 +362,7 @@
         response.setStart( new Date() );
         response.setFinish( new Date() );
         response.setException( e );
-        logFailure( response, e, null );
+        logError( response );
 
         return response;
     }
@@ -628,8 +630,12 @@
 
     }
 
-    protected void logFailure( MavenExecutionResponse r, Throwable error, 
String longMessage )
+    protected void logFailure( MavenExecutionResponse r, ReactorManager rm, 
Throwable error, String longMessage )
     {
+        if ( rm.hasMultipleProjects() && r.executedMultipleProjects() )
+        {
+            writeReactorSummary( rm );
+        }
         line();
 
         getLogger().info( "BUILD FAILURE" );

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java?rev=307224&r1=307223&r2=307224&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java
 Fri Oct  7 17:21:13 2005
@@ -45,31 +45,33 @@
     private String failureBehavior = FAIL_FAST;
 
     private final ProjectSorter sorter;
-    
+
+    private Map buildSuccessesByProject = new HashMap();
+
     public ReactorManager( List projects )
         throws CycleDetectedException
     {
         this.sorter = new ProjectSorter( projects );
     }
-    
+
     public Map getPluginContext( PluginDescriptor plugin, MavenProject project 
)
     {
         Map pluginContextsByKey = (Map) 
pluginContextsByProjectAndPluginKey.get( project.getId() );
-        
+
         if ( pluginContextsByKey == null )
         {
             pluginContextsByKey = new HashMap();
             pluginContextsByProjectAndPluginKey.put( project.getId(), 
pluginContextsByKey );
         }
-        
+
         Map pluginContext = (Map) pluginContextsByKey.get( 
plugin.getPluginLookupKey() );
-        
+
         if ( pluginContext == null )
         {
             pluginContext = new HashMap();
             pluginContextsByKey.put( plugin.getPluginLookupKey(), 
pluginContext );
         }
-        
+
         return pluginContext;
     }
 
@@ -150,6 +152,16 @@
     public MavenProject getTopLevelProject()
     {
         return sorter.getTopLevelProject();
+    }
+
+    public boolean hasBuildSuccess( MavenProject project )
+    {
+        return buildSuccessesByProject.containsKey( project.getId() );
+    }
+
+    public void registerBuildSuccess( MavenProject project )
+    {
+        buildSuccessesByProject.put( project.getId(), project );
     }
 
     private static class BuildFailure

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=307224&r1=307223&r2=307224&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
 Fri Oct  7 17:21:13 2005
@@ -255,6 +255,8 @@
                             }
                         }
 
+                        rm.registerBuildSuccess( rootProject );
+
                         dispatcher.dispatchEnd( event, rootProject.getId() + " 
( " + segment + " )" );
                     }
                     catch ( LifecycleExecutionException e )
@@ -334,6 +336,8 @@
                                     handleExecutionFailure( rm, 
currentProject, e, task );
                                 }
                             }
+
+                            rm.registerBuildSuccess( currentProject );
 
                             dispatcher.dispatchEnd( event, 
currentProject.getId() + " ( " + segment + " )" );
                         }


Reply via email to