Author: olamy
Date: Wed Sep 21 14:27:03 2011
New Revision: 1173672
URL: http://svn.apache.org/viewvc?rev=1173672&view=rev
Log:
preserve stack trace
Modified:
maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java
maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
Modified:
maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java?rev=1173672&r1=1173671&r2=1173672&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
Wed Sep 21 14:27:03 2011
@@ -50,20 +50,21 @@ import java.util.Calendar;
import java.util.List;
/**
- * FtpWagon
+ * FtpWagon
*
* @version $Id$
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="ftp"
- * instantiation-strategy="per-lookup"
+ * @plexus.component role="org.apache.maven.wagon.Wagon"
+ * role-hint="ftp"
+ * instantiation-strategy="per-lookup"
*/
public class FtpWagon
extends StreamWagon
{
private FTPClient ftp;
-
- /** @plexus.configuration default-value="true" */
+
+ /**
+ * @plexus.configuration default-value="true"
+ */
private boolean passiveMode = true;
public boolean isPassiveMode()
@@ -109,7 +110,7 @@ public class FtpWagon
ftp = new FTPClient();
ftp.setDefaultTimeout( getTimeout() );
ftp.setDataTimeout( getTimeout() );
-
+
ftp.addProtocolCommandListener( new PrintCommandListener( this ) );
try
@@ -170,7 +171,7 @@ public class FtpWagon
// Use passive mode as default because most of us are
// behind firewalls these days.
if ( isPassiveMode() )
- {
+ {
ftp.enterLocalPassiveMode();
}
}
@@ -307,8 +308,9 @@ public class FtpWagon
if ( os == null )
{
- String msg = "Cannot transfer resource: '" + resource
- + "'. Output stream is null. FTP Server response: " +
ftp.getReplyString();
+ String msg =
+ "Cannot transfer resource: '" + resource + "'. Output
stream is null. FTP Server response: "
+ + ftp.getReplyString();
throw new TransferFailedException( msg );
@@ -426,32 +428,32 @@ public class FtpWagon
throws TransferFailedException, ResourceDoesNotExistException,
AuthorizationException
{
Resource resource = new Resource( destinationDirectory );
-
- try
+
+ try
{
ftpChangeDirectory( resource );
-
+
String filename = PathUtils.filename( resource.getName() );
FTPFile[] ftpFiles = ftp.listFiles( filename );
-
+
if ( ftpFiles == null || ftpFiles.length <= 0 )
{
throw new ResourceDoesNotExistException( "Could not find file:
'" + resource + "'" );
}
-
+
List<String> ret = new ArrayList<String>();
for ( int i = 0; i < ftpFiles.length; i++ )
{
String name = ftpFiles[i].getName();
-
+
if ( ftpFiles[i].isDirectory() && !name.endsWith( "/" ) )
{
name += "/";
}
-
+
ret.add( name );
}
-
+
return ret;
}
catch ( IOException e )
@@ -473,9 +475,9 @@ public class FtpWagon
int status = ftp.stat( filename );
return ( ( status == FTPReply.FILE_STATUS ) || ( status ==
FTPReply.DIRECTORY_STATUS )
- || ( status == FTPReply.FILE_STATUS_OK ) // not in the
RFC but used by some FTP servers
- || ( status == FTPReply.COMMAND_OK ) // not in the
RFC but used by some FTP servers
- || ( status == FTPReply.SYSTEM_STATUS ) );
+ || ( status == FTPReply.FILE_STATUS_OK ) // not in the RFC but
used by some FTP servers
+ || ( status == FTPReply.COMMAND_OK ) // not in the RFC but
used by some FTP servers
+ || ( status == FTPReply.SYSTEM_STATUS ) );
}
catch ( IOException e )
{
@@ -486,7 +488,7 @@ public class FtpWagon
return false;
}
}
-
+
public boolean supportsDirectoryCopy()
{
return true;
@@ -502,31 +504,32 @@ public class FtpWagon
if ( !ftp.changeWorkingDirectory( getRepository().getBasedir() ) )
{
RepositoryPermissions permissions =
getRepository().getPermissions();
- if ( !makeFtpDirectoryRecursive( getRepository().getBasedir()
, permissions ) )
+ if ( !makeFtpDirectoryRecursive( getRepository().getBasedir(),
permissions ) )
{
- throw new TransferFailedException( "Required directory: '"
+ getRepository().getBasedir() + "' "
- + "could not get created" );
+ throw new TransferFailedException(
+ "Required directory: '" + getRepository().getBasedir()
+ "' " + "could not get created" );
}
// try it again sam ...
if ( !ftp.changeWorkingDirectory( getRepository().getBasedir()
) )
{
throw new TransferFailedException( "Required directory: '"
+ getRepository().getBasedir() + "' "
- + "is missing and could not get created" );
+ + "is missing and
could not get created" );
}
}
}
catch ( IOException e )
{
- throw new TransferFailedException( "Cannot change to root path " +
getRepository().getBasedir() );
+ throw new TransferFailedException( "Cannot change to root path " +
getRepository().getBasedir(), e );
}
- fireTransferDebug( "Recursively uploading directory " +
sourceDirectory.getAbsolutePath() + " as "
- + destinationDirectory );
+ fireTransferDebug(
+ "Recursively uploading directory " +
sourceDirectory.getAbsolutePath() + " as " + destinationDirectory );
ftpRecursivePut( sourceDirectory, destinationDirectory );
}
- private void ftpRecursivePut( File sourceFile, String fileName ) throws
TransferFailedException
+ private void ftpRecursivePut( File sourceFile, String fileName )
+ throws TransferFailedException
{
final RepositoryPermissions permissions = repository.getPermissions();
@@ -546,21 +549,23 @@ public class FtpWagon
{
if ( !ftp.changeWorkingDirectory( fileName ) )
{
- throw new TransferFailedException( "Unable to
change cwd on ftp server to " + fileName
- + " when processing " +
sourceFile.getAbsolutePath() );
+ throw new TransferFailedException(
+ "Unable to change cwd on ftp server to " +
fileName + " when processing "
+ + sourceFile.getAbsolutePath() );
}
}
else
{
- throw new TransferFailedException( "Unable to
create directory " + fileName
- + " when processing " +
sourceFile.getAbsolutePath() );
+ throw new TransferFailedException(
+ "Unable to create directory " + fileName + "
when processing "
+ + sourceFile.getAbsolutePath() );
}
}
}
catch ( IOException e )
{
- throw new TransferFailedException( "IOException caught
while processing path at "
- + sourceFile.getAbsolutePath(), e );
+ throw new TransferFailedException(
+ "IOException caught while processing path at " +
sourceFile.getAbsolutePath(), e );
}
}
@@ -594,19 +599,19 @@ public class FtpWagon
catch ( IOException e )
{
throw new TransferFailedException( "IOException caught while
attempting to step up to parent directory"
- + " after successfully
processing " + sourceFile.getAbsolutePath(),
- e );
+ + " after successfully
processing "
+ +
sourceFile.getAbsolutePath(), e );
}
}
else
{
// Oh how I hope and pray, in denial, but today I am still just a
file.
-
+
FileInputStream sourceFileStream = null;
try
{
sourceFileStream = new FileInputStream( sourceFile );
-
+
// It's a file. Upload it in the current directory.
if ( ftp.storeFile( fileName, sourceFileStream ) )
{
@@ -642,14 +647,14 @@ public class FtpWagon
{
String msg =
"Cannot transfer resource: '" +
sourceFile.getAbsolutePath() + "' FTP Server response: "
- + ftp.getReplyString();
+ + ftp.getReplyString();
throw new TransferFailedException( msg );
}
}
catch ( IOException e )
{
- throw new TransferFailedException( "IOException caught while
attempting to upload "
- + sourceFile.getAbsolutePath(), e );
+ throw new TransferFailedException(
+ "IOException caught while attempting to upload " +
sourceFile.getAbsolutePath(), e );
}
finally
{
@@ -703,7 +708,7 @@ public class FtpWagon
/**
* Recursively create directories.
*
- * @param fileName the path to create (might be nested)
+ * @param fileName the path to create (might be nested)
* @param permissions
* @return ok
* @throws IOException
@@ -712,7 +717,7 @@ public class FtpWagon
throws IOException
{
if ( fileName == null || fileName.length() == 0
- || fileName.replace('/', '_').trim().length() == 0 ) // if a
string is '/', '//' or similar
+ || fileName.replace( '/', '_' ).trim().length() == 0 ) // if a
string is '/', '//' or similar
{
return false;
}
@@ -734,8 +739,7 @@ public class FtpWagon
slashPos = fileName.indexOf( "/" );
}
- if ( slashPos >= 0
- && slashPos < ( fileName.length() - 1 ) ) // not only a slash at
the end, like in 'newDir/'
+ if ( slashPos >= 0 && slashPos < ( fileName.length() - 1 ) ) // not
only a slash at the end, like in 'newDir/'
{
if ( oldPwd == null )
{
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java?rev=1173672&r1=1173671&r2=1173672&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
Wed Sep 21 14:27:03 2011
@@ -74,7 +74,7 @@ public class HtmlFileListParser
}
catch ( URISyntaxException e )
{
- throw new TransferFailedException( "Unable to parse as URI: " +
baseurl );
+ throw new TransferFailedException( "Unable to parse as URI: " +
baseurl, e );
}
catch ( IOException e )
{
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java?rev=1173672&r1=1173671&r2=1173672&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/HtmlFileListParser.java
Wed Sep 21 14:27:03 2011
@@ -100,7 +100,7 @@ public class HtmlFileListParser
}
catch ( URISyntaxException e )
{
- throw new TransferFailedException( "Unable to parse as base URI: "
+ baseurl );
+ throw new TransferFailedException( "Unable to parse as base URI: "
+ baseurl, e );
}
catch ( IOException e )
{
Modified:
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java?rev=1173672&r1=1173671&r2=1173672&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java
Wed Sep 21 14:27:03 2011
@@ -19,15 +19,6 @@ package org.apache.maven.wagon.providers
* under the License.
*/
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
import org.apache.maven.wagon.CommandExecutionException;
import org.apache.maven.wagon.CommandExecutor;
import org.apache.maven.wagon.PathUtils;
@@ -45,14 +36,23 @@ import org.codehaus.plexus.util.FileUtil
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
public class ScpHelper
{
public static final char PATH_SEPARATOR = '/';
public static final int DEFAULT_SSH_PORT = 22;
-
+
private final CommandExecutor executor;
-
+
public ScpHelper( CommandExecutor executor )
{
this.executor = executor;
@@ -139,7 +139,7 @@ public class ScpHelper
return privateKey;
}
-
+
public static void createZip( List<String> files, File zipName, File
basedir )
throws IOException
{
@@ -202,7 +202,7 @@ public class ScpHelper
throws TransferFailedException, ResourceDoesNotExistException,
AuthorizationException
{
Repository repository = wagon.getRepository();
-
+
String basedir = repository.getBasedir();
String destDir = StringUtils.replace( destinationDirectory, "\\", "/"
);
@@ -249,8 +249,8 @@ public class ScpHelper
try
{
- executor.executeCommand( "cd " + path + "; unzip -q -o " +
zipFile.getName() + "; rm -f "
- + zipFile.getName() );
+ executor.executeCommand(
+ "cd " + path + "; unzip -q -o " + zipFile.getName() + "; rm -f
" + zipFile.getName() );
zipFile.delete();
@@ -281,7 +281,7 @@ public class ScpHelper
Streams streams = executor.executeCommand( "ls -FlA " + path,
false );
List<String> ret = new LSParser().parseFiles( streams.getOut() );
- if (ret == null || ret.isEmpty())
+ if ( ret == null || ret.isEmpty() )
{
throw new ResourceDoesNotExistException( "No such file or
directory" );
}
@@ -291,12 +291,12 @@ public class ScpHelper
{
if ( e.getMessage().trim().endsWith( "No such file or directory" )
)
{
- throw new ResourceDoesNotExistException( e.getMessage().trim()
);
+ throw new ResourceDoesNotExistException(
e.getMessage().trim(), e );
}
else if ( e.getMessage().trim().endsWith( "Not a directory" ) )
{
- throw new ResourceDoesNotExistException( e.getMessage().trim()
);
- }
+ throw new ResourceDoesNotExistException(
e.getMessage().trim(), e );
+ }
else
{
throw new TransferFailedException( "Error performing file
listing.", e );
Modified:
maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java?rev=1173672&r1=1173671&r2=1173672&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
Wed Sep 21 14:27:03 2011
@@ -19,11 +19,6 @@ package org.apache.maven.wagon.providers
* under the License.
*/
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.List;
-import java.util.Locale;
-
import org.apache.maven.wagon.AbstractWagon;
import org.apache.maven.wagon.CommandExecutionException;
import org.apache.maven.wagon.CommandExecutor;
@@ -45,6 +40,11 @@ import org.codehaus.plexus.util.cli.Comm
import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.List;
+import java.util.Locale;
+
/**
* SCP deployer using "external" scp program. To allow for
* ssh-agent type behavior, until we can construct a Java SSH Agent and
interface for JSch.
@@ -52,10 +52,9 @@ import org.codehaus.plexus.util.cli.Comm
* @author <a href="mailto:[email protected]">Brett Porter</a>
* @version $Id:ScpExternalWagon.java 477260 2006-11-20 17:11:39Z brett $
* @todo [BP] add compression flag
- *
- * @plexus.component role="org.apache.maven.wagon.Wagon"
- * role-hint="scpexe"
- * instantiation-strategy="per-lookup"
+ * @plexus.component role="org.apache.maven.wagon.Wagon"
+ * role-hint="scpexe"
+ * instantiation-strategy="per-lookup"
*/
public class ScpExternalWagon
extends AbstractWagon
@@ -130,7 +129,7 @@ public class ScpExternalWagon
{
username = authenticationInfo.getUserName();
}
-
+
if ( username == null )
{
return getRepository().getHost();
@@ -140,7 +139,7 @@ public class ScpExternalWagon
return username + "@" + getRepository().getHost();
}
}
-
+
public void executeCommand( String command )
throws CommandExecutionException
{
@@ -161,7 +160,7 @@ public class ScpExternalWagon
}
catch ( FileNotFoundException e )
{
- throw new CommandExecutionException( e.getMessage() );
+ throw new CommandExecutionException( e.getMessage(), e );
}
Commandline cl = createBaseCommandLine( putty, sshExecutable,
privateKey );
@@ -183,7 +182,7 @@ public class ScpExternalWagon
{
cl.createArgument().setLine( sshArgs );
}
-
+
String remoteHost = this.buildRemoteHost();
cl.createArgument().setValue( remoteHost );
@@ -268,7 +267,7 @@ public class ScpExternalWagon
catch ( FileNotFoundException e )
{
fireSessionConnectionRefused();
-
+
throw new AuthorizationException( e.getMessage() );
}
Commandline cl = createBaseCommandLine( putty, scpExecutable,
privateKey );
@@ -286,12 +285,12 @@ public class ScpExternalWagon
{
cl.createArgument().setLine( scpArgs );
}
-
+
String resourceName = normalizeResource( resource );
String remoteFile = getRepository().getBasedir() + "/" + resourceName;
-
+
remoteFile = StringUtils.replace( remoteFile, " ", "\\ " );
-
+
String qualifiedRemoteFile = this.buildRemoteHost() + ":" + remoteFile;
if ( put )
{
@@ -312,15 +311,15 @@ public class ScpExternalWagon
int exitCode = CommandLineUtils.executeCommandLine( cl, null, err
);
if ( exitCode != 0 )
{
- if ( !put
- && err.getOutput().trim().toLowerCase( Locale.ENGLISH
).indexOf( "no such file or directory" ) != -1 )
+ if ( !put && err.getOutput().trim().toLowerCase(
Locale.ENGLISH ).indexOf( "no such file or directory" )
+ != -1 )
{
throw new ResourceDoesNotExistException( err.getOutput() );
}
else
{
- TransferFailedException e = new TransferFailedException(
"Exit code: " + exitCode + " - "
- +
err.getOutput() );
+ TransferFailedException e =
+ new TransferFailedException( "Exit code: " + exitCode
+ " - " + err.getOutput() );
fireTransferError( resource, e, put ?
TransferEvent.REQUEST_PUT : TransferEvent.REQUEST_GET );
@@ -391,12 +390,12 @@ public class ScpExternalWagon
catch ( CommandExecutionException e )
{
fireTransferError( resource, e, TransferEvent.REQUEST_PUT );
-
+
throw new TransferFailedException( "Error executing command for
transfer", e );
}
-
+
resource.setContentLength( source.length() );
-
+
resource.setLastModified( source.lastModified() );
firePutStarted( resource, source );
@@ -438,7 +437,7 @@ public class ScpExternalWagon
Resource resource = new Resource( path );
fireGetInitiated( resource, destination );
-
+
createParentDirectories( destination );
fireGetStarted( resource, destination );