You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by vs...@apache.org on 2008/09/04 01:15:14 UTC
svn commit: r691823 - in
/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command:
./ add/ changelog/ checkin/ checkout/ diff/ edit/ login/ remove/ status/
tag/ unedit/ update/
Author: vsiveton
Date: Wed Sep 3 16:15:13 2008
New Revision: 691823
URL: http://svn.apache.org/viewvc?rev=691823&view=rev
Log:
SCM-246: p4 command reports most or all errors on stderr but maven-scm-provider-perforce throws away stderr
o using CommandLineUtils.executeCommandLine()
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java
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/diff/PerforceDiffCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceUpdateCommand.java
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommand.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/PerforceInfoCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommand.java Wed Sep 3 16:15:13 2008
@@ -101,6 +101,7 @@
}
}
}
+
return singleton;
}
@@ -135,14 +136,12 @@
{
throw new IllegalStateException( "Unexpected results from 'p4 info' command: " + line );
}
- else
+
+ if ( getLogger().isDebugEnabled() )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Cannot find client." );
- }
- entries.put( "Client root", "" );
+ getLogger().debug( "Cannot find client." );
}
+ entries.put( "Client root", "" );
}
else
{
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddCommand.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/add/PerforceAddCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddCommand.java Wed Sep 3 16:15:13 2008
@@ -29,24 +29,20 @@
import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.List;
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceAddCommand
extends AbstractAddCommand
implements PerforceCommand
{
-
/** {@inheritDoc} */
protected ScmResult executeAddCommand( ScmProviderRepository repo, ScmFileSet files, String message,
boolean binary )
@@ -56,12 +52,18 @@
PerforceAddConsumer consumer = new PerforceAddConsumer();
try
{
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
}
catch ( CommandLineException e )
@@ -71,13 +73,6 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " +e.getMessage(), e );
- }
- }
return new AddScmResult( cl.toString(), consumer.getAdditions() );
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.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/changelog/PerforceChangeLogCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java Wed Sep 3 16:15:13 2008
@@ -31,12 +31,10 @@
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.Date;
/**
@@ -47,7 +45,6 @@
extends AbstractChangeLogCommand
implements PerforceCommand
{
-
/** {@inheritDoc} */
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
Date startDate, Date endDate, ScmBranch branch,
@@ -73,12 +70,19 @@
{
getLogger().debug( PerforceScmProvider.clean( "Executing " + cl.toString() ) );
}
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
+
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
}
catch ( CommandLineException e )
@@ -88,13 +92,6 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
return new ChangeLogScmResult( cl.toString(),
new ChangeLogSet( consumer.getModifications(), startDate, endDate ) );
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=691823&r1=691822&r2=691823&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 Wed Sep 3 16:15:13 2008
@@ -29,21 +29,16 @@
import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
-import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
- * @todo refactor this & other perforce commands -- most of the invocation and stream
- * consumer code could be shared
* @author Mike Perham
* @version $Id$
*/
@@ -66,42 +61,30 @@
{
getLogger().debug( PerforceScmProvider.clean( "Executing " + cl.toString() ) );
}
- Process proc = cl.execute();
- OutputStream out = proc.getOutputStream();
- DataOutputStream dos = new DataOutputStream( out );
- PerforceScmProviderRepository prepo = (PerforceScmProviderRepository) repo;
- String changes = createChangeListSpecification( prepo, files, message, PerforceScmProvider.getRepoPath(
- getLogger(), prepo, files.getBasedir() ), jobs );
+
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
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 );
}
- dos.write( changes.getBytes() );
- dos.close();
- out.close();
-
- // TODO find & use a less naive InputStream multiplexer
- BufferedReader stdout = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- BufferedReader stderr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- String line;
- while ( ( line = stdout.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stdout: " + line );
- }
- consumer.consumeLine( line );
- }
- while ( ( line = stderr.readLine() ) != null )
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- stderr.close();
- stdout.close();
}
catch ( CommandLineException e )
{
@@ -110,13 +93,6 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
return new CheckInScmResult( cl.toString(), consumer.isSuccess() ? "Checkin successful" : "Unable to submit",
consumer.getOutput(), consumer.isSuccess() );
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=691823&r1=691822&r2=691823&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 Wed Sep 3 16:15:13 2008
@@ -30,18 +30,15 @@
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
import java.io.BufferedReader;
-import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.io.OutputStream;
/**
- * @todo refactor this & other perforce commands -- most of the invocation and stream
- * consumer code could be shared
* @author Mike Perham
* @version $Id$
*/
@@ -92,59 +89,25 @@
{
getLogger().info( "Executing: " + PerforceScmProvider.clean( cl.toString() ) );
}
- Process proc = cl.execute();
- // Write clientspec to STDIN
- OutputStream out = proc.getOutputStream();
- DataOutputStream dos = new DataOutputStream( out );
- 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 );
}
- dos.write( client.getBytes() );
- dos.close();
- out.close();
-
- // TODO find & use a less naive InputStream multiplexer
- BufferedReader stdout = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- BufferedReader stderr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- String line;
- while ( ( line = stdout.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stdout: " + line );
- }
- consumer.consumeLine( line );
- }
- while ( ( line = stderr.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
- }
- stderr.close();
- stdout.close();
- // Read errors from STDERR
- BufferedReader brErr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- while ( ( line = brErr.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
- }
- brErr.close();
- }
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
+
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- getLogger().error( "IOException " + e.getMessage(), e );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
}
catch ( CommandLineException e )
@@ -168,41 +131,24 @@
{
getLogger().debug( "Executing: " + PerforceScmProvider.clean( cl.toString() ) );
}
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming: " + line );
- }
- consumer.consumeLine( line );
- }
- br.close();
- // Read errors from STDERR
- BufferedReader brErr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- while ( ( line = brErr.readLine() ) != null )
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- brErr.close();
if ( getLogger().isDebugEnabled() )
{
getLogger().debug( "Perforce sync complete." );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
catch ( CommandLineException e )
{
if ( getLogger().isErrorEnabled() )
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/diff/PerforceDiffCommand.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/diff/PerforceDiffCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/diff/PerforceDiffCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/diff/PerforceDiffCommand.java Wed Sep 3 16:15:13 2008
@@ -30,16 +30,12 @@
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
/**
- * @todo refactor this & other perforce commands -- most of the invocation and stream
- * consumer code could be shared
* @author Mike Perham
* @version $Id$
*/
@@ -62,30 +58,19 @@
boolean success = false;
try
{
- Process proc = cl.execute();
- // TODO find & use a less naive InputStream multiplexer
- BufferedReader stdout = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- BufferedReader stderr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- String line;
- while ( ( line = stdout.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stdout: " + line );
- }
- consumer.consumeLine( line );
- }
- while ( ( line = stderr.readLine() ) != null )
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- stderr.close();
- stdout.close();
- success = proc.waitFor() == 0;
}
catch ( CommandLineException e )
{
@@ -94,20 +79,6 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
- catch ( InterruptedException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "InterruptedException " + e.getMessage(), e );
- }
- }
return new DiffScmResult( cl.toString(), success ? "Diff successful" : "Unable to diff", consumer
.getOutput(), success );
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditCommand.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/edit/PerforceEditCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditCommand.java Wed Sep 3 16:15:13 2008
@@ -29,18 +29,16 @@
import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.List;
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceEditCommand
extends AbstractEditCommand
@@ -58,28 +56,20 @@
{
getLogger().debug( PerforceScmProvider.clean( "Executing " + cl.toString() ) );
}
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming: " + line );
- }
- consumer.consumeLine( line );
- }
- // Read errors from STDERR
- BufferedReader brErr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- while ( ( line = brErr.readLine() ) != null )
+
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- brErr.close();
}
catch ( CommandLineException e )
{
@@ -88,22 +78,13 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
if ( consumer.isSuccess() )
{
return new EditScmResult( cl.toString(), consumer.getEdits() );
}
- else
- {
- return new EditScmResult( cl.toString(), "Unable to edit file(s)", consumer.getErrorMessage(), false );
- }
+
+ return new EditScmResult( cl.toString(), "Unable to edit file(s)", consumer.getErrorMessage(), false );
}
public static Commandline createCommandLine( PerforceScmProviderRepository repo, File workingDirectory,
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=691823&r1=691822&r2=691823&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 Wed Sep 3 16:15:13 2008
@@ -19,11 +19,7 @@
* under the License.
*/
-import java.io.BufferedReader;
-import java.io.DataOutputStream;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmException;
@@ -36,12 +32,12 @@
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceLoginCommand
extends AbstractLoginCommand
@@ -56,44 +52,29 @@
try
{
- Process proc = cl.execute();
- DataOutputStream dos = new DataOutputStream( proc.getOutputStream() );
if ( StringUtils.isEmpty( repo.getPassword() ) )
{
throw new ScmException( "password is required for the perforce scm plugin." );
}
- dos.writeUTF( repo.getPassword() );
- dos.close();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line = null;
- while ( ( line = br.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming: " + line );
- }
- consumer.consumeLine( line );
- }
- // Read errors from STDERR
- BufferedReader brErr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- while ( ( line = brErr.readLine() ) != null )
+
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- brErr.close();
}
catch ( CommandLineException e )
{
throw new ScmException( "", e );
}
- catch ( IOException e )
- {
- throw new ScmException( "", e );
- }
return new LoginScmResult( cl.toString(), consumer.isSuccess() ? "Login successful" : "Login failed",
consumer.getOutput(), consumer.isSuccess() );
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveCommand.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/remove/PerforceRemoveCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveCommand.java Wed Sep 3 16:15:13 2008
@@ -29,18 +29,15 @@
import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.List;
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceRemoveCommand
extends AbstractRemoveCommand
@@ -54,12 +51,18 @@
PerforceRemoveConsumer consumer = new PerforceRemoveConsumer();
try
{
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
}
catch ( CommandLineException e )
@@ -69,13 +72,6 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
return new RemoveScmResult( cl.toString(), consumer.getRemovals() );
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.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/status/PerforceStatusCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java Wed Sep 3 16:15:13 2008
@@ -31,20 +31,17 @@
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.apache.regexp.RE;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceStatusCommand
extends AbstractStatusCommand
@@ -66,11 +63,9 @@
List scmfiles = createResults( actualLocation, consumer );
return new StatusScmResult( command.toString(), scmfiles );
}
- else
- {
- return new StatusScmResult( command.toString(), "Unable to get status", consumer
+
+ return new StatusScmResult( command.toString(), "Unable to get status", consumer
.getOutput(), consumer.isSuccess() );
- }
}
public static List createResults( String repoPath, PerforceStatusConsumer consumer )
@@ -106,18 +101,20 @@
{
getLogger().debug( PerforceScmProvider.clean( "Executing " + cl.toString() ) );
}
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
+
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Reading " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- br.close();
}
catch ( CommandLineException e )
{
@@ -126,13 +123,7 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
+
return cl;
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.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/tag/PerforceTagCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java Wed Sep 3 16:15:13 2008
@@ -30,6 +30,7 @@
import org.apache.maven.scm.provider.perforce.command.PerforceInfoCommand;
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
import java.io.BufferedReader;
@@ -41,8 +42,6 @@
import java.util.List;
/**
- * @todo refactor this & other perforce commands -- most of the invocation and stream
- * consumer code could be shared
* @author Mike Perham
* @version $Id$
*/
@@ -80,11 +79,9 @@
// Unclear what to pass as the first arg
return new TagScmResult( "p4 label -i", consumer.getTagged() );
}
- else
- {
- // Unclear what to pass as the first arg
- return new TagScmResult( "p4 label -i", "Tag failed", consumer.getOutput(), false );
- }
+
+ // Unclear what to pass as the first arg
+ return new TagScmResult( "p4 label -i", "Tag failed", consumer.getOutput(), false );
}
private boolean shouldLock()
@@ -102,29 +99,19 @@
{
getLogger().debug( PerforceScmProvider.clean( "Executing: " + cl.toString() ) );
}
- Process proc = cl.execute();
- // TODO find & use a less naive InputStream multiplexer
- BufferedReader stdout = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- BufferedReader stderr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) );
- String line;
- while ( ( line = stdout.readLine() ) != null )
- {
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stdout: " + line );
- }
- consumer.consumeLine( line );
- }
- while ( ( line = stderr.readLine() ) != null )
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- if ( getLogger().isDebugEnabled() )
- {
- getLogger().debug( "Consuming stderr: " + line );
- }
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
- stderr.close();
- stdout.close();
}
catch ( CommandLineException e )
{
@@ -133,13 +120,6 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
}
private void createLabel( ScmProviderRepository repo, ScmFileSet files, String tag, PerforceTagConsumer consumer,
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditCommand.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/unedit/PerforceUnEditCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditCommand.java Wed Sep 3 16:15:13 2008
@@ -29,18 +29,15 @@
import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.List;
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceUnEditCommand
extends AbstractUnEditCommand
@@ -55,12 +52,18 @@
PerforceUnEditConsumer consumer = new PerforceUnEditConsumer();
try
{
- Process proc = cl.execute();
- BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line;
- while ( ( line = br.readLine() ) != null )
+ CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, err );
+
+ if ( exitCode != 0 )
{
- consumer.consumeLine( line );
+ String cmdLine = CommandLineUtils.toString( cl.getCommandline() );
+
+ StringBuffer msg = new StringBuffer( "Exit code: " + exitCode + " - " + err.getOutput() );
+ msg.append( '\n' );
+ msg.append( "Command line was:" + cmdLine );
+
+ throw new CommandLineException( msg.toString() );
}
}
catch ( CommandLineException e )
@@ -70,22 +73,13 @@
getLogger().error( "CommandLineException " + e.getMessage(), e );
}
}
- catch ( IOException e )
- {
- if ( getLogger().isErrorEnabled() )
- {
- getLogger().error( "IOException " + e.getMessage(), e );
- }
- }
if ( consumer.isSuccess() )
{
return new UnEditScmResult( cl.toString(), consumer.getEdits() );
}
- else
- {
- return new UnEditScmResult( cl.toString(), "Unable to revert", consumer.getOutput(), consumer.isSuccess() );
- }
+
+ return new UnEditScmResult( cl.toString(), "Unable to revert", consumer.getOutput(), consumer.isSuccess() );
}
public static Commandline createCommandLine( PerforceScmProviderRepository repo, File workingDirectory,
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceUpdateCommand.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/update/PerforceUpdateCommand.java?rev=691823&r1=691822&r2=691823&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceUpdateCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceUpdateCommand.java Wed Sep 3 16:15:13 2008
@@ -35,14 +35,12 @@
/**
* @author Mike Perham
- * @version $Id: PerforceChangeLogCommand.java 264804 2005-08-30 16:09:04Z
- * evenisse $
+ * @version $Id$
*/
public class PerforceUpdateCommand
extends AbstractUpdateCommand
implements PerforceCommand
{
-
/** {@inheritDoc} */
protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repo, ScmFileSet files,
ScmVersion scmVersion )