org.apache.maven.wagon.providers.sshext
Class ScpExternalWagon

java.lang.Object
  extended byorg.apache.maven.wagon.AbstractWagon
      extended byorg.apache.maven.wagon.providers.sshext.ScpExternalWagon
All Implemented Interfaces:
org.apache.maven.wagon.CommandExecutor, org.apache.maven.wagon.Wagon

public class ScpExternalWagon
extends org.apache.maven.wagon.AbstractWagon
implements org.apache.maven.wagon.CommandExecutor

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.

Version:
$Id: ScpExternalWagon.java 314922 2005-10-12 14:16:36Z brett $
Author:
Brett Porter

Nested Class Summary
 
Nested classes inherited from class org.apache.maven.wagon.CommandExecutor
 
Field Summary
private  int port
           
private  java.io.File privateKey
           
private  java.lang.String scpArgs
          Arguments to pass to the SCP command.
private  java.lang.String scpExecutable
          The external SCP command to use - default is scp.
private  java.lang.String sshArgs
          Arguments to pass to the SSH command.
private  java.lang.String sshExecutable
          The external SSH command to use - default is ssh.
 
Fields inherited from class org.apache.maven.wagon.AbstractWagon
authenticationInfo, DEFAULT_BUFFER_SIZE, interactive, proxyInfo, repository, sessionEventSupport, transferEventSupport
 
Fields inherited from interface org.apache.maven.wagon.CommandExecutor
ROLE
 
Constructor Summary
ScpExternalWagon()
           
 
Method Summary
 void closeConnection()
           
 void executeCommand(java.lang.String command)
           
private  void executeScpCommand(java.io.File localFile, java.lang.String remoteFile, boolean put)
           
private  java.io.File findPrivateKey()
           
 void get(java.lang.String resourceName, java.io.File destination)
           
 boolean getIfNewer(java.lang.String resourceName, java.io.File destination, long timestamp)
           
 java.lang.String getScpArgs()
           
 java.lang.String getScpExecutable()
           
 java.lang.String getSshArgs()
           
 java.lang.String getSshExecutable()
           
 void openConnection()
           
 void put(java.io.File source, java.lang.String resourceName)
           
 void putDirectory(java.io.File sourceDirectory, java.lang.String destinationDirectory)
           
 void setScpArgs(java.lang.String scpArgs)
           
 void setScpExecutable(java.lang.String scpExecutable)
           
 void setSshArgs(java.lang.String sshArgs)
           
 void setSshExecutable(java.lang.String sshExecutable)
           
 boolean supportsDirectoryCopy()
           
 
Methods inherited from class org.apache.maven.wagon.AbstractWagon
addSessionListener, addTransferListener, connect, connect, connect, connect, createParentDirectories, createZip, disconnect, fireGetCompleted, fireGetInitiated, fireGetStarted, firePutCompleted, firePutInitiated, firePutStarted, fireSessionConnectionRefused, fireSessionDebug, fireSessionDisconnected, fireSessionDisconnecting, fireSessionError, fireSessionLoggedIn, fireSessionLoggedOff, fireSessionOpened, fireSessionOpening, fireTransferDebug, fireTransferError, fireTransferProgress, getAuthenticationInfo, getPath, getProxyInfo, getRepository, getSessionEventSupport, getTransfer, getTransfer, getTransferEventSupport, hasSessionListener, hasTransferListener, isInteractive, postProcessListeners, putTransfer, removeSessionListener, removeTransferListener, setInteractive, setSessionEventSupport, setTransferEventSupport, transfer, transfer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.maven.wagon.CommandExecutor
 
Methods inherited from interface org.apache.maven.wagon.Wagon
addSessionListener, addTransferListener, connect, connect, connect, connect, disconnect, getRepository, hasSessionListener, hasTransferListener, isInteractive, removeSessionListener, removeTransferListener, setInteractive
 

Field Detail

scpExecutable

private java.lang.String scpExecutable
The external SCP command to use - default is scp.


sshExecutable

private java.lang.String sshExecutable
The external SSH command to use - default is ssh.


scpArgs

private java.lang.String scpArgs
Arguments to pass to the SCP command.


sshArgs

private java.lang.String sshArgs
Arguments to pass to the SSH command.


port

private int port

privateKey

private java.io.File privateKey
Constructor Detail

ScpExternalWagon

public ScpExternalWagon()
Method Detail

openConnection

public void openConnection()
                    throws org.apache.maven.wagon.authentication.AuthenticationException
Specified by:
openConnection in interface org.apache.maven.wagon.Wagon
Throws:
org.apache.maven.wagon.authentication.AuthenticationException

findPrivateKey

private java.io.File findPrivateKey()

closeConnection

public void closeConnection()

executeCommand

public void executeCommand(java.lang.String command)
                    throws org.apache.maven.wagon.CommandExecutionException
Specified by:
executeCommand in interface org.apache.maven.wagon.CommandExecutor
Throws:
org.apache.maven.wagon.CommandExecutionException

executeScpCommand

private void executeScpCommand(java.io.File localFile,
                               java.lang.String remoteFile,
                               boolean put)
                        throws org.apache.maven.wagon.TransferFailedException,
                               org.apache.maven.wagon.ResourceDoesNotExistException
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException

put

public void put(java.io.File source,
                java.lang.String resourceName)
         throws org.apache.maven.wagon.TransferFailedException,
                org.apache.maven.wagon.ResourceDoesNotExistException,
                org.apache.maven.wagon.authorization.AuthorizationException
Specified by:
put in interface org.apache.maven.wagon.Wagon
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException

get

public void get(java.lang.String resourceName,
                java.io.File destination)
         throws org.apache.maven.wagon.TransferFailedException,
                org.apache.maven.wagon.ResourceDoesNotExistException,
                org.apache.maven.wagon.authorization.AuthorizationException
Specified by:
get in interface org.apache.maven.wagon.Wagon
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException

getIfNewer

public boolean getIfNewer(java.lang.String resourceName,
                          java.io.File destination,
                          long timestamp)
Specified by:
getIfNewer in interface org.apache.maven.wagon.Wagon

getScpExecutable

public java.lang.String getScpExecutable()

setScpExecutable

public void setScpExecutable(java.lang.String scpExecutable)

getSshExecutable

public java.lang.String getSshExecutable()

setSshExecutable

public void setSshExecutable(java.lang.String sshExecutable)

getScpArgs

public java.lang.String getScpArgs()

setScpArgs

public void setScpArgs(java.lang.String scpArgs)

getSshArgs

public java.lang.String getSshArgs()

setSshArgs

public void setSshArgs(java.lang.String sshArgs)

putDirectory

public void putDirectory(java.io.File sourceDirectory,
                         java.lang.String destinationDirectory)
                  throws org.apache.maven.wagon.TransferFailedException,
                         org.apache.maven.wagon.ResourceDoesNotExistException,
                         org.apache.maven.wagon.authorization.AuthorizationException
Specified by:
putDirectory in interface org.apache.maven.wagon.Wagon
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException

supportsDirectoryCopy

public boolean supportsDirectoryCopy()
Specified by:
supportsDirectoryCopy in interface org.apache.maven.wagon.Wagon