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 + " )" ); }