org.apache.maven.wagon
Class AbstractWagon

java.lang.Object
  extended by org.apache.maven.wagon.AbstractWagon
All Implemented Interfaces:
Wagon
Direct Known Subclasses:
StreamWagon

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  AuthenticationInfo authenticationInfo
           
protected static int DEFAULT_BUFFER_SIZE
           
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
 
Constructor Summary
AbstractWagon()
           
 
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(java.io.File destination)
           
 void createZip(java.util.List files, java.io.File zipName, java.io.File basedir)
           
 void disconnect()
           
protected  void fireGetCompleted(Resource resource, java.io.File localFile)
           
protected  void fireGetInitiated(Resource resource, java.io.File localFile)
           
protected  void fireGetStarted(Resource resource, java.io.File localFile)
           
protected  void firePutCompleted(Resource resource, java.io.File localFile)
           
protected  void firePutInitiated(Resource resource, java.io.File localFile)
           
protected  void firePutStarted(Resource resource, java.io.File localFile)
           
protected  void fireSessionConnectionRefused()
           
protected  void fireSessionDebug(java.lang.String message)
           
protected  void fireSessionDisconnected()
           
protected  void fireSessionDisconnecting()
           
protected  void fireSessionError(java.lang.Exception exception)
           
protected  void fireSessionLoggedIn()
           
protected  void fireSessionLoggedOff()
           
protected  void fireSessionOpened()
           
protected  void fireSessionOpening()
           
protected  void fireTransferDebug(java.lang.String message)
           
protected  void fireTransferError(Resource resource, java.lang.Exception e, int requestType)
           
protected  void fireTransferProgress(TransferEvent transferEvent, byte[] buffer, int n)
           
 AuthenticationInfo getAuthenticationInfo()
           
 java.util.List getFileList(java.lang.String destinationDirectory)
           Returns a List of strings naming the files and directories in the directory denoted by this abstract pathname.
protected static java.lang.String getPath(java.lang.String basedir, java.lang.String dir)
           
 ProxyInfo getProxyInfo()
           
 Repository getRepository()
           
 SessionEventSupport getSessionEventSupport()
           
protected  void getTransfer(Resource resource, java.io.File destination, java.io.InputStream input)
           
protected  void getTransfer(Resource resource, java.io.File destination, java.io.InputStream input, boolean closeInput, int maxSize)
           
 TransferEventSupport getTransferEventSupport()
           
 boolean hasSessionListener(SessionListener listener)
           
 boolean hasTransferListener(TransferListener listener)
           
 boolean isInteractive()
           
