Releases: waarp/Waarp-All
Waarp All Fix regressions 3.3.1 (2020-02-17)
Fixes:
- Rest V1 responses fix
- Allow back negative ports for hosts (client)
- Fix missing WaarpPassword in various -with-dependency.jar
Waarp (All) 3.3.0 (2020-01-18)
Remember, this version is now the current release trend for all Waarp Modules, previously being split.
This release includes some evolutions and new functionalities:
Resume:
- FileMonitor can detect file changed while it was already validated.
- Enhance check connection and add retry
- Output requests of transfer (submit/direct single/multiple) include now additional informations
- Improve re-usability of DAO model within R66
Detail
Evolutions
- Add check on changed file
Once a file is detected as legal to be sent, it is prepared for transfer and will
be no more reused, until it is first deleted then recreated.
Since some issues arized while a new file replaced the old one, which is a wrong
way to use the FileMonitor, since there is no garanty of the previous transfer
(which might therefore end in error dur to mismatch file from out and in), a new
option is proposed: -ignoreAlreadyUsed (to false by default)
Once the file is validated for transfer, the file is now taken into account however later on
if its modification time and hash is changing.
Once the modification is over, the file is reproposed to the R66 monitor
The semantic is therefore changed by default but should
not make any difference on correct usage (which is: not replacing a file not yet sent,
using a post-action to delete or move the original file for instance).
Reverting to previous semantic is simple: set -ignoreAlreadyUsed to true.
- Fix: If no connection, retry is enhanced
While transfer might be in error (no connexion), Waarp R66
allow to retry after some delay (delayCommand in millisecond) the send.
- If the transfer is in error or unknown, it is ignored, except if no connection is detected.
- If the transfer is on going or done totally with no error, it will not be restarted.
- If the source file is removed, the corresponding task is stopped in error with file not found error.
- Output Requests of transfer include now additional informations:
- Centralized in AbstractTransfer
- In addition: Id of the transfer, internal error code byte, original filename, final filename
- Improve re-usability of DAO model within R66
New feature
-
Waarp Http prototype support for end users through Browser
- Usage of Resumable.js javascript library from http://www.resumablejs.com/
- Usage of jquery.FileDownload.js javascript library from https://github.com/johnculviner/jquery.fileDownload
- Creation of prototype of module Waarp Http
- Prototype using servlets for both Upload (using URI+Body or Multipart) and Download
Pre, Post or Error tasks are executed as if the file was transfered directly using
Waarp R66, on server side only. - On Upload:
- the sha256 can be computed on Browser side and checked against on server
side, as in Waarp R66. - Except last chunk, response using POST is 201. Last chunk response using POST is 200.
- For GET, if resumable file in Waarp is known and current chunk also, response is 200,
else response is 404. - In case of any error, response is 500.
- the sha256 can be computed on Browser side and checked against on server
- On Download:
- the sha256 is computed by Waarp Web Server then returned to client, while client
can check on its own the correct SHA256 (scripts as example) - Download is a normal download, by chunk if the servlet allows it
- A special service (using HEAD) can allow to check if the download is really finished
(as it can take long to download huge file): answear is 200 for end, 202 for on going,
404 as unknown (but maybe not immediately available) - In case of any error, response is 500
- the sha256 is computed by Waarp Web Server then returned to client, while client
- Prototype using servlets for both Upload (using URI+Body or Multipart) and Download
This is only a prototype yet. Some extra works might be needed to get a generic support
without changing current code (mainly in servlet itself).
However, this could be used as a base, using the generated jar, to be included
in a war with correct servlet or other ways to interact with the browser
javascript and end user. In particular:
- Create the authentication step for the end user
-
Currently the HttpAuthentDefault use the user and crypted key in the Javascript
One might change this by adding a specific authentication step and then pass a
credentials according to CORS using the withCredentials option of Resumable.js.
In order to do so, create a specific HttpAuthent implementation that you set in the
web.xml configuration file to replace the default one.
-
- Add the possibility to choose between various rules
- The listing of availables files is out of scope, since it is application centric
Additional fixes
- Add test on FtpArgs
- Fix missing tests on GatewayFTP (wrong .gitgnore)
- DAO tests: improve speed on database configuration using as much as possible memory instead of disk
- Dependencies upgrade
Major release of Waarp modules
This version is a major version for all Waarp Modules, previously being split in:
- Waarp R66(http://waarp.github.com/WaarpR66)
- Waarp Gateway FTP (R66 linked)(http://waarp.github.com/WaarpGatewayFtp)
- Waarp Digest(http://waarp.github.com/WaarpDigest)
- Waarp Common(http://waarp.github.com/WaarpCommon)
- Waarp Exec(http://waarp.github.com/WaarpExec)
- Waarp Snmp(http://waarp.github.com/WaarpSnmp)
- Waarp Proxy R66(http://waarp.github.com/WaarpProxyR66)
- Waarp R66 Client GUI(http://waarp.github.com/WaarpR66Gui)
- Waarp FTP(http://waarp.github.com/WaarpFtp)
- Waarp Gateway Kernel (R66 linked) http://waarp.github.com/WaarpGatewayKernel)
- Waarp Thrift (R66 linked)(http://waarp.github.com/WaarpThrift)
- Waarp FTP Client (Gateway and R66 linked)(http://waarp.github.com/WaarpFtpClient)
- Waarp Password Gui(http://waarp.github.com/WaarpPassword)
- Waarp XmlEditor(http://waarp.github.com/WaarpXmlEditor)
- Waarp WaarpAdministrator (R66 linked)(http://waarp.github.com/WaarpAdministrator)
Note however the following modules are in end of life and will be replaced by other softwares:
- Waarp Password Gui
- Waarp Administrator
- Waarp XmlEditor
Resume
This major release contains in resume the following:
- Regroup all Waarp’s module into one project
- Major Fixes and Improvements (memory, threads, lock, security leaks or performances)
- Support of TLS 1.2 (through native Netty support)
- Ensure Java6 compatibility: target is JDK6 but build and tests need JDK8 (extra shaded jar are located into /lib as a local repository)
- Junits massive introduction
- DAO final work
- Clean code and remove deprecated
Details
All
- Fix await on Netty Future and R66Future
- Fix Bootstrap (deprecation of 2 thread groups)
- Remove dead code
- Effort to remove duplicate codes
- Clean dependencies, according to Java 6 compatibility
- Change to Guava where possible
- Fix various coding issues
- Add Junits
- Improve performances
- Fix threads usage (about 2 to 3 times less)
- Fix memory leaks
- Usage of Shaded external project to be compatible with Java 6
- Suppress Version in all modules by only one org.waarp.common.utility.Version
Digest
- Fix SecureRandom for Windows (Sun provider) and Linux (urandom)
- Add support for TLS 1.2 using Native Netty Uber jar, but reverting to standard of JRE if not possible
Common
- Add ConcurrentUtility.newConcurrentSet() utility (deprecation from Netty)
- Clean WaarpFuture
- Fix XML reading (compatible with reformat)
- Create GUID and IntegerUUID implementations (new global transfer uid and current localchannel uuid) (removal of deprecated UUID)
- Fix WaarpShutdownHook exit issue
- Add ThreadLocalRandom for Java 6
- Remove PassThrough implementation (never used)
- Add -Dwaarp.database.connection.max to specify the maximum number of connections to use
FTP
- Add XSITE DIGEST and XDIGEST for all Digests supported by Waarp
R66
- Fix Business request
- Add a specific file for Version of protocol (stick to 3.1.0)
- Fix multiplex handling, not any more through LocalChannel
- OWASP Security fixes
- Fix bad request for Commander
- Fix thread number for InternalRunner and Commander adapted to a maximum of 1000 and runnerThread and current number of allowed tasks to submit
- Cleaner definition of R66FiniteDualStates
- Fix Rest V2 on Host and Rule
- Fix Database connections consumptions
- Add specific IT scenario tests, including long one (-DIT_LONG_TEST=true)
- Final work and fix on DAO
- Change warn to error for executeUpdate with 0 result (except DELETE/DELETEALL)
- Removal of DbValue usage: (and fix associated REST services)
- DbConfiguration/Limit/LimitDAO
- DbHostAuth/Host/HostDAO
- DbHostConfiguration/Business/DBBusinessDAO
- DbMultipleMonitor/MultipleMonitor/DBMultipleMonitorDAO
- DbRule/Rule/DBRuleDAO
- DbTaskRunner/Transfer/DBTransferDAO
- Clean DbAdmin usage
- Fix MySQL and relative for Timestamp fields