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 );

Reply via email to