org.apache.maven.wagon

Class AbstractWagon

Implemented Interfaces:
Wagon
Known Direct Subclasses:
AbstractSshWagon, HttpWagon, StreamWagon, WebDavWagon

public abstract class AbstractWagon
extends java.lang.Object
implements Wagon

Implementation of common facilties for Wagon providers.
Version:
$Id: AbstractWagon.java 480330 2006-11-29 01:55:47Z brett $
Author:
Michal Maczka

Field Summary

protected static int
DEFAULT_BUFFER_SIZE
protected AuthenticationInfo
authenticationInfo
protected boolean
interactive
protected ProxyInfo
proxyInfo
protected Repository
repository
protected SessionEventSupport
sessionEventSupport
protected TransferEventSupport
transferEventSupport

Fields inherited from interface org.apache.maven.wagon.Wagon

ROLE

Method Summary

void
addSessionListener(SessionListener listener)
void
addTransferListener(TransferListener listener)
protected abstract void
closeConnection()
void
connect(Repository repository)
void
connect(Repository repository, AuthenticationInfo authenticationInfo)
void
connect(Repository repository, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo)
void
connect(Repository repository, ProxyInfo proxyInfo)
protected void
createParentDirectories(File destination)
void
createZip(List files, File zipName, File basedir)
void
disconnect()
protected void
fireGetCompleted(Resource resource, File localFile)
protected void
fireGetInitiated(Resource resource, File localFile)
protected void
fireGetStarted(Resource resource, File localFile)
protected void
firePutCompleted(Resource resource, File localFile)
protected void
firePutInitiated(Resource resource, File localFile)
protected void
firePutStarted(Resource resource, File localFile)
protected void
fireSessionConnectionRefused()
protected void
fireSessionDebug(String message)
protected void
fireSessionDisconnected()
protected void
fireSessionDisconnecting()
protected void
fireSessionError(Exception exception)
protected void
fireSessionLoggedIn()
protected void
fireSessionLoggedOff()
protected void
fireSessionOpened()
protected void
fireSessionOpening()
protected void
fireTransferDebug(String message)
protected void
fireTransferError(Resource resource, Exception e, int requestType)
protected void
fireTransferProgress(TransferEvent transferEvent, byte[] buffer, int n)
AuthenticationInfo
getAuthenticationInfo()
List
getFileList(String destinationDirectory)
Returns a List of strings naming the files and directories in the directory denoted by this abstract pathname.
protected static String
getPath(String basedir, String dir)
ProxyInfo
getProxyInfo()
Repository
getRepository()
SessionEventSupport
getSessionEventSupport()
protected void
getTransfer(Resource resource, File destination, InputStream input)
protected void
getTransfer(Resource resource, File destination, InputStream input, boolean closeInput, int maxSize)
TransferEventSupport
getTransferEventSupport()
boolean
hasSessionListener(SessionListener listener)
boolean
hasTransferListener(TransferListener listener)
boolean
isInteractive()
protected void
postProcessListeners(Resource resource, File source, int requestType)
This method is used if you are not streaming the transfer, to make sure any listeners dependent on state (eg checksum observers) succeed.
void
putDirectory(File sourceDirectory, String destinationDirectory)
Copy a directory from local system to remote
protected void
putTransfer(Resource resource, File source, OutputStream output, boolean closeOutput)
void
removeSessionListener(SessionListener listener)
void
removeTransferListener(TransferListener listener)
boolean
resourceExists(String resourceName)
Check if a remote resource exists
void
setInteractive(boolean interactive)
void
setSessionEventSupport(SessionEventSupport sessionEventSupport)
void
setTransferEventSupport(TransferEventSupport transferEventSupport)
boolean
supportsDirectoryCopy()
protected void
transfer(Resource resource, File source, OutputStream output, boolean closeOutput)
Write from File to OutputStream
protected void
transfer(Resource resource, InputStream input, OutputStream output, int requestType)
Write from InputStream to OutputStream.
protected void
transfer(Resource resource, InputStream input, OutputStream output, int requestType, int maxSize)
Write from InputStream to OutputStream.

Field Details

DEFAULT_BUFFER_SIZE

protected static final int DEFAULT_BUFFER_SIZE
Field Value:
4096

