Awake File Changelog

What's new in Awake File 3.1

Jan 26, 2016
  • This version drops Apache HttpClient for HTTP communications in favor of native JRE java.net.HttpUrlConnection.
  • We thus have rewritten our HTTP layer and did some performance optimization.
  • This version now supports HTTP compression. See org.kawanfw.commons.api.SessionParameters for configuration.
  • The org.kawanfw.commons.api.client.HttpProxy class has been removed, because it would limit proxy types support and acted only as a java.net.Proxy class wrapper, just adding cumbersome code. java.net.Proxy must now directly be used instead, and allows both HTTP and SOCKS proxy support. This is better/cleaner for code development and maintenance.
  • org.kawanfw.commons.api.client.HttpProtocolParameters was renamed to org.kawanfw.commons.api.client.SessionParameters. The old name was inaccurate. setCompressionOn(), setConnectTimeout() and setReadTimeout() have been added, see Javadoc and Tutorial. The methods referring to Apache HttpClient settings have been removed. setDownloadBufferSize() and setUploadBufferSize() have been removed: standard 4096 size is used.

New in Awake File 3.0 (Mar 27, 2015)

  • New features:
  • New client class RemoteSession replaces deprecated FileSession for session establishment.
  • New client class RemoteFile allows easy file method execution on remote files, with exactly same method signature and behavior as in java.io.File.
  • Example: RemoteFile.exists() will call a File.exists() on remote server and return the result.
  • New CommonsConfigurator concrete class SshAuthCommonsConfigurator allows zero-code (usernname, password) authentication. Authentication is done against the host SSH server with the login(username, password) method.
  • DefaultCommonsConfigurator.addSecretForAuthToken() has been enhanced and does not return null anymore. It returns now the concatenation of server specific values hard/impossible to guess by the client side.
  • New method RemoteSession.getRemoteJavaVersion() allows to retrieve the Java version of the servlet container from client side.
  • UrlSession has been deprecated: no real usage advantage over java.net.URLConnection.
  • Undocumented API package org.kawanfw.file.api.server.fileaction has been modified, renamed and is not any more visible.
  • FileSession has been deprecated:
  • session establishment is now to be done using RemoteSession class and operations on remote file using RemoteFile class.
  • FileSession has been retrofitted: session establishment internally uses new remoteSession class and file method calls internally use new RemoteFile class methods.
  • We have kept a 2.0 to 3.0 full upgrade compatibility by deprecating FileSession instead of removing the class (which is our standard policy): the existing code changes would be too heavy for existing 2.0 applications and would have discouraged
  • our users base to adopt/install this new version.
  • So, your previous 2.0 client code using FileSession will run without any modification. Same with server side.
  • Fixed bugs:
  • Server side would brutally interrupt the ServerFileManager servlet with a 500 code if a client called method FileSession.call() and the called method was missing some dependencies. This has been fixed: a clean ClassNotFoundException is now thrown.
  • Upgrading from previous version 2.0:
  • Binary compatible both on client and server side.
  • WARNING: client libraries must be redeployed because internal client/server protocol has been rewritten.

New in Awake File 2.0.2 (Feb 5, 2015)

  • Fixed bugs:
  • Client side classes RemoteInputStream & RemoteOutputStream called server side org.kawanfw.commons.api.server.util.Sha1 API. This could cause a problem when generating Android client side jar and other third parties client side jars, or when using obfuscation as documented. This has been fixed.
  • Misc:
  • Code refactor. Some commons classes where stored in org.kawanfw.file.*packages. They have been moved to org.kawanfw.commons.* packages.
  • Some Javadoc spelling errors have been fixed.

New in Awake File 2.0.1 (Jan 27, 2015)

  • Fixed bugs:
  • DefaultCommonsConfigurator.getConnection() could throw an unrecoverable NullPointerException if ServerFileManager servlet was tested before first client side call. This has been fixed.
  • UTF-8 character encoding was not always forced on server side. This has been fixed.

New in Awake File 2.0 (Jan 20, 2015)

  • New features:
  • New FileSession.rename method allows to rename files on the server.
  • New classes RemoteInputStream & RemoteOutputStream allow to use InputStream & OutputStream for file transfers when progress indicators are needed.
  • All file transfer operations have been internally retrofitted with new RemoteInputStream & RemoteOutputStream. They are now the core classes of the framework for file uploads & downloads.
  • Progress monitor helper interface TransferProgressManager and implementation class DefaultTransferProgressManager have thus been suppressed: they are not needed anymore as RemoteInputStream & RemoteOutputStream allow easy implementation of progress indicators. See Tutorial & included examples.
  • HttpTransferInterruptedException is suppressed (InterruptedException should be throwned when an InputStream/OutputStream read/write is cancelled by the progress monitor.
  • Uses now Google Gson version 2.3.1.

New in Awake File 1.5 (Aug 13, 2014)

  • New features:
  • Root package name has been changed from "org.awakefw" to "org.kawanfw".
  • APIs names change. Classes names have been shortened in sake of implicity and the "Awake" word has been removed from all classes and methods.
  • Uses new 3.3.2 version of Apache Commons Lang.
  • Uses new 1.1.3 version of Apache Commons Logging.
  • Fixed bugs:
  • In some cases, SSL/TLS url wtarting with "https://" could not be used.

New in Awake File 1.4 (Apr 24, 2014)

  • New features:
  • File chunking is now supported for both upload & download.
  • Files are now chunked when downloaded with AwakeFileSession.download().
  • Default chunk length is 100 Mb. Chunking allows to download files with no size limit.
  • Awake FILE now supports recovery for large files upload and download.
  • Methods in AwakeFileSession now throw SocketException to be cleaner.
  • This has no impact on calling/user code.
  • Thrown exceptions are better described in Tutorial and include SocketException and HttpTransferInterruptedException.

New in Awake File 1.3.3b (Apr 17, 2014)

  • Fixed bugs:
  • Jars contained example code that could cause potential conflict.
  • The example code has been removed.

New in Awake File 1.3.3 (Apr 15, 2014)

  • New features:
  • Client side is now always repeatable. HttpProtocolParameters.setRepeatable(boolean repeatable) is now deprecated and does nothing. Client side is always repeatable for 2 reasons: a) execution is faster, b) it's safer with proxies and with slow or overloaded networks.
  • It is now possible to define the number of times the HttpRequest should be retried after a recoverable exception during execution. See HttpProtocolParameters.setRetryCount(int retryCount).

