org.apache.tools.ant.taskdefs.optional.ssh
Class AbstractSshMessage

java.lang.Object
  extended by org.apache.tools.ant.taskdefs.optional.ssh.AbstractSshMessage
Direct Known Subclasses:
ScpFromMessage, ScpToMessage

public abstract class AbstractSshMessage
extends java.lang.Object

Abstract class for ssh upload and download


Constructor Summary
AbstractSshMessage(boolean verbose, com.jcraft.jsch.Session session)
          Constructor for AbstractSshMessage
AbstractSshMessage(com.jcraft.jsch.Session session)
          Constructor for AbstractSshMessage
 
Method Summary
abstract  void execute()
          Carry out the transfer.
protected  com.jcraft.jsch.SftpProgressMonitor getProgressMonitor()
          Get the progress monitor.
protected  boolean getVerbose()
          Is the verbose attribute set.
protected  void log(java.lang.String message)
          Log a message to the log listener.
protected  void logStats(long timeStarted, long timeEnded, long totalLength)
          Log transfer stats to the log listener.
protected  com.jcraft.jsch.Channel openExecChannel(java.lang.String command)
          Open an ssh channel.
protected  com.jcraft.jsch.ChannelSftp openSftpChannel()
          Open an ssh sftp channel.
protected  void sendAck(java.io.OutputStream out)
          Send an ack.
 void setLogListener(LogListener aListener)
          Set a log listener.
protected  int trackProgress(long filesize, long totalLength, int percentTransmitted)
          Track progress every 10% if 100kb < filesize < 1mb.
protected  void waitForAck(java.io.InputStream in)
          Reads the response, throws a BuildException if the response indicates an error.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSshMessage

public AbstractSshMessage(com.jcraft.jsch.Session session)
Constructor for AbstractSshMessage

Parameters:
session - the ssh session to use

AbstractSshMessage

public AbstractSshMessage(boolean verbose,
                          com.jcraft.jsch.Session session)
Constructor for AbstractSshMessage

Parameters:
verbose - if true do verbose logging
session - the ssh session to use
Since:
Ant 1.6.2
Method Detail

openExecChannel

protected com.jcraft.jsch.Channel openExecChannel(java.lang.String command)
                                           throws com.jcraft.jsch.JSchException
Open an ssh channel.

Parameters:
command - the command to use
Returns:
the channel
Throws:
com.jcraft.jsch.JSchException - on error

openSftpChannel

protected com.jcraft.jsch.ChannelSftp openSftpChannel()
                                               throws com.jcraft.jsch.JSchException
Open an ssh sftp channel.

Returns:
the channel
Throws:
com.jcraft.jsch.JSchException - on error

sendAck

protected void sendAck(java.io.OutputStream out)
                throws java.io.IOException
Send an ack.

Parameters:
out - the output stream to use
Throws:
java.io.IOException - on error

waitForAck

protected void waitForAck(java.io.InputStream in)
                   throws java.io.IOException,
                          BuildException
Reads the response, throws a BuildException if the response indicates an error.

Parameters:
in - the input stream to use
Throws:
java.io.IOException - on I/O error
BuildException - on other errors

execute

public abstract void execute()
                      throws java.io.IOException,
                             com.jcraft.jsch.JSchException
Carry out the transfer.

Throws:
java.io.IOException - on I/O errors
com.jcraft.jsch.JSchException - on ssh errors

setLogListener

public void setLogListener(LogListener aListener)
Set a log listener.

Parameters:
aListener - the log listener

log

protected void log(java.lang.String message)
Log a message to the log listener.

Parameters:
message - the message to log

logStats

protected void logStats(long timeStarted,
                        long timeEnded,
                        long totalLength)
Log transfer stats to the log listener.

Parameters:
timeStarted - the time started
timeEnded - the finishing time
totalLength - the total length

getVerbose

protected final boolean getVerbose()
Is the verbose attribute set.

Returns:
true if the verbose attribute is set
Since:
Ant 1.6.2

trackProgress

protected final int trackProgress(long filesize,
                                  long totalLength,
                                  int percentTransmitted)
Track progress every 10% if 100kb < filesize < 1mb. For larger files track progress for every percent transmitted.

Parameters:
filesize - the size of the file been transmitted
totalLength - the total transmission size
percentTransmitted - the current percent transmitted
Returns:
the percent that the file is of the total

getProgressMonitor

protected com.jcraft.jsch.SftpProgressMonitor getProgressMonitor()
Get the progress monitor.

Returns:
the progress monitor.