authenticationInfo

protected AuthenticationInfo authenticationInfo

interactive

protected boolean interactive

proxyInfo

protected ProxyInfo proxyInfo

repository

protected Repository repository

sessionEventSupport

protected SessionEventSupport sessionEventSupport

transferEventSupport

protected TransferEventSupport transferEventSupport

Method Details

addSessionListener

public void addSessionListener(SessionListener listener)
Specified by:
addSessionListener in interface Wagon

addTransferListener

public void addTransferListener(TransferListener listener)
Specified by:
addTransferListener in interface Wagon

closeConnection

protected abstract void closeConnection()
            throws ConnectionException

connect

public void connect(Repository repository)
            throws ConnectionException,
                   AuthenticationException
Specified by:
connect in interface Wagon

connect

public void connect(Repository repository,
                    AuthenticationInfo authenticationInfo)
            throws ConnectionException,
                   AuthenticationException
Specified by:
connect in interface Wagon

connect

public void connect(Repository repository,
                    AuthenticationInfo authenticationInfo,
                    ProxyInfo proxyInfo)
            throws ConnectionException,
                   AuthenticationException
Specified by:
connect in interface Wagon

connect

public void connect(Repository repository,
                    ProxyInfo proxyInfo)
            throws ConnectionException,
                   AuthenticationException
Specified by:
connect in interface Wagon

createParentDirectories

protected void createParentDirectories(File destination)
            throws TransferFailedException

createZip

public void createZip(List files,
                      File zipName,
                      File basedir)
            throws IOException

disconnect

public void disconnect()
            throws ConnectionException
Specified by:
disconnect in interface Wagon

fireGetCompleted

protected void fireGetCompleted(Resource resource,
                                File localFile)

fireGetInitiated

protected void fireGetInitiated(Resource resource,
                                File localFile)

fireGetStarted

protected void fireGetStarted(Resource resource,
                              File localFile)

firePutCompleted

protected void firePutCompleted(Resource resource,
                                File localFile)

firePutInitiated

protected void firePutInitiated(Resource resource,
                                File localFile)

firePutStarted

protected void firePutStarted(Resource resource,
                              File localFile)

fireSessionConnectionRefused

protected void fireSessionConnectionRefused()

fireSessionDebug

protected void fireSessionDebug(String message)

fireSessionDisconnected

protected void fireSessionDisconnected()

fireSessionDisconnecting

protected void fireSessionDisconnecting()

fireSessionError

protected void fireSessionError(Exception exception)

fireSessionLoggedIn

protected void fireSessionLoggedIn()

fireSessionLoggedOff

protected void fireSessionLoggedOff()

fireSessionOpened

protected void fireSessionOpened()

fireSessionOpening

protected void fireSessionOpening()

fireTransferDebug

protected void fireTransferDebug(String message)

fireTransferError

protected void fireTransferError(Resource resource,
                                 Exception e,
                                 int requestType)

fireTransferProgress

protected void fireTransferProgress(TransferEvent transferEvent,
                                    byte[] buffer,
                                    int n)

getAuthenticationInfo

public AuthenticationInfo getAuthenticationInfo()

getFileList

public List getFileList(String destinationDirectory)
            throws TransferFailedException,
                   ResourceDoesNotExistException,
                   AuthorizationException
Returns a List of strings naming the files and directories in the directory denoted by this abstract pathname.

If this abstract pathname does not denote a directory, or does not exist, then this method throws ResourceDoesNotExistException. Otherwise a List of strings is returned, one for each file or directory in the directory. Names denoting the directory itself and the directory's parent directory are not included in the result. Each string is a file name rather than a complete path.

There is no guarantee that the name strings in the resulting list will appear in any specific order; they are not, in particular, guaranteed to appear in alphabetical order.

Specified by:
getFileList in interface Wagon
Parameters:
destinationDirectory - directory to list contents of
Returns:
A List of strings naming the files and directories in the directory denoted by this abstract pathname. The List will be empty if the directory is empty.
Throws:
TransferFailedException - if there's an error trying to access the remote side
ResourceDoesNotExistException - if destinationDirectory does not exist or is not a directory
AuthorizationException - if not authorized to list the contents of the directory

