Java News from Wednesday, July 12, 2006

The Open Group has submitted JSR-302, Safety Critical Java Technology, to the Java Community Process. According to the JSR,

The proposed specification will define those capabilities needed to use Java technology to create safety critical applications. This means that the features included will be a minimal set, with such specific characteristics as static resource allocation and usage, minimal temporal conflicts, and without dynamic loading, leading to the ability to validate implementations using a variety of standards, including DO-178B / ED-12B. It is further implied that the features chosen can be validated using formal models, schedulability analysis, and modified condition/decision coverage (MC/DC) analysis.

It is strongly intended that this specification will incorporate the existing Java technology paradigm maximally, subject to the need for application validation. For example, it must be possible to create applications with fully predetermined resource allocation as required by most safety critical standards. This implies, for example, that a garbage collector might not be usable under such standards, and that it might be inappropriate for components to be dynamically loaded. Such applications will likely require a transformation from Java bytecodes to target machine representation prior to certification.

It is expected that implementations of this specification will conform to an existing J2ME configuration and profile such as CDC & Foundation Profile, or CLDC & Information Module Profile. Additionally, it is expected that this specification will identify a mechanism for implementations to be constructed for deployment without classes and methods not used by the application so that the DO-178B dead code elimination requirements can be supported. The specification will specifically identify all classes and methods on which a safety critical application can depend at runtime.

Comments are due by July 24.


Christian Schlichtherle has released TrueZip 5.1.7 and 6.1, a drop-in replacement for the java's file I/O classes.

TrueZIP is a Java based Virtual File System (VFS) which enables an application to access ZIP, TAR and all derivative archive types (JAR, TAR.GZ, ...) transparently as if they were just directories in a file's path name. This works recursively, so an archive file may even be enclosed in another archive file. TrueZIP 6 features an extensible "plug-in driver" architecture (actually a Service Provider Interface), so it is expected that support for other archive types will be added over time (contributors wanted: ARJ, RAR anyone?).

The TrueZIP API provides drop-in replacements for the well-known classes File, FileInputStream and FileOutputStream. This design makes TrueZIP very easy to use: All that is required to archive-enable a legacy application is to add a few import statements for the package de.schlichtherle.io, add some type casts where required, and add a final call to File.update() once before the client application terminates in order to force an update of all archive files which have been used and require an update.

TrueZip is published under the Apache 2.0 license.