[MNG-3507] added color to Maven execution output messages This reverts commits 7e1b961edd44c7d2843b1b7cd01cea5a1cd1a70d 71e4ff8e358dd43fb52f2e760b82ef7ab39f1dbb
Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/7d89f058 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/7d89f058 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/7d89f058 Branch: refs/heads/MNG-6006 Commit: 7d89f0583f504615bd87956897971d4b3edeff92 Parents: 09bfdee Author: Christian Schulte <schu...@apache.org> Authored: Thu Jun 16 21:48:01 2016 +0200 Committer: Christian Schulte <schu...@apache.org> Committed: Thu Jun 16 21:48:46 2016 +0200 ---------------------------------------------------------------------- .../lifecycle/LifecycleExecutionException.java | 16 +-- .../maven/cli/event/ExecutionEventLogger.java | 106 ++++++++----------- .../apache/maven/cli/logging/Slf4jLogger.java | 13 ++- .../cli/logging/impl/gossip/ColorRenderer.java | 27 ++--- 4 files changed, 73 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/7d89f058/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java b/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java index 35c7032..fd4bca0 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java @@ -80,27 +80,27 @@ public class LifecycleExecutionException { Ansi buffer = ansi( /*256*/ ); - buffer.fgRed().a( "Failed to execute goal" ); + buffer.a( "Failed to execute goal" ).reset(); if ( execution != null ) { - buffer.a( ' ' ).a( execution.getGroupId() ).a( ':' ).a( execution.getArtifactId() ). - a( ':' ).a( execution.getVersion() ).a( ':' ).a( execution.getGoal() ). - a( " (" ).a( execution.getExecutionId() ).a( ')' ); - + buffer.a( ' ' ).a( execution.getGroupId() ).a( ':' ).fgGreen().a( execution.getArtifactId() ); + buffer.a( ':' ).a( execution.getVersion() ).a( ':' ).a( execution.getGoal() ).reset(); + buffer.bold().a( " (" ).a( execution.getExecutionId() ).a( ')' ).reset(); } if ( project != null ) { - buffer.a( " on project " ).a( project.getArtifactId() ); + buffer.a( " on project " ); + buffer.fgCyan().a( project.getArtifactId() ).reset(); } if ( cause != null ) { - buffer.a( ": " ).a( cause.getMessage() ); + buffer.a( ": " ).bold().fgRed().a( cause.getMessage() ).reset(); } - return buffer.reset().toString(); + return buffer.toString(); } } http://git-wip-us.apache.org/repos/asf/maven/blob/7d89f058/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java index 7180a43..ee57121 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java @@ -51,7 +51,7 @@ public class ExecutionEventLogger private static final int LINE_LENGTH = 72; private static final int MAX_PADDED_BUILD_TIME_DURATION_LENGTH = 9; - private static final int MAX_PROJECT_NAME_LENGTH = LINE_LENGTH - MAX_PADDED_BUILD_TIME_DURATION_LENGTH - 12; + private static final int MAX_PROJECT_NAME_LENGTH = 52; public ExecutionEventLogger() { @@ -83,7 +83,7 @@ public class ExecutionEventLogger private void infoMain( String msg ) { - logger.info( ansi().fgBlue().a( msg ).reset().toString() ); + logger.info( ansi().bold().a( msg ).reset().toString() ); } @Override @@ -91,7 +91,7 @@ public class ExecutionEventLogger { if ( logger.isInfoEnabled() ) { - logger.info( ansi().fgBlue().a( "Scanning for projects..." ).reset().toString() ); + logger.info( "Scanning for projects..." ); } } @@ -108,7 +108,7 @@ public class ExecutionEventLogger for ( MavenProject project : event.getSession().getProjects() ) { - logger.info( ansi().fgBlue().a( project.getName() ).reset().toString() ); + logger.info( project.getName() ); } } } @@ -143,74 +143,61 @@ public class ExecutionEventLogger for ( MavenProject project : session.getProjects() ) { - BuildSummary buildSummary = result.getBuildSummary( project ); - Ansi ansi = ansi(); + StringBuilder buffer = new StringBuilder( 128 ); - if ( buildSummary == null ) - { - ansi.fgYellow(); - } - else if ( buildSummary instanceof BuildSuccess ) - { - ansi.fgGreen(); - } - else if ( buildSummary instanceof BuildFailure ) - { - ansi.fgRed(); - } + buffer.append( project.getName() ); + buffer.append( ' ' ); - ansi.a( project.getName() ); - ansi.a( ' ' ); - - int dots = MAX_PROJECT_NAME_LENGTH - project.getName().length(); - - for ( int i = 0; i < dots; i++ ) + if ( buffer.length() <= MAX_PROJECT_NAME_LENGTH ) { - ansi.a( '.' ); + while ( buffer.length() < MAX_PROJECT_NAME_LENGTH ) + { + buffer.append( '.' ); + } + buffer.append( ' ' ); } - ansi.a( ' ' ); + BuildSummary buildSummary = result.getBuildSummary( project ); if ( buildSummary == null ) { - ansi.a( "SKIPPED" ); + buffer.append( ansi().bold().fgYellow().a( "SKIPPED" ).reset() ); } else if ( buildSummary instanceof BuildSuccess ) { - ansi.a( "SUCCESS" ); - ansi.a( " [" ); + buffer.append( ansi().bold().fgGreen().a( "SUCCESS" ).reset() ); + buffer.append( " [" ); String buildTimeDuration = formatDuration( buildSummary.getTime() ); int padSize = MAX_PADDED_BUILD_TIME_DURATION_LENGTH - buildTimeDuration.length(); if ( padSize > 0 ) { - ansi.a( chars( ' ', padSize ) ); + buffer.append( chars( ' ', padSize ) ); } - ansi.a( buildTimeDuration ); - ansi.a( ']' ); + buffer.append( buildTimeDuration ); + buffer.append( ']' ); } else if ( buildSummary instanceof BuildFailure ) { - ansi.a( "FAILURE" ); - ansi.a( " [" ); + buffer.append( ansi().bold().fgRed().a( "FAILURE" ).reset() ); + buffer.append( " [" ); String buildTimeDuration = formatDuration( buildSummary.getTime() ); int padSize = MAX_PADDED_BUILD_TIME_DURATION_LENGTH - buildTimeDuration.length(); if ( padSize > 0 ) { - ansi.a( chars( ' ', padSize ) ); + buffer.append( chars( ' ', padSize ) ); } - ansi.a( buildTimeDuration ); - ansi.a( ']' ); + buffer.append( buildTimeDuration ); + buffer.append( ']' ); } - ansi.reset(); - logger.info( ansi.toString() ); + logger.info( buffer.toString() ); } } private void logResult( MavenSession session ) { infoLine( '-' ); - Ansi ansi = ansi(); + Ansi ansi = ansi().bold(); if ( session.getResult().hasExceptions() ) { @@ -233,9 +220,9 @@ public class ExecutionEventLogger String wallClock = session.getRequest().getDegreeOfConcurrency() > 1 ? " (Wall Clock)" : ""; - logger.info( ansi().fgBlue().a( "Total time: " + formatDuration( time ) + wallClock ).reset().toString() ); + logger.info( "Total time: " + formatDuration( time ) + wallClock ); - logger.info( ansi().fgBlue().a( "Finished at: " + formatTimestamp( finish ) ).reset().toString() ); + logger.info( "Finished at: " + formatTimestamp( finish ) ); System.gc(); @@ -243,8 +230,7 @@ public class ExecutionEventLogger long mb = 1024 * 1024; - logger.info( ansi().fgBlue().a( "Final Memory: " + ( r.totalMemory() - r.freeMemory() ) / mb + "M/" - + r.totalMemory() / mb + "M" ).reset().toString() ); + logger.info( "Final Memory: " + ( r.totalMemory() - r.freeMemory() ) / mb + "M/" + r.totalMemory() / mb + "M" ); } @Override @@ -256,8 +242,7 @@ public class ExecutionEventLogger infoLine( '-' ); infoMain( "Skipping " + event.getProject().getName() ); - logger.info( ansi().fgBlue().a( "This project has been banned from the build due to previous failures." ). - reset().toString() ); + logger.info( "This project has been banned from the build due to previous failures." ); infoLine( '-' ); } @@ -282,11 +267,8 @@ public class ExecutionEventLogger { if ( logger.isWarnEnabled() ) { - logger.warn( ansi().fgYellow(). - a( "Goal " + event.getMojoExecution().getGoal() - + " requires online mode for execution but Maven is currently offline, skipping" ). - reset().toString() ); - + logger.warn( "Goal " + event.getMojoExecution().getGoal() + + " requires online mode for execution but Maven is currently offline, skipping" ); } } @@ -300,10 +282,10 @@ public class ExecutionEventLogger { logger.info( "" ); - Ansi ansi = ansi().fgBlue().a( "--- " ).reset(); + Ansi ansi = ansi().bold().a( "--- " ).reset(); append( ansi, event.getMojoExecution() ); append( ansi, event.getProject() ); - ansi.fgBlue().a( " ---" ).reset(); + ansi.bold().a( " ---" ).reset(); logger.info( ansi.toString() ); } @@ -320,12 +302,12 @@ public class ExecutionEventLogger { logger.info( "" ); - Ansi ansi = ansi().fgBlue().a( ">>> " ).reset(); + Ansi ansi = ansi().bold().a( ">>> " ).reset(); append( ansi, event.getMojoExecution() ); - ansi.fgBlue().a( " > " ).reset(); + ansi.bold().a( " > " ).reset(); appendForkInfo( ansi, event.getMojoExecution().getMojoDescriptor() ); append( ansi, event.getProject() ); - ansi.fgBlue().a( " >>>" ).reset(); + ansi.bold().a( " >>>" ).reset(); logger.info( ansi.toString() ); } @@ -344,12 +326,12 @@ public class ExecutionEventLogger { logger.info( "" ); - Ansi ansi = ansi().fgBlue().a( "<<< " ).reset(); + Ansi ansi = ansi().bold().a( "<<< " ).reset(); append( ansi, event.getMojoExecution() ); - ansi.fgBlue().a( " < " ).reset(); + ansi.bold().a( " < " ).reset(); appendForkInfo( ansi, event.getMojoExecution().getMojoDescriptor() ); append( ansi, event.getProject() ); - ansi.fgBlue().a( " <<<" ).reset(); + ansi.bold().a( " <<<" ).reset(); logger.info( ansi.toString() ); } @@ -357,17 +339,17 @@ public class ExecutionEventLogger private void append( Ansi ansi, MojoExecution me ) { - ansi.fgBlue().a( me.getArtifactId() ).a( ':' ).a( me.getVersion() ); + ansi.fgGreen().a( me.getArtifactId() ).a( ':' ).a( me.getVersion() ); ansi.a( ':' ).a( me.getGoal() ).reset(); if ( me.getExecutionId() != null ) { - ansi.fgBlue().a( " (" ).a( me.getExecutionId() ).a( ')' ).reset(); + ansi.bold().a( " (" ).a( me.getExecutionId() ).a( ')' ).reset(); } } private void appendForkInfo( Ansi ansi, MojoDescriptor md ) { - ansi.fgBlue(); + ansi.bold(); if ( StringUtils.isNotEmpty( md.getExecutePhase() ) ) { // forked phase http://git-wip-us.apache.org/repos/asf/maven/blob/7d89f058/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLogger.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLogger.java index 485395e..3957464 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLogger.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLogger.java @@ -20,7 +20,6 @@ package org.apache.maven.cli.logging; */ import org.codehaus.plexus.logging.Logger; -import static org.fusesource.jansi.Ansi.ansi; /** * Adapt an SLF4J logger to a Plexus logger, ignoring Plexus logger API parts that are not classical and @@ -72,12 +71,12 @@ public class Slf4jLogger public void warn( String message ) { - logger.warn( ansi().fgYellow().a( message ).reset().toString() ); + logger.warn( message ); } public void warn( String message, Throwable throwable ) { - logger.warn( ansi().fgYellow().a( message ).reset().toString(), throwable ); + logger.warn( message, throwable ); } public boolean isWarnEnabled() @@ -87,12 +86,12 @@ public class Slf4jLogger public void error( String message ) { - logger.error( ansi().fgRed().a( message ).reset().toString() ); + logger.error( message ); } public void error( String message, Throwable throwable ) { - logger.error( ansi().fgRed().a( message ).reset().toString(), throwable ); + logger.error( message, throwable ); } public boolean isErrorEnabled() @@ -102,12 +101,12 @@ public class Slf4jLogger public void fatalError( String message ) { - logger.error( ansi().fgRed().a( message ).reset().toString() ); + logger.error( message ); } public void fatalError( String message, Throwable throwable ) { - logger.error( ansi().fgRed().a( message ).reset().toString(), throwable ); + logger.error( message, throwable ); } public boolean isFatalErrorEnabled() http://git-wip-us.apache.org/repos/asf/maven/blob/7d89f058/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorRenderer.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorRenderer.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorRenderer.java index f18af9e..52e0489 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorRenderer.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/gossip/ColorRenderer.java @@ -46,20 +46,20 @@ extends com.planet57.gossip.render.PatternRenderer { case TRACE: case DEBUG: - buff.append( ansi().fgCyan().a( level.name() ).reset() ); + buff.append( ansi().bold().fgCyan().a( level.name() ).reset() ); break; case INFO: - buff.append( ansi().fgBlue().a( level.name() ).reset() ); + buff.append( ansi().bold().fgBlue().a( level.name() ).reset() ); break; case WARN: // Maven uses WARNING instead of WARN - buff.append( ansi().fgYellow().a( WARNING ).reset() ); + buff.append( ansi().bold().fgYellow().a( WARNING ).reset() ); break; case ERROR: - buff.append( ansi().fgRed().a( level.name() ).reset() ); + buff.append( ansi().bold().fgRed().a( level.name() ).reset() ); break; default: @@ -72,7 +72,7 @@ extends com.planet57.gossip.render.PatternRenderer { StringBuilder tmp = new StringBuilder(); super.renderName( event, tmp, shortName ); - buff.append( ansi().fgBlue().a( tmp ).reset() ); + buff.append( ansi().fgGreen().a( tmp ).reset() ); } @@ -88,11 +88,11 @@ extends com.planet57.gossip.render.PatternRenderer return; } - buff.append( ansi().fgRed().a( cause.getClass().getName() ).reset() ); + buff.append( ansi().bold().fgRed().a( cause.getClass().getName() ).reset() ); if ( cause.getMessage() != null ) { - buff.append( ansi().fgRed().a( ": " ).reset() ); - buff.append( ansi().fgRed().a( cause.getMessage() ).reset() ); + buff.append( ": " ); + buff.append( ansi().bold().fgRed().a( cause.getMessage() ).reset() ); } renderNewLine( buff ); @@ -101,18 +101,21 @@ extends com.planet57.gossip.render.PatternRenderer for ( StackTraceElement e : cause.getStackTrace() ) { buff.append( " " ); - buff.append( ansi().a( "at " ).a( e.getClassName() ).a( "." ).a( e.getMethodName() ) ); - buff.append( ansi().a( " (" ).a( getLocation( e ) ).a( ")" ).reset() ); + buff.append( ansi().bold().a( "at" ).reset().a( " " ) + .a( e.getClassName() ).a( "." ).a( e.getMethodName() ) ); + buff.append( ansi().a( " (" ).bold().a( getLocation( e ) ).reset().a( ")" ) ); renderNewLine( buff ); } cause = cause.getCause(); if ( cause != null ) { - buff.append( ansi().fgRed().a( "Caused by: " ).a( cause.getClass().getName() ) ); + buff.append( ansi().bold().a( "Caused by" ).reset().a( ": " ) + .a( cause.getClass().getName() ) ); if ( cause.getMessage() != null ) { - buff.append( ansi().fgRed().a( ": " ).a( cause.getMessage() ).reset() ); + buff.append( ": " ); + buff.append( ansi().bold().fgRed().a( cause.getMessage() ).reset() ); } renderNewLine( buff ); }