getPath

protected static String getPath(String basedir,
                                String dir)

getProxyInfo

public ProxyInfo getProxyInfo()

getRepository

public Repository getRepository()
Specified by:
getRepository in interface Wagon

getSessionEventSupport

public SessionEventSupport getSessionEventSupport()

getTransfer

protected void getTransfer(Resource resource,
                           File destination,
                           InputStream input)
            throws TransferFailedException

getTransfer

protected void getTransfer(Resource resource,
                           File destination,
                           InputStream input,
                           boolean closeInput,
                           int maxSize)
            throws TransferFailedException

getTransferEventSupport

public TransferEventSupport getTransferEventSupport()

hasSessionListener

public boolean hasSessionListener(SessionListener listener)
Specified by:
hasSessionListener in interface Wagon

hasTransferListener

public boolean hasTransferListener(TransferListener listener)
Specified by:
hasTransferListener in interface Wagon

isInteractive

public boolean isInteractive()
Specified by:
isInteractive in interface Wagon

postProcessListeners

protected void postProcessListeners(Resource resource,
                                    File source,
                                    int requestType)
            throws TransferFailedException
This method is used if you are not streaming the transfer, to make sure any listeners dependent on state (eg checksum observers) succeed.

putDirectory

public void putDirectory(File sourceDirectory,
                         String destinationDirectory)
            throws TransferFailedException,
                   ResourceDoesNotExistException,
                   AuthorizationException
Copy a directory from local system to remote
Specified by:
putDirectory in interface Wagon
Parameters:
sourceDirectory - the local directory
destinationDirectory - the remote destination

putTransfer

protected void putTransfer(Resource resource,
                           File source,
                           OutputStream output,
                           boolean closeOutput)
            throws TransferFailedException

removeSessionListener

public void removeSessionListener(SessionListener listener)
Specified by:
removeSessionListener in interface Wagon

removeTransferListener

public void removeTransferListener(TransferListener listener)
Specified by:
removeTransferListener in interface Wagon

resourceExists

public boolean resourceExists(String resourceName)
            throws TransferFailedException,
                   AuthorizationException
Check if a remote resource exists
Specified by:
resourceExists in interface Wagon
Parameters:
resourceName -
Returns:
whether the resource exists or not
Throws:
TransferFailedException - if there's an error trying to access the remote side
AuthorizationException - if not authorized to verify the existence of the resource

setInteractive

public void setInteractive(boolean interactive)
Specified by:
setInteractive in interface Wagon

setSessionEventSupport

public void setSessionEventSupport(SessionEventSupport sessionEventSupport)

setTransferEventSupport

public void setTransferEventSupport(TransferEventSupport transferEventSupport)

supportsDirectoryCopy

public boolean supportsDirectoryCopy()
Specified by:
supportsDirectoryCopy in interface Wagon
Returns:
whether if this wagon supports directory operations

transfer

protected void transfer(Resource resource,
                        File source,
                        OutputStream output,
                        boolean closeOutput)
            throws TransferFailedException
Write from File to OutputStream
Parameters:
resource - resource to transfer
source - file to read from
output - output stream
closeOutput - whether the output stream should be closed or not
Since:
1.0-beta-1

transfer

protected void transfer(Resource resource,
                        InputStream input,
                        OutputStream output,
                        int requestType)
            throws IOException
Write from InputStream to OutputStream. Equivalent to transfer(Resource,InputStream,OutputStream,int,int) with a maxSize equal to Integer.MAX_VALUE
Parameters:
resource - resource to transfer
input - input stream
output - output stream
requestType - one of TransferEvent.REQUEST_GET or TransferEvent.REQUEST_PUT

transfer

protected void transfer(Resource resource,
                        InputStream input,
                        OutputStream output,
                        int requestType,
                        int maxSize)
            throws IOException
Write from InputStream to OutputStream. Equivalent to transfer(Resource,InputStream,OutputStream,int,int) with a maxSize equal to Integer.MAX_VALUE
Parameters:
resource - resource to transfer
input - input stream
output - output stream
requestType - one of TransferEvent.REQUEST_GET or TransferEvent.REQUEST_PUT
maxSize - size of the buffer