Repository: maven Updated Branches: refs/heads/master ee8a93c44 -> c5891c105
[MNG-5977] Improve output readability of our MavenTransferListener implementations When running in debug mode, Maven displays the filename currently in progress. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/c5891c10 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/c5891c10 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/c5891c10 Branch: refs/heads/master Commit: c5891c10563faa6d76ad6a672abb8c77a3cde94c Parents: ee8a93c Author: Michael Osipov <[email protected]> Authored: Thu Feb 18 23:54:16 2016 +0100 Committer: Michael Osipov <[email protected]> Committed: Thu Feb 18 23:55:02 2016 +0100 ---------------------------------------------------------------------- .../java/org/apache/maven/cli/MavenCli.java | 10 ++--- .../transfer/ConsoleMavenTransferListener.java | 40 ++++++++++++++------ 2 files changed, 33 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/c5891c10/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index cf0a134..04f504e 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -1007,13 +1007,13 @@ public class MavenCli // present supplied by the user. The rule is that we only allow the execution of one ConfigurationProcessor. // If there is more than one then we execute the one supplied by the user, otherwise we execute the // the default SettingsXmlConfigurationProcessor. - // + // int userSuppliedConfigurationProcessorCount = configurationProcessors.size() - 1; if ( userSuppliedConfigurationProcessorCount == 0 ) { // - // Our settings.xml source is historically how we have configured Maven from the CLI so we are going to + // Our settings.xml source is historically how we have configured Maven from the CLI so we are going to // have to honour its existence forever. So let's run it. // configurationProcessors.get( SettingsXmlConfigurationProcessor.HINT ).process( cliRequest ); @@ -1290,7 +1290,7 @@ public class MavenCli // If we're logging to a file then we don't want the console transfer listener as it will spew // download progress all over the place // - transferListener = getConsoleTransferListener(); + transferListener = getConsoleTransferListener( cliRequest.commandLine.hasOption( CLIManager.DEBUG ) ); } else { @@ -1590,9 +1590,9 @@ public class MavenCli // Customizations available via the CLI // - protected TransferListener getConsoleTransferListener() + protected TransferListener getConsoleTransferListener( boolean printResourceNames ) { - return new ConsoleMavenTransferListener( System.out ); + return new ConsoleMavenTransferListener( System.out, printResourceNames ); } protected TransferListener getBatchTransferListener() http://git-wip-us.apache.org/repos/asf/maven/blob/c5891c10/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java index 95da922..f3daeee 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java @@ -26,6 +26,7 @@ import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.apache.commons.lang3.StringUtils; import org.eclipse.aether.transfer.TransferCancelledException; import org.eclipse.aether.transfer.TransferEvent; import org.eclipse.aether.transfer.TransferResource; @@ -39,13 +40,15 @@ public class ConsoleMavenTransferListener extends AbstractMavenTransferListener { - private Map<TransferResource, Long> downloads = new ConcurrentHashMap<>(); + private Map<TransferResource, Long> transfers = new ConcurrentHashMap<>(); + private boolean printResourceNames; private int lastLength; - public ConsoleMavenTransferListener( PrintStream out ) + public ConsoleMavenTransferListener( PrintStream out, boolean printResourceNames ) { super( out ); + this.printResourceNames = printResourceNames; } @Override @@ -70,18 +73,18 @@ public class ConsoleMavenTransferListener throws TransferCancelledException { TransferResource resource = event.getResource(); - downloads.put( resource, event.getTransferredBytes() ); + transfers.put( resource, event.getTransferredBytes() ); StringBuilder buffer = new StringBuilder( 128 ); - buffer.append( "Progress (" ).append( downloads.size() ).append( "): " ); + buffer.append( "Progress (" ).append( transfers.size() ).append( "): " ); - Iterator<Map.Entry<TransferResource, Long>> iter = downloads.entrySet().iterator(); + Iterator<Map.Entry<TransferResource, Long>> iter = transfers.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry<TransferResource, Long> entry = iter.next(); long total = entry.getKey().getContentLength(); Long complete = entry.getValue(); - buffer.append( getStatus( complete, total ) ); + buffer.append( getStatus( entry.getKey().getResourceName(), complete, total ) ); if ( iter.hasNext() ) { buffer.append( " | " ); @@ -96,16 +99,29 @@ public class ConsoleMavenTransferListener out.flush(); } - private String getStatus( long complete, long total ) + private String getStatus( String resourceName, long complete, long total ) { DecimalFormat format = new FileDecimalFormat( Locale.ENGLISH ); - String status = format.format( complete ); + StringBuilder status = new StringBuilder(); + + if ( printResourceNames ) + { + status.append( StringUtils.substringAfterLast( resourceName, "/" ) ); + status.append( " (" ); + } + + status.append( format.format( complete ) ); if ( total > 0 && complete != total ) { - status += "/" + format.format( total ); + status.append( "/" ).append( format.format( total ) ); + } + + if ( printResourceNames ) + { + status.append( ")" ); } - return status; + return status.toString(); } private void pad( StringBuilder buffer, int spaces ) @@ -122,7 +138,7 @@ public class ConsoleMavenTransferListener @Override public synchronized void transferSucceeded( TransferEvent event ) { - downloads.remove( event.getResource() ); + transfers.remove( event.getResource() ); overridePreviousTransfer( event ); super.transferSucceeded( event ); @@ -131,7 +147,7 @@ public class ConsoleMavenTransferListener @Override public synchronized void transferFailed( TransferEvent event ) { - downloads.remove( event.getResource() ); + transfers.remove( event.getResource() ); overridePreviousTransfer( event ); super.transferFailed( event );
