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!
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: