We are proud to announce the release of GNU Classpath 0.92 Bling! Bling!

This is the first release that has a full graphics 2D implemenation
based on Cairo enabled by default. This enables the use of applications
like JEdit, FlickrBackup and JFreeChart out of the box. Screenshots of
CairoGraphics2D at http://www.jfree.org/jfreechart/samples-gnu.html

Also new in this release is the inclusion of an applet viewer
and plugin that can be embedded in webbrowsers or other applications.
It works on any platform supported by the various runtimes based on
GNU Classpath, including 64 bit architectures.

Some other highlights in this release (more extensive list below):

An alternative awt peer implementation based on Escher that uses the
X protocol directly. Various ImageIO providers for png, gif and bmp
images. Support for reading and writing midi files and reading .au
and .wav files have been added. Various tools and support classes
have been added for jar, native2ascii, serialver, keytool, jarsigner.
A GConf based util.peers backend has been added. Support for using
alternative root certificate authorities with the security and crypto
packages. Start of javax.management and runtime lang.managment
runtime support. NIO channels now support scatter-gather operations.

GNU Classpath, essential libraries for java, is a project to create
free core class libraries for use with runtimes, compilers and tools
for the java programming language.

The GNU Classpath developer snapshot releases are not directly aimed
at the end user but are meant to be integrated into larger development
platforms. For example the GCC (gcj) and Kaffe projects will use the
developer snapshots as a base for future versions. More projects based
on GNU Classpath: http://www.gnu.org/software/classpath/stories.html

Also released is classpath-generics-0.92 an experimental branch with
support for all the new 1.5 language features such as generics and
enumerations. ECJ, JamVM, IKVM and Cacao are known to support the
generics release. And you can use it to run Eclipse 3.1 with it to
develop programs that use the new 1.5 language and core library
additions. classpath-generics is a work in progress and not as
extensively tested as our regular releases. But please try it out if
you want to help us test the new 1.5 support of the core libraries.

The GNU Classpath developers site http://developer.classpath.org/
provides detailed information on how to start with helping the GNU
Classpath project and gives an overview of the core class library
packages currently provided. For each snapshot release generated
documentation is provided through the GNU Classpath Tools gjdoc
project. A documentation generation framework for java source
files used by the GNU project. Full documentation on the currently
implementated packages and classes can be found at:
http://developer.classpath.org/doc/

New in release 0.92 (Aug 9, 2006)
(See the ChangeLog file for a full list of changes.)

libjawtgnu.so has been renamed libjawt.so for binary compatibility.

libjawt.so should be installed in a VM-specific directory rather
than directly in /usr/lib. Proprietary VMs put their libjawt.so
implementations in VM-specific directories but search /usr/lib first.
If GNU Classpath's libjawt.so is installed in /usr/lib it will create
problems for people who use a proprietary VM to run AWT Native
Interface applications.

The GdkGraphics2D backend has been made the default. There is no

longer an explicit dependency on Cairo, the --enable-gtk-cairo
configure option is gone, and GTK 2.8 or higher is now required to
build the GTK peers.

implementation) have been added. So far it supports AWT 1.1 style
Graphics, image loading via ImageIO (PNG, GIF and BMP images in this
release), top level components as well as mouse and keyboard input.
It is capable of running many Swing applications. Graphics2D and
AWT widgets are not yet supported with this peer set.

GConf based util.peers backend (see the --enable-gconf-peer and

--enable-default-preferences-peer configure options).

Support for batch importing trusted certificates for use with ssl

connections (see script/import-cacerts.sh).

NIO scatter-gather channel support.

Runtime interface changes:

A new class, VMURLConnection, is used to implement

URLConnection.guessContentTypeFromStream. The reference
implementation uses libmagic (and falls back to doing nothing if
libmagic is not available).

The method gnu.java.io.PlatformHelper.toCanonicalForm() has been

replaced with a JNI implementation of VMFile.toCanonicalForm() for
GNU/Posix systems.

A new class, VMRuntimeMXBeanImpl, is used to implement

the low-level support of the runtime management bean.
VMs should use it to supply the input arguments and start
time of the VM. In addition, one of sun.boot.class.path
or java.boot.class.path should be defined by the VM to
support the optional boot class path access functionality.

The Unsafe class was moved back to the place expected by the JSR 166

reference implementation. We've also added a couple other new VM
classes to support the JSR 166 code -- sun.reflect.Reflection and
sun.reflect.misc.ReflectUtil.

Another new class, VMClassLoadingMXBeanImpl, is used to implement

the low-level support of the class loading management bean.
VMs need to supply it with information about how many classes
are currently loaded, how many have been unloaded and whether
verbose class loading output is on or off. Provision should also
be made for the latter to be toggled at runtime.

VMThreadMXBeanImpl is used to implement the low-level support

of the thread management bean. Providing this interface requires
providing a fair amount of information about threads, including
optional time and contention monitoring, and instances of the
new ThreadInfo class in java.lang.management. getState() has also
been added to the VMThread interface; this is required by the bean
as well as java.lang.Thread.

VMMemoryMXBeanImpl is used to implement the low-level support

of the memory management bean. Providing this interface requires
providing information about the levels of heap and non-heap memory,
and the number of objects eligible for garbage collection.

memory managers and garbage collectors maintained by the virtual
machine. These are used to create the beans by the ManagementFactory.

VMMemoryManagerMXBeanImpl and VMGarbageCollectorMXBeanImpl provide

low-level support for memory managers (including the specific subclass
of garbage collecting memory managers). The interfaces for these
require no more than enumerating the number of collections and the
time spent (for garbage collectors) and a relationship to the memory
pools (for all), along with a validity check.