New in Awake File 1.3.2 (Apr 10, 2014)

  • New features:
  • Malformed response coming from server side, aka not starting with SEND_OK or SEND_FAILED, were always reported as an user configuration failure (URL not corresponding to an Awake servlet).
  • This was not always true, as the server error message could appear after a communication problem, a proxy failure, etc. The new message is cleaner, complete, give details about possible errors and displays the URL for easier debug.

New in Awake File 1.3.1 (Apr 4, 2014)

  • New features:
  • Proxy authentication is done once per session when using a proxy.
  • This allows 25% speed gain.
  • It is possible to force client side to be repeatable. Default behavio is non repeatable, except when using a proxy.
  • Fixed bugs:
  • File upload was not repeatable when using a proxy.
  • Upload thus could fail with some proxies. This has been fixed and file upload is now always repeatable when using a proxy.

New in Awake File 1.3 (Feb 11, 2014)

  • New features:
  • Files are now chunked when uploaded with AwakeFileSession.upload().
  • Default chunk length is 100 Mb. Chunking allows to upload files with no size limit.
  • Client AwakeFileSession & AwakeUrl API classes are not anymore marked final. This will allow to stub or Mock client API classes for Unit tests.
  • Misc:
  • Javadoc corrections.

New in Awake File 1.2.5 (Jan 7, 2014)

  • New features:
  • DefaultAwakeCommonsConfigurator.getConnection() Exception messages are more precise on client side if there is a DataSource configuration error in jdbc/awake-default Resource.
  • Misc:
  • Javadoc corrections.
  • Product name is now Awake FILE.

New in Awake File 1.2.4 (Dec 19, 2013)

  • New features:
  • New AwakeCommonsConfigurator methods getIPsWhitelist() & getIPsBlacklist().
  • AwakeCommonsConfigurator.getBannedIPs() is now deprecated and to be replaced by
  • AwakeCommonsConfigurator.getIPsBlacklist().

New in Awake File 1.2.3 (Oct 18, 2013)

  • New features:
  • Better security: java.io.tmpdir is not anymore used on server side for files upload/download.
  • Uses new 1.3 version of Apache Commons Fileupload.
  • Uses new 4.2.5 version of Apache HttpClient.
  • Javadoc has been cleaned/updated for future Awake SQL version.
  • Deprecated Awake Pool classes have been removed.
  • Upgrading from previous version 1.2.2:
  • Client side behavior is unchanged and does need to be redeployed.
  • Binary compatible both on client and server side: you don't need to recompile your source code.

New in Awake File 1.2.2 (Apr 22, 2013)

  • Fixed bugs:
  • The API AwakeFileSession.getVersion() would return an incorrect value. This has been fixed.
  • Miscellaneous Javadoc bugs have been fixed.
  • Upgrading from previous version 1.2.1:
  • Client side behavior is unchanged and does need to be redeployed.
  • Binary compatible both on client and server side: you don't need to recompile your source code.

New in Awake File 1.2.1 (Jan 28, 2013)

  • New features:
  • The default connection pool mechanism is now the Tomcat JDBC Connection Pool. It's embedded and works with other non-Tomcat servlet containers.
  • The code has been refactored for clean code separation on client and server side.
  • Fixed bugs:
  • There was a bug in ServerUserException that could truncate server error messages. This has been fixed.
  • Upgrading from previous version 1.2:
  • Client side behavior is unchanged and does need to be redeployed.
  • Binary compatible both on client and server side: you don't need to recompile your source code.

New in Awake File 1.2 (Oct 24, 2012)

  • New features:
  • Communication protocol between client and server has been rewritten using fast JSON.simple for most data exchange (instead of Google GSon).
  • Fixed bugs:
  • Authentication Token was not always unique due to a bug. This has been fixed.
  • Upgrading from previous version 1.1.1:
  • Because communication protocol has been changed: client side needs to be re-deployed. (Previous client side 1.1.1 will not work with new server side 1.2).
  • Binary compatible both on client and server side: you don't need to recompile your source code.

New in Awake File 1.1.1 (Aug 17, 2012)

  • New features:
  • Using Awake connection pool mechanism, it's now possible to define the maximum time in seconds a Connection can be checked out before being recycled. See org.awakefw.commons.api.server.AwakeDataSource Javadoc.
  • The log file used for Awake connection pool mechanism may be updated in append mode. See .awakefw.commons.api.server.AwakeDataSource Javadoc.
  • MessageDisplayer has been moved from org.awakefw.file.api.util to org.awakefw.file.test.util.
  • Upgrading from previous version 1.1:
  • Client side behavior is unchanged and does need to be redeployed.
  • Binary compatible both on client and server side: you don't need to recompile your source code.

New in Awake File 1.1 (Aug 1, 2012)

  • New features:
  • Android is now supported on the client side with a dedicated packaging.
  • Source code had complete rewriting & refactoring for android compatibility.

New in Awake File 1.0.10 (Jun 26, 2012)

  • Fixed bugs:
  • AwakeFileSession.length() would always return 0 on existing files with special characters. This has been fixed.