Releases: wso2-extensions/esb-connector-file
4.0.23 Released!!
Fix file size increase when binary file is written to the output stream
4.0.22 Released!!
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!!
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!!
Guarantee backward compatibility with prior feature upgrade
4.0.19 Released!!
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!!
This release fixes an issue in the "listFiles" operation to avoid listing duplicate entries in the result.
4.0.17 Released!!
In this release we are fixing an issue occurring when un-deploy the file connector in Windows environment.
4.0.16 Released!!
4.0.15 Released!!
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!!
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>