Skip to content

Releases: wso2-extensions/esb-connector-file

4.0.23 Released!!

29 Mar 07:49
f6387d6
Compare
Choose a tag to compare

Fix file size increase when binary file is written to the output stream

4.0.22 Released!!

26 Mar 10:35
9ed6aac
Compare
Choose a tag to compare

This release fixes following issues:

[1] When listing files by using FileFilterSelector to match a pattern, we have to re-iterate to get the folders since when a pattern exists folder.findFiles(), it does not return folders.

[2] Add fetchDirectoryContent operation to read the content of files in a given folder to a base64 encoded files stream list.

Parameter Name Element Type Description Default Value Required
Directory Path directoryPath String The path to the directory to list files - Yes
Matching Pattern matchingPattern String Pattern to match when listing files All Files No
Recursive recursive Boolean Whether to list files in sub-directories FALSE No
File Sort Attribute sortingAttribute String Sort files when listing Name Yes
Sort Order sortingOrder String File sorting order Ascending No
Property Name resultPropertyName String Name of property to add the list of base64 encoded files operation result - Yes

4.0.21 Released!!

18 Mar 03:15
b824ec9
Compare
Choose a tag to compare

file-connector-4.0.21.zip
Hard code ExhaustedAction to WHEN_EXHAUSTED_BLOCK to avoid drop connections when the pool is exhausted. And improve the validation check of SFTPConnectionFactory to drop invalid connections from the pool. Also, introduce following fine-tune params as well

maxActiveConnections :

The maximum number of objects (including both idle and active/borrowed) that can exist within the pool at the same time.

maxIdleConnections : 

The maximum number of objects that can remain idle in the pool, awaiting to be borrowed. Excess idle objects may be removed.

maxWaitTime : 

The maximum amount of time that the borrowObject() method should block before throwing an exception when the pool is exhausted and no objects are available.

evictionCheckInterval : 

The time interval between runs of the idle object evictor thread. This thread checks if idle objects need to be removed to free up resources or to ensure the pool's idle object count remains within configured limits.

minEvictionTime : 

The minimum amount of time an object must sit idle in the pool before it is eligible for eviction by the idle object evictor (assuming it's enabled).

exhaustedAction : 

Determines the action to take when the borrowObject() method is called, but the pool is exhausted (no available objects and maxActiveConnections has been reached)

Sample Config:

<localEntry key="SFT_CONN" xmlns="http://ws.apache.org/ns/synapse">
    <file.init>
        <connectionType>SFTP</connectionType>
        <password>***</password>
        <host>wso2.com</host>
        <fileLockScheme>Local</fileLockScheme>
        <port>22</port>
        <name>secret</name>
        <username>***</username>
        <maxActiveConnections>8</maxActiveConnections>
        <maxIdleConnections>8</maxIdleConnections>
        <maxWaitTime>100000</maxWaitTime>
        <evictionCheckInterval>5000</evictionCheckInterval>
        <minEvictionTime>45000</minEvictionTime-->
    </file.init>
</localEntry>

4.0.20 Released!!

05 Dec 03:44
3ede5eb
Compare
Choose a tag to compare

Guarantee backward compatibility with prior feature upgrade

4.0.19 Released!!

10 Nov 11:47
79c86e5
Compare
Choose a tag to compare

This release introduces an enhancement to the way we handle connections in relation to local entries.
A mechanism was established where the key associated with a localEntry is passed from the InvokeMediator
to the TemplateMediator then further propagated to the TemplateContext, ensuring that the specific localEntry is accessible from the connection handling code.

With the availability of the localEntry key, each active connection(dynamic/static) has been bound to its respective localEntry in a map.

So when a localEntry is undeployed or removed, this change is detected by the Synapse Observer, and the connections associated with that specific localEntry are invalidated.

4.0.18 Released!!

15 Sep 11:13
03ed47f
Compare
Choose a tag to compare

This release fixes an issue in the "listFiles" operation to avoid listing duplicate entries in the result.

4.0.17 Released!!

31 Aug 08:23
d6a48a2
Compare
Choose a tag to compare

In this release we are fixing an issue occurring when un-deploy the file connector in Windows environment.

4.0.16 Released!!

02 Aug 09:43
ae19126
Compare
Choose a tag to compare

Previously [file.write] append logic in file connector, we added the content in a new line rather than appending to the end of the file.
In this version we fixed that behaviour for both appending to the end of the file and appending to a given line number.

Screenshot 2023-08-02 at 15 11 22

4.0.15 Released!!

19 Jul 07:59
8f6ae18
Compare
Choose a tag to compare

Previously we were not considering FSO params when setting the values (only considering the query params) of FileConnectors. This give the support for FSO.
Also, give the ability to configure retryCount as well.

sample config:

<file.init>
        <ftpConnectionTimeout>700600</ftpConnectionTimeout>
        <retryCount>7</retryCount>
        <ftpSocketTimeout>500000</ftpSocketTimeout>
        <isPassive>true</isPassive>
        <workingDir>pub</workingDir>
        <connectionType>FTP</connectionType>
        <password>***</password>
        <userDirIsRoot>true</userDirIsRoot>
        <port>21</port>
        <host>***</host>
        <name>TwoFTP</name>
        <fileLockScheme>Local</fileLockScheme>
        <username>demo</username>
    </file.init>

4.0.14 Released!!

09 Feb 17:59
bda0872
Compare
Choose a tag to compare

With this what we changed in the design is that we have used a connection pool for each destination rather than the previously used single cached connection.

So when there is more concurrency the number of connections will increase and improve the performance.

Also, the main feature was to support "Aged Connection Timeout " for pools
where you can configure "sftpPoolConnectionAgedTimeout" property in init section and define a life span for each pool.
The difference here is with this timeout unlike other timeouts we could gracefully clear existing connections while handing over the new operations to another pool once the time out reached.

Sample config:

<file.init>
        <connectionType>SFTP</connectionType>
        <host>{$ctx:IP}</host>
        <fileLockScheme>Local</fileLockScheme>
        <!-- <userDirIsRoot>false</userDirIsRoot> -->
        <port>{$ctx:PORT}</port>
        <name>{$ctx:NAME}</name>
        <privateKeyFilePath>{$ctx:PATH}</privateKeyFilePath>
        <username>wso2support</username>
        <sftpConnectionTimeout>1000</sftpConnectionTimeout>
        <sftpSessionTimeout>2000</sftpSessionTimeout>
        <connectionPoolTimeout>300</connectionPoolTimeout>
        <sftpPoolConnectionAgedTimeout>60000</sftpPoolConnectionAgedTimeout>
    </file.init>