-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 <[email protected]>: > 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: [email protected] For additional commands, e-mail: [email protected]
