Class FileTransferConnectionTemplate

  • All Implemented Interfaces:
    org.ikasan.connector.listener.TransactionCommitFailureObserverable

    public class FileTransferConnectionTemplate
    extends java.lang.Object
    implements org.ikasan.connector.listener.TransactionCommitFailureObserverable
    Test 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)
      Constructor
      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)
      Constructor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addListener​(org.ikasan.connector.listener.TransactionCommitFailureListener listener)  
      protected void addListenersToConnection​(org.ikasan.connector.BaseFileTransferConnection connection)
      Helper method to add the listeners to the connection.
      static void closeConnection​(javax.resource.cci.Connection connection)
      Closes the connection, suppressing any exceptions
      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)
      Delivering an InputStream
      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)
      Test Delivering a payload
      java.lang.Object execute​(org.ikasan.client.ConnectionCallback action)
      Execute the action specified by the given action object with a Connection.
      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)
      Test the getDiscoveredFile
      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
      void housekeep​(int maxRows, int ageOfFiles)
      Housekeep the FileFilter table
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • listeners

        protected java.util.List<org.ikasan.connector.listener.TransactionCommitFailureListener> listeners
    • 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.ResourceException
        Constructor
        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.ResourceException
        Constructor
        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.ResourceException
        Test Delivering a payload
        Parameters:
        payload - - The payload to deliver
        outputDir - - The directory to place the file in
        outputTargets - - The Map of targets to deliver the file to
        overwrite - - Overwrite existing files flag
        renameExtension - - The extension for the temp file rename
        checksumDelivered - - Flag for whether we perform checksumming
        unzip - - Flag for whether we unzip the delivered file
        cleanup - - 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.ResourceException
        Delivering an InputStream
        Parameters:
        inputStream - - The 'file'
        fileName - - The name of the file
        outputDir - - The directory to place the file in
        overwrite - - Overwrite existing files flag
        renameExtension - - The extension for the temp file rename
        checksumDelivered - - Flag for whether we perform checksumming
        unzip - - Flag for whether we unzip the delivered file
        createParentDirectory - -
        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.ResourceException
        Test the getDiscoveredFile
        Parameters:
        sourceDir - - The directory to get the file from
        filenamePattern - - The pattern to search on
        renameOnSuccess - - Whether we rename a file on successful delivery
        renameOnSuccessExtension - - The extension to rename to
        moveOnSuccess - - Whether we move the file on successful delivery
        moveOnSuccessNewPath - - Where we move the file to
        chunking - - Whether we are chunking enabled
        chunkSize - - The size of the chunks
        checksum - - Whether we checksum the pickup
        minAge - - The minimum age the file has to be in order to be picked up
        destructive - - Whether we pick up destructively
        filterDuplicates - - Whether we filter duplicates
        filterOnFilename - - Whether we filter duplicates based on file name
        filterOnLastModifedDate - - Whether we filter duplicates based on file name
        chronological - - Whether we pickup files in age order
        isRecursive - - Whether we pickup files and all subdirectories
        provideRelativePath - - 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.ResourceException
        Housekeep the FileFilter table
        Parameters:
        maxRows - Max rows the housekeeper will deal with
        ageOfFiles - 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:
        addListener in interface org.ikasan.connector.listener.TransactionCommitFailureObserverable
      • execute

        public java.lang.Object execute​(org.ikasan.client.ConnectionCallback action)
                                 throws javax.resource.ResourceException
        Execute 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