Package org.ikasan.endpoint.ftp
Class FileTransferConnectionTemplate
- java.lang.Object
-
- org.ikasan.endpoint.ftp.FileTransferConnectionTemplate
-
- All Implemented Interfaces:
org.ikasan.connector.listener.TransactionCommitFailureObserverable
public class FileTransferConnectionTemplate extends java.lang.Object implements org.ikasan.connector.listener.TransactionCommitFailureObserverableTest the FileTRansferConnectionTempalte class- Author:
- Ikasan Development Team
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<org.ikasan.connector.listener.TransactionCommitFailureListener>listeners
-
Constructor Summary
Constructors Constructor Description FileTransferConnectionTemplate(javax.resource.cci.ConnectionSpec connectionSpec, org.ikasan.connector.base.command.TransactionalResourceCommandDAO transactionalResourceCommandDAO, org.ikasan.connector.util.chunking.model.dao.FileChunkDao fileChunkDao, org.ikasan.connector.basefiletransfer.outbound.persistence.BaseFileTransferDao baseFileTransferDao, org.springframework.transaction.jta.JtaTransactionManager transactionManager)ConstructorFileTransferConnectionTemplate(javax.resource.cci.ConnectionSpec connectionSpec, org.ikasan.connector.base.command.TransactionalResourceCommandDAO transactionalResourceCommandDAO, org.ikasan.connector.util.chunking.model.dao.FileChunkDao fileChunkDao, org.ikasan.connector.basefiletransfer.outbound.persistence.BaseFileTransferDao baseFileTransferDao, org.springframework.transaction.jta.JtaTransactionManager transactionManager, com.google.common.cache.Cache<java.lang.String,java.lang.Boolean> duplicatesFileCache)Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddListener(org.ikasan.connector.listener.TransactionCommitFailureListener listener)protected voidaddListenersToConnection(org.ikasan.connector.BaseFileTransferConnection connection)Helper method to add the listeners to the connection.static voidcloseConnection(javax.resource.cci.Connection connection)Closes the connection, suppressing any exceptionsvoiddeliverInputStream(java.io.InputStream inputStream, java.lang.String fileName, java.lang.String outputDir, boolean overwrite, java.lang.String renameExtension, boolean checksumDelivered, boolean unzip, boolean createParentDirectory, java.lang.String tempFileName)Delivering an InputStreamvoiddeliverPayload(org.ikasan.filetransfer.Payload payload, java.lang.String outputDir, java.util.Map<java.lang.String,java.lang.String> outputTargets, boolean overwrite, java.lang.String renameExtension, boolean checksumDelivered, boolean unzip, boolean cleanup)Test Delivering a payloadjava.lang.Objectexecute(org.ikasan.client.ConnectionCallback action)Execute the action specified by the given action object with a Connection.org.ikasan.filetransfer.PayloadgetDiscoveredFile(java.lang.String sourceDir, java.lang.String filenamePattern, boolean renameOnSuccess, java.lang.String renameOnSuccessExtension, boolean moveOnSuccess, java.lang.String moveOnSuccessNewPath, boolean chunking, int chunkSize, boolean checksum, long minAge, boolean destructive, boolean filterDuplicates, boolean filterOnFilename, boolean filterOnLastModifedDate, boolean chronological, boolean isRecursive, boolean provideRelativePath)Test the getDiscoveredFileprotected org.ikasan.connector.base.journal.TransactionJournalgetTransactionJournal(org.ikasan.connector.base.command.TransactionalResourceCommandDAO transactionalResourceCommandDAO, org.ikasan.connector.util.chunking.model.dao.FileChunkDao fileChunkDao)Lazily instantiates the TransactionJournalvoidhousekeep(int maxRows, int ageOfFiles)Housekeep the FileFilter table
-
-
-
Constructor Detail
-
FileTransferConnectionTemplate
public FileTransferConnectionTemplate(javax.resource.cci.ConnectionSpec connectionSpec, org.ikasan.connector.base.command.TransactionalResourceCommandDAO transactionalResourceCommandDAO, org.ikasan.connector.util.chunking.model.dao.FileChunkDao fileChunkDao, org.ikasan.connector.basefiletransfer.outbound.persistence.BaseFileTransferDao baseFileTransferDao, org.springframework.transaction.jta.JtaTransactionManager transactionManager) throws javax.resource.ResourceExceptionConstructor- Parameters:
connectionSpec-transactionalResourceCommandDAO-fileChunkDao-baseFileTransferDao-transactionManager-- Throws:
javax.resource.ResourceException
-
FileTransferConnectionTemplate
public FileTransferConnectionTemplate(javax.resource.cci.ConnectionSpec connectionSpec, org.ikasan.connector.base.command.TransactionalResourceCommandDAO transactionalResourceCommandDAO, org.ikasan.connector.util.chunking.model.dao.FileChunkDao fileChunkDao, org.ikasan.connector.basefiletransfer.outbound.persistence.BaseFileTransferDao baseFileTransferDao, org.springframework.transaction.jta.JtaTransactionManager transactionManager, com.google.common.cache.Cache<java.lang.String,java.lang.Boolean> duplicatesFileCache) throws javax.resource.ResourceExceptionConstructor- Parameters:
connectionSpec-transactionalResourceCommandDAO-fileChunkDao-baseFileTransferDao-transactionManager-duplicatesFileCache-- Throws:
javax.resource.ResourceException
-
-
Method Detail
-
deliverPayload
public void deliverPayload(org.ikasan.filetransfer.Payload payload, java.lang.String outputDir, java.util.Map<java.lang.String,java.lang.String> outputTargets, boolean overwrite, java.lang.String renameExtension, boolean checksumDelivered, boolean unzip, boolean cleanup) throws javax.resource.ResourceExceptionTest Delivering a payload- Parameters:
payload- - The payload to deliveroutputDir- - The directory to place the file inoutputTargets- - The Map of targets to deliver the file tooverwrite- - Overwrite existing files flagrenameExtension- - The extension for the temp file renamechecksumDelivered- - Flag for whether we perform checksummingunzip- - Flag for whether we unzip the delivered filecleanup- - Cleanup txn journal flag- Throws:
javax.resource.ResourceException- - Exception if JCA connector fails
-
deliverInputStream
public void deliverInputStream(java.io.InputStream inputStream, java.lang.String fileName, java.lang.String outputDir, boolean overwrite, java.lang.String renameExtension, boolean checksumDelivered, boolean unzip, boolean createParentDirectory, java.lang.String tempFileName) throws javax.resource.ResourceExceptionDelivering an InputStream- Parameters:
inputStream- - The 'file'fileName- - The name of the fileoutputDir- - The directory to place the file inoverwrite- - Overwrite existing files flagrenameExtension- - The extension for the temp file renamechecksumDelivered- - Flag for whether we perform checksummingunzip- - Flag for whether we unzip the delivered filecreateParentDirectory- -tempFileName- -- Throws:
javax.resource.ResourceException- - Exception if JCA connector fails
-
getDiscoveredFile
public org.ikasan.filetransfer.Payload getDiscoveredFile(java.lang.String sourceDir, java.lang.String filenamePattern, boolean renameOnSuccess, java.lang.String renameOnSuccessExtension, boolean moveOnSuccess, java.lang.String moveOnSuccessNewPath, boolean chunking, int chunkSize, boolean checksum, long minAge, boolean destructive, boolean filterDuplicates, boolean filterOnFilename, boolean filterOnLastModifedDate, boolean chronological, boolean isRecursive, boolean provideRelativePath) throws javax.resource.ResourceExceptionTest the getDiscoveredFile- Parameters:
sourceDir- - The directory to get the file fromfilenamePattern- - The pattern to search onrenameOnSuccess- - Whether we rename a file on successful deliveryrenameOnSuccessExtension- - The extension to rename tomoveOnSuccess- - Whether we move the file on successful deliverymoveOnSuccessNewPath- - Where we move the file tochunking- - Whether we are chunking enabledchunkSize- - The size of the chunkschecksum- - Whether we checksum the pickupminAge- - The minimum age the file has to be in order to be picked updestructive- - Whether we pick up destructivelyfilterDuplicates- - Whether we filter duplicatesfilterOnFilename- - Whether we filter duplicates based on file namefilterOnLastModifedDate- - Whether we filter duplicates based on file namechronological- - Whether we pickup files in age orderisRecursive- - Whether we pickup files and all subdirectoriesprovideRelativePath- - Provide relative path of file in payload- Returns:
- The discovered file as a Payload
- Throws:
javax.resource.ResourceException- - Exception if the JCA connector fails
-
housekeep
public void housekeep(int maxRows, int ageOfFiles) throws javax.resource.ResourceExceptionHousekeep the FileFilter table- Parameters:
maxRows- Max rows the housekeeper will deal withageOfFiles- How old the files have to be in days to be considered for housekeeping- Throws:
javax.resource.ResourceException- - Exception if JCA connector fails
-
addListenersToConnection
protected void addListenersToConnection(org.ikasan.connector.BaseFileTransferConnection connection)
Helper method to add the listeners to the connection.- Parameters:
connection-
-
addListener
public void addListener(org.ikasan.connector.listener.TransactionCommitFailureListener listener)
- Specified by:
addListenerin interfaceorg.ikasan.connector.listener.TransactionCommitFailureObserverable
-
execute
public java.lang.Object execute(org.ikasan.client.ConnectionCallback action) throws javax.resource.ResourceExceptionExecute the action specified by the given action object with a Connection.- Parameters:
action- callback object that exposes the Connection- Returns:
- the result object from working with the Connection
- Throws:
javax.resource.ResourceException- if there is any problem
-
closeConnection
public static void closeConnection(javax.resource.cci.Connection connection)
Closes the connection, suppressing any exceptions- Parameters:
connection- - possibly null, not necessarily open
-
getTransactionJournal
protected org.ikasan.connector.base.journal.TransactionJournal getTransactionJournal(org.ikasan.connector.base.command.TransactionalResourceCommandDAO transactionalResourceCommandDAO, org.ikasan.connector.util.chunking.model.dao.FileChunkDao fileChunkDao)Lazily instantiates the TransactionJournal- Returns:
- TransactionJournal
-
-