GNU Classpath "95% and counting" 0.19 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.
Some highlights of changes in this release (more extensive list below):
Much more efficient painting for large Free Swing GUIs. Improved
accessibility support. HttpURLConnection rewrite. Official CORBA
VMCID assigned. Start of RMI over IIOP support. Qt4 support for
OS-X. Much improved Free Swing Metal theme. Free Swing Demo includes
theme switcher example (Metal, Ocean, GNU). JBoss now starts up and
Jonas testsuite passes for 95%. Support for the javax.sound.midi
framework and experimental DSSI and ALSA service providers. Early
version of the popular StAX API. Now has 96% coverage of 1.4 API.
This is the first time we also have a pre-release of our 1.5 generics
work. classpath-0.19-generics contains a version of the core library
that uses the new 1.5 language features such as generics and
enumerations. ECJ and JamVM are known to support the generics release
out of the box. 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.
For this release we setup a Free Swing Test Application page
http://developer.classpath.org/mediation/FreeSwingTestApps
Please see that page for showcases of applications that work with this
release and to help test other applications.
It is also the first release that has GNU Classpath promotion banners.
http://developer.classpath.org/mediation/ClasspathBanners
Please feel free to add them to your project pages if your project is
known to work with GNU Classpath or just to promote the project.
32 people actively contributed to this release and made
787 CVS commits during the last two months of development
(excluding the generics branch work). diffstat since 0.18:
1158 files changed, 93916 insertions(+), 36407 deletions(-)
More details about the various changes and contributions below.
A full list of bug reports fixed for this release can be found at:
http://gcc.gnu.org/bugzilla/buglist.cgi?product=classpath&target_milestone=0.19
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 34.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 33.381 out of 34.262 Mauve core library tests.
Conformance reports for the included jaxp support can be found in the
doc/README.jaxp file.
GNU Classpath 0.19 can be downloaded from
ftp://ftp.gnu.org/pub/gnu/classpath/
or one of the ftp.gnu.org mirrors
http://www.gnu.org/order/ftp.html
File: classpath-0.19.tar.gz
MD5sum: 0b93b1c1dd3d33ef7fb6a47dbb29e41d
SHA1sum: 43d499e8b83e04a7fc4a1d4d301638c5cec6c679
File: classpath-0.19-generics.tar.gz (EXPERIMENTAL)
MD5sum: 4c0ccc91a147af4010d19f48dbf441b3
SHA1sum: b2a2b968523b3af35cd7e44bcc4f940621b3ca66
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.19 (Nov 2, 2005)
(See the ChangeLog file for a full list of changes.)
* The Swing RepaintManager has been reworked for more efficient
painting, especially for large GUIs.
* The Swing layout manager OverlayLayout has been implemented, the
BoxLayout has been rewritten to make use of the SizeRequirements
utility class and caching for more efficient layout.
* Improved accessibility support for Swing.
* The java.net.HttpURLConnection implementation no longer buffers the
entire response body in memory. This means that response bodies
larger than available memory can now be handled.
* The Andrew Watson, Vice President and Technical Director of the
Object Management Group, has officially assigned us 20 bit Vendor
Minor Code Id: 0x47430 ("GC") that will mark remote Classpath -
specific system exceptions. Obtaining the VMCID means that GNU
Classpath now is a recogniseable type of node in a highly
interoperable CORBA world.
* Classpath now includes the first working draft to support the RMI
over IIOP protocol. The current implementation is capable for remote
invocations, transferring various Serializables and Externalizables
via RMI-IIOP protocol. It can flatten graphs and, at least for the
simple cases, is interoperable with Sun's jdk 1.5.
* Qt4 configury switches for OS-X. Additional to the --enable-qt-peer,
OS-X users with a Qt4 installation can build the qt-peers with the
argument --with-qt4dir=.
* Significant progress has been made in the implementation of the
javax.swing.plaf.metal.* package, with most UI delegates in a
working state now. Please test this with your own applications and
provide feedback that will help us to improve this package.
* The GUI demo (gnu.classpath.examples.swing.Demo) has been extended
to highlight various features in our free-swing implementation. And
includes a look and feel switcher (Metal default, Ocean or GNU).
Runtime interface changes:
* Changed implementation of VMClassLoader.getPackage(s) : new method
VMClassLoader.getBootPackages should be implemented by the vm, and
sould return a string array of boot package names ("java.lang",
"java.net", ...). Feedback from vm implementors for usability and
relevance of the getBootPackages method would be greatly
appreciated.
New Untested/Disabled Features:
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
--enable-gtk-cairo.
* QT4 AWT peers, enable by giving configure --enable-qt-peer.
The following people helped with this release:
Andreas Tobler
Qt4 support for Darwin/OSX, Graphics2D support, gtk+ updates.
Andrew Haley
Serialization and URLClassLoader fixes.
Andrew John Hughes
Serialization fixes, Properties XML support and generic branch work.
Anthony Balkissoon
Lots of Free Swing additions.
Anthony Green
MIDI framework, ALSA and DSSI providers.
Audrius Meskauskas
Lots of new CORBA and RMI work and bugfixes.
Casey Marshall
Crypto algorithm fixes.
Chris Burdess
StAX and dom xml:id support.
Christian Thalinger
Configuration and VM inteface fixes and CACAO integration.
Dalibor Topic
Build cleanups and Kaffe integration.
David Daney
HttpURLConnection rewrite and improvements.
David Gilbert
Lots of Free Swing and metal theme additions.
David Lichteblau
JCL support library global/local reference cleanups.
Gael Thomas
VMClassLoader boot packages support sugestions.
Guilhem Lavaux
Configuration, thread and channel fixes and Kaffe integration.
Jan Roehrich
BasicTreeUI fixes.
Jeroen Frijters
Serialization fixes, better Proxy support, bug fixes and IKVM
integration.
Julian Scheid
Documentation updates and gjdoc support.
Keith Seitz
JDWP support.
Lillian Angel
Lots of Free Swing additions.
Mark Wielaard
Bug fixes, packaging and release management
Martin Cordova
Suggestions for better SocketTimeoutException.
Michael Koch
Configuration fixes.
Nicolas Geoffray
VMClassLoader and AccessController improvements.
Paul Jenner
Better -Werror support.
Robert Schuster
XML and URL, AWT and Free Swing bug fixes
Roman Kennke
Lots of Free Swing additions.
Santiago Gala
AccessControlContext fixes.
Stuart Ballard
RMI constant fixes.
Sven de Marothy
BMP imageio support, CSS and TextLayout fixes.
Thomas Fitzsimmons
Lots of imageio framework additions, lots of AWT and Free Swing bug
fixes.
Tom Tromey
Eclipse integration, generics work, lots of bug fixes and gcj
integration.
We would also like to thank the numerous bug reporters and testers!
--
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html
Join the community at http://planet.classpath.org/