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.