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