Awake File Changelog

What's 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.

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 14, 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. This has been fixed.
  • Please note that old API classes and method names have not been deprecated,
  • but suppressed in order to keep a clean and uncluttered API.
  • Upgrading from previous version:
  • Not binary compatible both on client and server side: you need need to change and recompile your source code.
  • WARNING: client libraries must be redeployed because internal client/server protocol has been modified.

New in Awake File 1.4 (Apr 23, 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. See Tutorial for how to and examples.
  • 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 23, 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 behavior is non repeatable, except when using a proxy. See org.awakefw.commons.api.client.HttpProtocolParameters for usage.
  • 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.
  • Upgrading from previous version 1.3:
  • Binary compatible both on client and server side: you don't need to recompile your source code.

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.3 (Jun 7, 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.

New in Awake File 1.2.2 (Apr 13, 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 24, 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.

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 (Aug 1, 2012)

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

New in Awake File 1.0.9 (Aug 1, 2012)

  • New features:
  • DefaultAwakeCommonsConfigurator members are all static. This ensures Connection pools are not uselessly recreated when a new DefaultAwakeCommonsConfigurator() is called.
  • Fixed bugs:
  • The Connection of running SQL command would be automatically closed after 60 seconds.
  • This has been fixed.

New in Awake File 1.0.8 (Aug 1, 2012)

  • New features:
  • If AwakeCommonsConfigurator.forceSecureHttp returns true, the client side
  • automatically and silently updates the "http" scheme to "https" prior to
  • authentication (username & password will be sent using https).
  • It is now possible to use self-signed SSL Certificates on the server side.
  • See org.awakefw.commons.api.client.HttpProtocolParameters Javadoc.

New in Awake File 1.0.7 (Aug 1, 2012)

  • New features:
  • The AwakeFileConfigurator.runIfCallDisallowed method has been renamed
  • to runIfCallRefused (for coherence naming with Awake SQL).
  • Fixed bugs:
  • Java version was not tested in AwakeFileSession constructors.
  • This has been fixed.

New in Awake File 1.0.6 (Aug 1, 2012)

  • New features:
  • A complete diagnosis with full stack trace is available both on client and server side when an AwakeCommonsConfigurator or AwakeFileConfigurator throws an Exception.
  • Java version is tested in AwakeFileSession constructors.
  • The HTML encoding supports non-ASCII characters (allows support for all languages).
  • Fixed bugs:
  • The username was not always set when calling AwakeFileSession.call().

New in Awake File 1.0.5 (Aug 1, 2012)

  • New features:
  • Cleaner messages if user AwakeCommonsConfigurator implementation throws an Exception.
  • Cleaner and mored detailed messages on client side if JDBC Connection
  • can not be created on the server side.
  • The method Connection getConnection(String username, String password) has been removed from AwakeCommonsConfigurator. (Could never be used, this was a design mistake).
  • Misc Javadoc cleaning.

New in Awake File 1.0.4 (Aug 1, 2012)

  • New features:
  • Remove AwakeSecurityException and use instead java.lang.SecurityException.
  • Rename AwakeRemoteException to RemoteException.
  • Cleaner SQLException messages if server side can't build the Awake
  • Connection pool.
  • Architecture change: Awake Commons use it's own internal codec for
  • Base64InputStream & Base64OutputStream This prevent classloading
  • errors if Apache commons-codec-1.3.jar is in the classpath and supersedes the loading of commons-codec-1.4.jar

New in Awake File 1.0.3 (Aug 1, 2012)

  • Fixed bugs:
  • awake-file-1.0.2.jar contained many examples (due to a generation error).
  • Misc Javadoc errors.

New in Awake File 1.0.2 (Aug 1, 2012)

  • New features:
  • Source code is compatible with Java 7.
  • Java 6 binaries have been tested on Java 7 JRE on both client and server side.
  • The login security mechanism is configurable through the
  • AwakeCommonsConfigurator.computeAuthToken method.
  • A new org.awakefw.commons.api.server.util package has been added and contains utility classes for server side programming.