Author: vsiveton Date: Sat Sep 27 16:25:32 2008 New Revision: 699757 URL: http://svn.apache.org/viewvc?rev=699757&view=rev Log: SCM-246: p4 command reports most or all errors on stderr but maven-scm-provider-perforce throws away stderr Submitted by: Peter Janes
o applied Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginCommand.java Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java?rev=699757&r1=699756&r2=699757&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java Sat Sep 27 16:25:32 2008 @@ -34,6 +34,7 @@ import java.io.File; import java.io.IOException; +import java.io.StringBufferInputStream; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -62,19 +63,20 @@ getLogger().debug( PerforceScmProvider.clean( "Executing " + cl.toString() ) ); } - CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer(); - int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err ); + PerforceScmProviderRepository prepo = (PerforceScmProviderRepository) repo; + String changes = + createChangeListSpecification( prepo, files, message, + PerforceScmProvider.getRepoPath( getLogger(), prepo, + files.getBasedir() ), jobs ); if ( getLogger().isDebugEnabled() ) { - PerforceScmProviderRepository prepo = (PerforceScmProviderRepository) repo; - String changes = - createChangeListSpecification( prepo, files, message, - PerforceScmProvider.getRepoPath( getLogger(), prepo, - files.getBasedir() ), jobs ); getLogger().debug( "Sending changelist:\n" + changes ); } + CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer(); + int exitCode = CommandLineUtils.executeCommandLine( cl, new StringBufferInputStream(changes), consumer, err ); + if ( exitCode != 0 ) { String cmdLine = CommandLineUtils.toString( cl.getCommandline() ); Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java?rev=699757&r1=699756&r2=699757&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java Sat Sep 27 16:25:32 2008 @@ -37,6 +37,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; +import java.io.StringBufferInputStream; /** * @author Mike Perham @@ -90,14 +91,15 @@ getLogger().info( "Executing: " + PerforceScmProvider.clean( cl.toString() ) ); } + String client = PerforceScmProvider.createClientspec( getLogger(), prepo, workingDirectory, actualLocation ); + if ( getLogger().isDebugEnabled() ) { - String client = PerforceScmProvider.createClientspec( getLogger(), prepo, workingDirectory, actualLocation ); getLogger().debug( "Updating clientspec:\n" + client ); } CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer(); - int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err ); + int exitCode = CommandLineUtils.executeCommandLine( cl, new StringBufferInputStream(client), consumer, err ); if ( exitCode != 0 ) { Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginCommand.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginCommand.java?rev=699757&r1=699756&r2=699757&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginCommand.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginCommand.java Sat Sep 27 16:25:32 2008 @@ -35,6 +35,8 @@ import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; +import java.io.StringBufferInputStream; + /** * @author Mike Perham * @version $Id$ @@ -52,13 +54,14 @@ try { - if ( StringUtils.isEmpty( repo.getPassword() ) ) + String password = repo.getPassword(); + if ( StringUtils.isEmpty( password ) ) { throw new ScmException( "password is required for the perforce scm plugin." ); } CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer(); - int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err ); + int exitCode = CommandLineUtils.executeCommandLine( cl, new StringBufferInputStream(password), consumer, err ); if ( exitCode != 0 ) { @@ -91,4 +94,4 @@ } return command; } -} \ No newline at end of file +}