You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Olivier Lamy <ol...@apache.org> on 2012/11/11 08:59:10 UTC

Re: svn commit: r1407913 - in /maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli: ./ transfer/

-1 until we finish discuss about that on dev@ (see my comments on dev@
http://markmail.org/message/cf2pbzl6y44rufas )
Again point to a place where you propose a change or at least wait a
bit POV from others before changing something.

Perso I don't see why we must continue using System.out for transfer
listener as we are now using a modern logging api as slf4j !

2012/11/11  <jv...@apache.org>:
> Author: jvanzyl
> Date: Sun Nov 11 04:40:00 2012
> New Revision: 1407913
>
> URL: http://svn.apache.org/viewvc?rev=1407913&view=rev
> Log:
> MNG-5374: Fix transfer listener after the JSR330 merge
>
> For the following cases I have done the following:
>
> 1) Logging to the console: I simply restored the class that was there such that when logging to the console it uses System.out as it did and the d
> ownload progress appears as it did.
>
> 2) Logging in batch mode: the batch mode transfer listener uses an SLF4J logger and the batch mode transfer listener doesn't report download progr
> ess so there is no issue. Download progress would just create a bunch of noise. The size and the speed at which it is downloaded are logged.
>
> 3) Logging to a file: same as 2) except it's all diverted to the specified file.
>
> 4) I created two protected methods in MavenCli so that integrators can supply their own console and batch transfer listeners if they wish.
>
> Added:
>     maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java
>       - copied, changed from r1407894, maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
> Modified:
>     maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
>     maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
>     maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/BatchModeMavenTransferListener.java
>     maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
>
> Modified: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
> URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=1407913&r1=1407912&r2=1407913&view=diff
> ==============================================================================
> --- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java (original)
> +++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java Sun Nov 11 04:40:00 2012
> @@ -21,6 +21,7 @@ package org.apache.maven.cli;
>
>  import java.io.File;
>  import java.io.FileNotFoundException;
> +import java.io.FileOutputStream;
>  import java.io.PrintStream;
>  import java.util.ArrayList;
>  import java.util.Arrays;
> @@ -43,6 +44,7 @@ import org.apache.maven.cli.logging.Slf4
>  import org.apache.maven.cli.transfer.BatchModeMavenTransferListener;
>  import org.apache.maven.cli.transfer.ConsoleMavenTransferListener;
>  import org.apache.maven.cli.transfer.QuietMavenTransferListener;
> +import org.apache.maven.cli.transfer.Slf4jMavenTransferListener;
>  import org.apache.maven.eventspy.internal.EventSpyDispatcher;
>  import org.apache.maven.exception.DefaultExceptionHandler;
>  import org.apache.maven.exception.ExceptionHandler;
> @@ -320,6 +322,15 @@ public class MavenCli
>              File logFile = new File( cliRequest.commandLine.getOptionValue( CLIManager.LOG_FILE ) );
>              logFile = resolveFile( logFile, cliRequest.workingDirectory );
>              System.setProperty("org.slf4j.simpleLogger.logFile", logFile.getAbsolutePath());
> +            try {
> +              PrintStream ps = new PrintStream(new FileOutputStream(logFile));
> +              System.setOut(ps);
> +              System.setErr(ps);
> +            } catch (FileNotFoundException e) {
> +              //
> +              // Ignore
> +              //
> +            }
>          }
>
>          plexusLoggerManager = new Slf4jLoggerManager();
> @@ -872,14 +883,18 @@ public class MavenCli
>          if ( quiet )
>          {
>              transferListener = new QuietMavenTransferListener();
> -        }
> -        else if ( request.isInteractiveMode() )
> +        }
> +        else if ( request.isInteractiveMode() && !cliRequest.commandLine.hasOption( CLIManager.LOG_FILE ))
>          {
> -            transferListener = new ConsoleMavenTransferListener( slf4jLogger );
> +            //
> +            // 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();
>          }
>          else
>          {
> -            transferListener = new BatchModeMavenTransferListener( slf4jLogger );
> +            transferListener = getBatchTransferListener();
>          }
>
>          ExecutionListener executionListener = new ExecutionEventLogger( slf4jLogger );
> @@ -1136,26 +1151,21 @@ public class MavenCli
>          }
>
>      }
> -
> -    private PrintStreamLogger setupLogger( int loggingLevel )
> -    {
> -        PrintStreamLogger logger = new PrintStreamLogger( new PrintStreamLogger.Provider()
> -        {
> -            public PrintStream getStream()
> -            {
> -                return System.out;
> -            }
> -        } );
> -
> -        logger.setThreshold( loggingLevel );
> -
> -        return logger;
> -    }
>
>      //
>      // Customizations available via the CLI
>      //
>
> +    protected TransferListener getConsoleTransferListener()
> +    {
> +        return new ConsoleMavenTransferListener( System.out );
> +    }
> +
> +    protected TransferListener getBatchTransferListener()
> +    {
> +        return new Slf4jMavenTransferListener( slf4jLogger );
> +    }
> +
>      protected void customizeContainer( PlexusContainer container )
>      {
>      }
>
> Modified: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
> URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java?rev=1407913&r1=1407912&r2=1407913&view=diff
> ==============================================================================
> --- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java (original)
> +++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java Sun Nov 11 04:40:00 2012
> @@ -19,11 +19,11 @@ package org.apache.maven.cli.transfer;
>   * under the License.
>   */
>
> +import java.io.PrintStream;
>  import java.text.DecimalFormat;
>  import java.text.DecimalFormatSymbols;
>  import java.util.Locale;
>
> -import org.slf4j.Logger;
>  import org.sonatype.aether.transfer.AbstractTransferListener;
>  import org.sonatype.aether.transfer.TransferCancelledException;
>  import org.sonatype.aether.transfer.TransferEvent;
> @@ -33,13 +33,11 @@ public abstract class AbstractMavenTrans
>      extends AbstractTransferListener
>  {
>
> -    protected Logger out;
> -    //protected PrintStream out;
> +    protected PrintStream out;
>
> -    protected AbstractMavenTransferListener( Logger out )
> +    protected AbstractMavenTransferListener( PrintStream out )
>      {
>          this.out = out;
> -        //this.out = ( out != null ) ? out : System.out;
>      }
>
>      @Override
> @@ -47,7 +45,7 @@ public abstract class AbstractMavenTrans
>      {
>          String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading";
>
> -        out.info( message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() );
> +        out.println( message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() );
>      }
>
>      @Override
> @@ -56,7 +54,7 @@ public abstract class AbstractMavenTrans
>      {
>          TransferResource resource = event.getResource();
>
> -        out.warn( "[WARNING] " + event.getException().getMessage() + " for " + resource.getRepositoryUrl()
> +        out.println( "[WARNING] " + event.getException().getMessage() + " for " + resource.getRepositoryUrl()
>              + resource.getResourceName() );
>      }
>
> @@ -79,7 +77,7 @@ public abstract class AbstractMavenTrans
>                  throughput = " at " + format.format( kbPerSec ) + " KB/sec";
>              }
>
> -            out.info( type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + len
> +            out.println( type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + len
>                  + throughput + ")" );
>          }
>      }
>
> Modified: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/BatchModeMavenTransferListener.java
> URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/BatchModeMavenTransferListener.java?rev=1407913&r1=1407912&r2=1407913&view=diff
> ==============================================================================
> --- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/BatchModeMavenTransferListener.java (original)
> +++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/BatchModeMavenTransferListener.java Sun Nov 11 04:40:00 2012
> @@ -1,5 +1,7 @@
>  package org.apache.maven.cli.transfer;
>
> +import java.io.PrintStream;
> +
>  import org.slf4j.Logger;
>
>  /*
> @@ -24,7 +26,7 @@ import org.slf4j.Logger;
>  public class BatchModeMavenTransferListener
>      extends AbstractMavenTransferListener
>  {
> -    public BatchModeMavenTransferListener( Logger out )
> +    public BatchModeMavenTransferListener( PrintStream out )
>      {
>          super( out );
>      }
>
> Modified: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
> URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java?rev=1407913&r1=1407912&r2=1407913&view=diff
> ==============================================================================
> --- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java (original)
> +++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java Sun Nov 11 04:40:00 2012
> @@ -19,10 +19,10 @@ package org.apache.maven.cli.transfer;
>   * under the License.
>   */
>
> +import java.io.PrintStream;
>  import java.util.Map;
>  import java.util.concurrent.ConcurrentHashMap;
>
> -import org.slf4j.Logger;
>  import org.sonatype.aether.transfer.TransferCancelledException;
>  import org.sonatype.aether.transfer.TransferEvent;
>  import org.sonatype.aether.transfer.TransferResource;
> @@ -40,7 +40,7 @@ public class ConsoleMavenTransferListene
>
>      private int lastLength;
>
> -    public ConsoleMavenTransferListener( Logger out )
> +    public ConsoleMavenTransferListener( PrintStream out )
>      {
>          super( out );
>      }
> @@ -70,7 +70,7 @@ public class ConsoleMavenTransferListene
>          pad( buffer, pad );
>          buffer.append( '\r' );
>
> -        out.info( buffer.toString() );
> +        out.print( buffer.toString() );
>      }
>
>      private String getStatus( long complete, long total )
> @@ -127,7 +127,7 @@ public class ConsoleMavenTransferListene
>          StringBuilder buffer = new StringBuilder( 64 );
>          pad( buffer, lastLength );
>          buffer.append( '\r' );
> -        out.info( buffer.toString() );
> +        out.print( buffer.toString() );
>      }
>
>  }
>
> Copied: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java (from r1407894, maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java)
> URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java?p2=maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java&p1=maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java&r1=1407894&r2=1407913&rev=1407913&view=diff
> ==============================================================================
> --- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java (original)
> +++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java Sun Nov 11 04:40:00 2012
> @@ -29,17 +29,15 @@ import org.sonatype.aether.transfer.Tran
>  import org.sonatype.aether.transfer.TransferEvent;
>  import org.sonatype.aether.transfer.TransferResource;
>
> -public abstract class AbstractMavenTransferListener
> +public class Slf4jMavenTransferListener
>      extends AbstractTransferListener
>  {
>
>      protected Logger out;
> -    //protected PrintStream out;
>
> -    protected AbstractMavenTransferListener( Logger out )
> +    public Slf4jMavenTransferListener( Logger out )
>      {
>          this.out = out;
> -        //this.out = ( out != null ) ? out : System.out;
>      }
>
>      @Override
> @@ -56,8 +54,7 @@ public abstract class AbstractMavenTrans
>      {
>          TransferResource resource = event.getResource();
>
> -        out.warn( "[WARNING] " + event.getException().getMessage() + " for " + resource.getRepositoryUrl()
> -            + resource.getResourceName() );
> +        out.warn( event.getException().getMessage() + " for " + resource.getRepositoryUrl() + resource.getResourceName() );
>      }
>
>      @Override
>
>



--
Olivier Lamy
Talend: http://coders.talend.com
http://twitter.com/olamy | http://linkedin.com/in/olamy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org