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!



Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.

Copyright © 1999-2006 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: $Date: 2009/07/30 22:51:19 $ $Author: gnu_andrew $