VFSLib Release Notes
Changes in version VFSLib 1.6.7 Build 59 (2015-12-28)
Changes in version VFSLib 1.6.6 Build 57 (2015-04-15)
Changes in version VFSLib 1.6.5 Build 56 (2014-06-20)
Changes in version VFSLib 1.6.4 Build 52 (2014-02-04)
Changes in version VFSLib 1.6.3 Build 46 (2013-10-24)
Changes in version VFSLib 1.6.2 Build 37 (2013-10-13)
Changes in version VFSLib 1.6.1 Build 33 (2013-10-04)
VFSLib 1.6.7 Build 59 (2015-12-28)
Easier Deployment of VFSLib Examples
The VFSLib may now be executed much easier. Additional resources have been added to the
"example" subdirectory of the ZIP/TGZ library archives. This includes an Ant environment
so that there is no need to install Ant separately on your system. Two separate scripts
"runexamples.bat" for Windows and "runexamples.sh" for Linux/UNIX systems have been added.
The necessary steps to run the examples are documented in the new "example/README.txt" file.
Please keep in mind that Java 1.6 or newer must be installed and available in the execution
PATH to run the examples.
Due to a bug reported with Ant (see NetBeans [Bug 200790]) the VFSLib examples
have been modified so that this issue can be circumvented.
Links: | Visit the NetBeans website for issue [Bug 200790] |
Type: | Enhanced functionality |
Categories: | Deployment, Documentation |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
VFSLib 1.6.6 Build 57 (2015-04-15)
Applied Patch For Bug In Commons VFS [VFS-228]
Previous versions of VFSLib were shipped with the original Commons VFS JAR library named
commons-vfs-2.0.jar. VFSLib is now packaged with a substitute file named vfs-2.0.jar
indicating that it's not the original Commons library but a self-compiled one.
The original Commons VFS library threw ClassNotFoundException's for DefaultLocalFileProvider
which could cause a program based on VFS to crash. For example this happened often if VFS was
used by Ant tasks which perform a specific class loading internally. In order to solve this
VFS bug a patch had to be applied. Then the patched library had to be compiled freshly.
All developers using VFSLib up to version 1.6.5 and planning to update to 1.6.6 or later
should also remove the old commons-vfs-2.0.jar and add the new vfs-2.0.jar library instead.
Links: | Visit the Apache.org website for issue [VFS-228] |
Type: | Fixed bug |
Categories: | Core, Compatibility, Applications, Libraries |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
Network URL Address Parsing Not Functional
The network connections dialog provides the functionality to specify network connections
to reach servers via protocols like FTP/SFTP. Due to a bug in the standard Java API (URI class!)
the parsing of fully specified URLs like ftp://kernel.org:21/pub went wrong. The port (here: ":21")
was not recognized properly as separate part of the URL address but as part of the server name
(here: "kernel.org:21"). This caused the other methods like getPort() returning false values,
of course also components like the connection dialog then displayed these wrong values.
This behaviour has been fixed so that network URI addresses may be edited properly.
Type: | Fixed bug |
Categories: | Core, Applications |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
License Not Valid
Due to a timezone issue found in the license engine used by Leisenfels both license types
for evaluation and commercial have been rejected in certain situations. For example if a
U.S. customer obtained a license at 10 p.m. then the license was generated being valid
from the next day. The license could not be used immediately in these rare cases.
This behaviour has been fixed so that licenses are valid from one day before the license
is obtained.
Type: | Fixed bug |
Categories: | Deployment |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
VFSLib 1.6.5 Build 56 (2014-06-20)
Setting Upload Content Length Only When Required
Some time ago a new method for setting the S3 upload content length has been introduced to VFSLib
(see release note #11 written 2014-02-03). As this works perfectly for the Amazon S3 provider
this settings MUST NOT be used for SFTP connections when large files are being transferred.
For example if a 2 GB video file is to be transferred via SFTP then a 2 GB array is allocated
internally by the SFTP driver. Normally this leads to OutOfMemoryErrors of the Java VM which
then has to be terminated by force (e.g. using the Windows Task Manager).
To avoid this unwanted side effect programmatically the method VFSUtils.isContentLengthRequired()
has been added to VFSLib. It checks if the VFSLibConstants.ATTR_CONTENT_LENGTH attribute is
required for a given VFS network file. Currently only the Amazon S3 provider requires this attribute.
Programmers should modify existing code using the FileObject.getContent().setAttribute() method
as follows:
if (VFSUtils.isContentLengthRequired(url)) {
url.getContent().setAttribute(VFSLibConstants.ATTR_CONTENT_LENGTH, len);
}
Type: | Fixed bug |
Categories: | Compatibility, Provider Options |
Editions: | Amazon S3, Enterprise |
Stack Trace Due To Missing Scheme
The VFSConnection.getDefaultFileSystemOptions() method printed stack traces if a null scheme
has been passed as method parameter. Since VFSLib by design avoids printing unnecessary stack traces
this behaviour has been fixed (scheme is checked for null values).
The null scheme stack trace has been detected only on Linux systems so far.
Type: | Miscellaneous change |
Categories: | Compatibility |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
VFSLib 1.6.4 Build 52 (2014-02-04)
Open Amazon S3 Object Multiple Times
Due to a limitation in the Amazon S3 API a workaround has been implemented for the S3 provider so that a S3 FileObject may be opened multiple times. This is necessary for example if digests are calculated once for MD5 and for SHA-1 using multiple threads. The S3Object.getObjectContent() method returns a previous input stream if it has not been closed in the meantime. So if it is still in use the same reference is provided which produces application errors. The workaround clones the S3Object and lets the clone open the new input stream instead.
Type: | Fixed bug |
Categories: | Compatibility |
Editions: | Amazon S3, Enterprise |
Data Digester Now To Support VFSLib
The Data Digester software now is shipped with the current VFSLib component and therefore supports all file systems including Dropbox, Google Drive, and Amazon S3. Currently these features are only available for the Data Digester Enterprise Edition (EE) which comes with network support. Please download an installer appropriate for your computer. The software may be evaluated for 30 days. Please request an evaluation license which is possible also directly from the running application (Internet connection required).
Links: | Visit the Data Digester homepage |
Type: | Miscellaneous change |
Categories: | Applications, Download |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
Added Content Length For Uploads
As required by the Amazon S3 API the content length for uploads can now be specified.
If a file is uploaded to Amazon, Dropbox, or Google this is done with web requests.
This kind of transfer technique requires that prior to the transfer the overall length
of the transmitted data is specified.
All current providers have been modified the way that it is now possible to set the content
length easily. Before an upload output stream is requested with getContent().getOutputStream()
the length should be set with getContent().setAttribute(VFSLibConstants.ATTR_CONTENT_LENGTH, length).
If this attribute is not set for the cloud providers then uploading small files may work
but uploading large files > 10 MB will certainly fail. Please check out the modified
example classes for details.
Type: | Fixed bug |
Categories: | Compatibility, Documentation, Provider Options |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
Updated To Dropbox 1.7.6
The current VFSLib is now shipped with Dropbox for Java API version 1.7.6.
The access token is now only valid for the Java session it has been requested for. For the
ExampleDropbox.java and ExampleDropboxOptimized.java classes this means that the -token
parameter is not longer supported. The access token MUST be requested each time the script
is restarted, copied from the Dropbox website and inserted into the dialog input field.
This is a little less convenient but surely the token security benefits from this change.
As for the earlier Dropbox versions also the new one has some limitations e.g. when uploading
large files. Uploading files using the Java API is still slow compared to the Dropbox desktop
application. According to forum posts at Dropbox this is the programmed behaviour. For large
files users should use the Dropbox desktop client or switch to other cloud file system providers
without this kind of limitation.
Links: | Visit the Dropbox homepage |
Type: | Miscellaneous change |
Categories: | Libraries, Compatibility, Deployment |
Editions: | Dropbox, Enterprise |
New Option "Use bucket URI"
For the Amazon S3 provider a new protocol option has been added: "Use bucket URI".
By default the host name aws.amazon.com ist used to assemble the URI for Amazon S3
connections as for the traditional file systems like FTP/SFTP. Since bucket names
are globally unique IDs by design it is now possible to configure VFSLib so that
URIs like s3://This email address is being protected from spambots. You need JavaScript enabled to view it. can be used internally.
This is only a display feature which does not influence the internal behaviour of
the Amazon S3 provider that comes with VFSLib. It may be changed at runtime.
Type: | New feature |
Categories: | Provider Options |
Editions: | Amazon S3, Enterprise |
Save Token/Secret Key Feature Fixed
Like for the traditional VFSLib file systems also for the new cloud file systems
Dropbox, Google Drive, and Amazon S3 it's now possible to save secret options like
the access token or secret key. Applications like Data Digester provide a check box flag
to configure the program behaviour for the configured network connections.
The previous version of VFSLib always stored the secret options, the flag did not work.
This has now been fixed so that VFSLib applications may now "forget" about secret options.
Remember that the secret options are still remembered while the application is running
but not if it is restarted and the save flag has been disabled before.
Type: | Fixed bug |
Categories: | Provider Options |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
File System Options Validation
The file system options to be configured with the various FileSystemConfigBuilder classes
are now checked for proper required values. For Dropbox and Google Drive the access token
must be configured to operate properly. For Amazon S3 the access key ID, the secret key, and
the bucket name are required options now.
Applications like Data Digester will show some indicator if one of these options are missing
for the configured network connections.
Links: | Visit the Data Digester homepage |
Type: | Enhanced functionality |
Categories: | Provider Options |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
Obfuscation Issue
If VFSLib is used as part of an obfuscated (scrambled) application then the providers for
Dropbox, Google Drive, and Amazon S3 could not be activated. This happens although a proper
commercial or evaluation license has been installed before.
The log file shows entries like "VFSLIB-0015: Dropbox functions require a Dropbox Edition or Enterprise Edition".
If you use ProGuard for obfuscation then add something like the following to your scripts:
Type: | Miscellaneous change |
Categories: | Compatibility, Deployment |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
VFSLib 1.6.3 Build 46 (2013-10-24)
Enterprise Edition Available
While all VFSLib providers can be obtained separately the Enterprise Edition has now been released. The Enterprise Edition includes all providers currently available (Dropbox, Google Drive, Amazon S3). Please check out the attractive license pricing and volume discount offers.
Type: | New feature |
Categories: | Release management, Download |
Editions: | Dropbox, Google Drive, Amazon S3, Enterprise |
VFSLib Now to Support Amazon S3 (Amazon S3 Edition)
As third cloud file system provider the Amazon S3 Edition has been added to VFSLib.
Please register a valid Amazon Web Services (AWS) account first. All necessary parameters
for the Amazon S3 provider including the keys are provided by the Amazon S3 system.
Like the Dropbox provider also the Amazon S3 provider supports all standard VFS operation
as there are creating files and folders, renaming, deleting, downloading, uploading etc.
Remember that versioning is not supported by the original Commons VFS and so VFSLib doesn't.
Links: | Visit the Amazon S3 homepage |
Type: | New feature |
Categories: | Release management, Download |
Editions: | Amazon S3 |
VFSLib 1.6.2 Build 37 (2013-10-13)
Added Google Drive To VFSLib (Google Drive Edition)
As second file system provider Google Drive has been added to VFSLib.
Developers need a Google Drive account and their application setup on the Google website. Once an
application token has been generated (you must allow your application to access your Google Drive
files first) then the VFSLib Google Drive provider can be configured with a few steps.
Like the Dropbox provider also the Google Drive provider supports all standard VFS operation
as there are creating files and folders, renaming, deleting, downloading, uploading etc.
Remember that versioning is not supported by the original Commons VFS and so VFSLib doesn't.
Links: | Visit the Google Drive homepage |
Type: | New feature |
Categories: | Release management, Download |
Editions: | Google Drive |
Bugs in Java Examples Fixed
Some minor bugs found in the VFSLib Java examples have been fixed for the current release:
* ExampleDropbox: for loop uses iterated variable instead of fileobj (List a Dropbox folder)
Type: | Fixed bug |
Categories: | Documentation |
Editions: | Dropbox, Google Drive |
VFSLib 1.6.1 Build 33 (2013-10-04)
First Official VFSLib (Dropbox Edition)
The release of the first official VFSLib for Dropbox (Dropbox Edition, aka DBE) is now likely
to be published in the next few weeks. This initial version comes with a VFS provider implementing
the functionality to access the Dropbox network file system.
Developers need a Dropbox account and their application setup on the Dropbox website. Once an
application token has been generated (you must allow your application to access your Dropbox
files first) then the VFSLib Dropbox provider can be configured with a few steps.
The first available VFSLib edition will be the Dropbox Edition (DBE), additional VFS providers
e.g. to access Amazon S3 will be released in Q4/2013. Finally an Enterprise Edition will be
published which contains all available VFSLib providers for an attractive price.
Links: | Visit the Dropbox homepage |
Type: | New feature |
Categories: | Release management, Download |
Editions: | Dropbox |