|| ||Mark Wielaard <mark-AT-klomp.org>|
|| ||ANN: GNU Classpath 0.20 released|
|| ||Fri, 13 Jan 2006 18:00:45 +0100|
|| ||devjam-AT-developer.classpath.org, harmony-dev-AT-incubator.apache.org|
GNU Classpath 0.20 released
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
Some highlights of changes in this release (more extensive list below):
New StAX pull parser and SAX-over-StAX driver. Full XMLEncoder
implementation. The packages javax.sound.sampled, javax.print.attribute
and javax.print.event have been implemented. Lots of new datatransfer,
print, swing and swing.text work. Performance improvements in the
painting/layout mechanism. Additional 1.5 support, including (separate)
generic branch release. SecurityManager cleanups and start of review
of all Permission checks. Buildable on cygwin. Fully buildable as
"in-workspace" library-plus-vm inside (native) Eclipse. Real world
Free Swing and CORBA example added.
GNU Classpath 0.20 also comes in a "generic" version.
classpath-0.20-generics contains a version of the core library
that uses 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 should be able 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.
(*) There is one additional VM interface needed for the VMClassLoader
static final Class defineClassWithTransformers(ClassLoader loader,
String name, byte data, int offset, int len, ProtectionDomain pd)
Which is used for the new java.management.instrumentation support.
See the VM Integration Guide for more details:
Thanks to a donation of Berkeley Signal Inc GNU Classpath now has an
official autobuilder machine which is used for quality assurance,
regression testing, conformance reports and for publishing continous
snapshots. The machine can be reached as http://builder.classpath.org/
40 people actively contributed to this release and made
605 CVS commits during the last two months of development
(excluding the generics branch work). diffstat since 0.19:
617 files changed, 89622 insertions(+), 37478 deletions(-)
More details about the various changes and contributions below.
A full list of bug reports fixed for this release can be found at:
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:
For more information about the project see also:
- GNU Classpath home page:
- GNU Classpath and Friends meeting (Feb 25/26, Brussels, Fosdem):
- Developer information (wiki):
- Full class documentation
- GNU Classpath hackers:
- Autobuilder, current build status, build snapshots:
- Application test pages (wiki)
- GNU Classpath hacking with Eclipse (wiki)
- GNU Classpath promotion banners:
This release depends on gtk+ 2.4 for AWT support. But gtk+ 2.6 or
higher is recommended. Included, but not activated by default in this
release is a Graphics2D implementation based on the Cairo Graphics
framework (http://www.cairographics.org). Enabling this makes programs
like JFreeChart and JEdit start up on GNU Classpath based runtimes.
To enable this support install the cairo 0.5.x snapshot, configure GNU
Classpath with --enable-gtk-cairo.
One of the major focuses of the GNU Classpath project is expanding and
using the Mauve test suite for Compatibility, Completeness and
Correctness checking. Various groups around GNU Classpath collaborate
on the free software Mauve test suite which contains around 36.000
core library tests. Mauve has various modules for testing core class
library implementations, byte code verifiers, source to byte code and
native code compiler tests. Mauve also contains the Wonka visual test
suite and the Jacks Compiler Killer Suite.
See for more information: http://www.sourceware.org/mauve/
This release passes 35534 out of 36255 Mauve core library tests.
Conformance reports for the included jaxp support can be found in the
GNU Classpath 0.20 can be downloaded from
or one of the ftp.gnu.org mirrors
File: classpath-0.20-generics.tar.gz (EXPERIMENTAL)
New in release 0.20 (Jan 13, 2006)
(See the ChangeLog file for a full list of changes.)
* New StAX pull parser and SAX-over-StAX driver. Lots of DOM, SAX/StAX,
XPath and XSLT improvements. Support for XInclude and XML Base added.
Conformance is now regularly tested against various test-suites at
http://builder.classpath.org/xml/ See also doc/README.jaxp.
* Full beans XMLEncoder implementation.
* javax.sound.sampled implementation.
* javax.print.attribute and javax.print.event implementated.
* Lots of new datatransfer, print swing and swing.text work and optimization.
* Additional 1.5 support. Including new (separate) generic branch release.
* SecurityManager cleanups and start of review of all Permission checks
(includes adding lots of new checks to the Mauve test-suite).
* Buildable on cygwin.
* Fully buildable as "in-workspace" library-plus-vm inside (native) Eclipse
* Full example that shows a real world CORBA and Free Swing implementation.
Runtime interface changes:
* New method VMStackWalker.getClassLoader() was added to avoid an infinite
loop between getCallingClassLoader() and Class.getClassLoader().
* The included fdlibm implementation has seen several cleanups to handle
new architectures and namespacing issues (in particular for ppc, darwin
and non-C99 compilers). Please double check any arithmetic test against
* The gnu.java.net.Plain[Datagram]Socket implementations have been
turned into VM reference classes with JNI/Posix implementations.
The following new features are included, but not ready for
production yet. They are explicitly disabled and not supported. But
if you want to help with the development of these new features we
are interested in feedback. You will have to explicitly enable them
to try them out (and they will most likely contain bugs). If you are
interested in any of these then please join the mailing-list and
follow development in CVS.
* Cairo Gtk+ Graphics2D support, enabled by giving configure
* QT4 AWT peers, enable by giving configure --enable-qt-peer.
The following people helped with this release:
Jar work and Jonas fixes
Andrew John Hughes
1.5 generics language work
Free Swing work
New VMStackWalker work and JCVM integration
Free CORBA work and various Free Swing fixes
Dom fixes and OpenOffice fixes
XML GNU JAXP work
Various fixes, 64bit work and Cacao integration
Build cleanups and Kaffe integration
Free Swing work
Mysaifu Windows CE port and bug reports
Securitymanager and Permission work
fdlibm cleanups, performance work and Kaffe integration
Regex, text and character conversion support
SecurityManager, collections and IKVM integration
Free Swing Timer work
Free Swing work
Bug fixes, packaging and release management
1.5 Class Instrumentation work
Installation and cygwin work
Configuration and Gentoo integration work
Raif S. Naffah
Security work and Eclipse integration
XMLEncoder and beans work
Free Swing and AWT work, VM interface
Sven de Marothy
Print and GTK+ work
Free Swing and AWT work
Eclipse, gcj and gcjx integration
javax.print and friends
We would also like to thank the numerous bug reporters and testers!
Escape the Java Trap with GNU Classpath!
Join the community at http://planet.classpath.org/
to post comments)