protected  void postProcessListeners(Resource resource, java.io.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(java.io.File sourceDirectory, java.lang.String destinationDirectory)
          Copy a directory from local system to remote
protected  void putTransfer(Resource resource, java.io.File source, java.io.OutputStream output, boolean closeOutput)
           
 void removeSessionListener(SessionListener listener)
           
 void removeTransferListener(TransferListener listener)
           
 boolean resourceExists(java.lang.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, java.io.File source, java.io.OutputStream output, boolean closeOutput)
          Write from File to OutputStream
protected  void transfer(Resource resource, java.io.InputStream input, java.io.OutputStream output, int requestType)
          Write from InputStream to OutputStream.
protected  void transfer(Resource resource, java.io.InputStream input, java.io.OutputStream output, int requestType, int maxSize)
          Write from InputStream to OutputStream.
private  void writeZipEntry(java.util.zip.ZipOutputStream jar, java.io.File source, java.lang.String entryName)
           
 
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.Wagon
get, getIfNewer, openConnection, put
 

Field Detail

DEFAULT_BUFFER_SIZE

protected static final int DEFAULT_BUFFER_SIZE
See Also:
Constant Field Values

repository

protected Repository repository

sessionEventSupport

protected SessionEventSupport sessionEventSupport

transferEventSupport

protected TransferEventSupport transferEventSupport

proxyInfo

protected ProxyInfo proxyInfo

authenticationInfo

protected AuthenticationInfo authenticationInfo

interactive

protected boolean interactive
Constructor Detail

AbstractWagon

public AbstractWagon()
Method Detail

getRepository

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

getProxyInfo

public ProxyInfo getProxyInfo()

getAuthenticationInfo

public AuthenticationInfo getAuthenticationInfo()

connect

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

connect

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

connect

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

connect

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

disconnect

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

closeConnection

protected abstract void closeConnection()
                                 throws ConnectionException
Throws:
ConnectionException

createParentDirectories

protected void createParentDirectories(java.io.File destination)
                                throws TransferFailedException
Throws:
TransferFailedException

getTransfer

protected void getTransfer(Resource resource,
                           java.io.File destination,
                           java.io.InputStream input)
                    throws TransferFailedException
Throws:
TransferFailedException

getTransfer

protected void getTransfer(Resource resource,
                           java.io.File destination,
                           java.io.InputStream input,
                           boolean closeInput,
                           int maxSize)
                    throws TransferFailedException
Throws:
TransferFailedException

putTransfer

protected void putTransfer(Resource resource,
                           java.io.File source,
                           java.io.OutputStream output,
                           boolean closeOutput)
                    throws TransferFailedException
Throws:
TransferFailedException

transfer

protected void transfer(Resource resource,
                        java.io.File source,
                        java.io.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
Throws:
TransferFailedException
Since:
1.0-beta-1

transfer

protected void transfer(Resource resource,
                        java.io.InputStream input,
                        java.io.OutputStream output,
                        int requestType)
                 throws java.io.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
Throws:
java.io.IOException

transfer

protected void transfer(Resource resource,
                        java.io.InputStream input,
                        java.io.OutputStream output,
                        int requestType,
                        int maxSize)
                 throws java.io.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
Throws:
java.io.IOException

fireTransferProgress

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

fireGetCompleted

protected void fireGetCompleted(Resource resource,
                                java.io.File localFile)

fireGetStarted

protected void fireGetStarted(Resource resource,
                              java.io.File localFile)

fireGetInitiated

protected void fireGetInitiated(Resource resource,
                                java.io.File localFile)

firePutInitiated

protected void firePutInitiated(Resource resource,
                                java.io.File localFile)

firePutCompleted

protected void firePutCompleted(Resource resource,
                                java.io.File localFile)

firePutStarted

protected void firePutStarted(Resource resource,
                              java.io.File localFile)

fireSessionDisconnected

protected void fireSessionDisconnected()

fireSessionDisconnecting

protected void fireSessionDisconnecting()

fireSessionLoggedIn

protected void fireSessionLoggedIn()

fireSessionLoggedOff

protected void fireSessionLoggedOff()

fireSessionOpened

protected void fireSessionOpened()

fireSessionOpening

protected void fireSessionOpening()

fireSessionConnectionRefused

protected void fireSessionConnectionRefused()

fireSessionError

protected void fireSessionError(java.lang.Exception exception)

fireTransferDebug

protected void fireTransferDebug(java.lang.String message)

fireSessionDebug

protected void fireSessionDebug(java.lang.String message)

hasTransferListener

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

addTransferListener

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

removeTransferListener

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

addSessionListener

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

hasSessionListener

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

removeSessionListener

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

fireTransferError

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

getSessionEventSupport

public SessionEventSupport getSessionEventSupport()

setSessionEventSupport

public void setSessionEventSupport(SessionEventSupport sessionEventSupport)

getTransferEventSupport

public TransferEventSupport getTransferEventSupport()

setTransferEventSupport

public void setTransferEventSupport(TransferEventSupport transferEventSupport)

postProcessListeners

protected void postProcessListeners(Resource resource,
                                    java.io.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.

Throws:
TransferFailedException

putDirectory

public void putDirectory(java.io.File sourceDirectory,
                         java.lang.String destinationDirectory)
                  throws TransferFailedException,
                         ResourceDoesNotExistException,
                         AuthorizationException
Description copied from interface: Wagon
Copy a directory from local system to remote

Specified by:
putDirectory in interface Wagon
Parameters:
sourceDirectory - the local directory
destinationDirectory - the remote destination
Throws:
TransferFailedException
ResourceDoesNotExistException
AuthorizationException

supportsDirectoryCopy

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

createZip

public void createZip(java.util.List files,
                      java.io.File zipName,
                      java.io.File basedir)
               throws java.io.IOException
Throws:
java.io.IOException

writeZipEntry

private void writeZipEntry(java.util.zip.ZipOutputStream jar,
                           java.io.File source,
                           java.lang.String entryName)
                    throws java.io.IOException
Throws:
java.io.IOException

getPath

protected static java.lang.String getPath(java.lang.String basedir,
                                          java.lang.String dir)

isInteractive

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

setInteractive

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

getFileList

public java.util.List getFileList(java.lang.String destinationDirectory)
                           throws TransferFailedException,
                                  ResourceDoesNotExistException,
                                  AuthorizationException
Description copied from interface: Wagon

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

resourceExists

public boolean resourceExists(java.lang.String resourceName)
                       throws TransferFailedException,
                              AuthorizationException
Description copied from interface: Wagon
Check if a remote resource exists

Specified by:
resourceExists in interface Wagon
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