#!wml --include=..

#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper

<lang:star:slice:>

<set-var last-modified-author="prr">

#include <include/macros.wml>

<header title="GNU Classpath 0.14 Announcement (2005-02-26)"> 
<pre>
"GNU Classpath delivers core libraries for upcoming GCC and Kaffe releases"

We are pleased to announce a new developer snapshot release of GNU Classpath.

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. This 0.14 release snapshot can be seen as the feature complete
base library that will be used in the upcoming GCC 4.0 (gcj) and Kaffe
1.1.5 runtimes, compilers and tools collections.

Developers wanting to have a look at the core library classes provided by
these upcoming releases can take a look at the new 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.
With this release generated documentation is provided through the new
GNU Classpath Tools gjdoc 0.7.x series. A large update of the documentation
generation framework for java source files used by the GNU project.
See http://developer.classpath.org/doc/.

One of the major focusses 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 more then 25.000 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. This release passes 25442 of the mauve core library tests.

The GNU Classpath developer recently held a conference during Fosdem.
This was a standing room event and provided lot of communication between
the GNU Classpath, Kaffe, GCJ, IKVM, Apache, java-gnome and Cacao hackers
and users. The presentations of this event have been publised and should
give a good overview of the current status and future plans of the project:
http://www.gnu.org/software/classpath/events/escape_fosdem05.html

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

ImageIO support through gdkpixbuf, lots of new nio character encoders
and decoders, fully automated class documentation generation, generic
VMStackWalker support for runtimes, lots of bug fixes, optimizations and
new swing support.

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 work and JEdit start up on GNU Classpath based runtimes.
To enable this support install the cairo 0.3.0 snapshot, configure
GNU Classpath with --enable-gtk-cairo and make sure the system
property gnu.java.awt.peer.gtk.Graphics=Graphics2D is set.

Not yet included is an implementation of Generic collection classes
and classes for other 1.5 language extensions.  Work on this is being
done on a special development branch that will be included in a future
GNU Classpath release when free runtimes, compilers and tools have all
been upgraded to support these new language features.

29 people actively contributed code to this release and made 232 CVS
commits during the last two months of development. diffstat since 0.13:
1189 files changed, 31388 insertions(+), 13744 deletions(-)
More details below.

GNU Classpath 0.14 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.14.tar.gz
MD5sum: 227beb20b927c042628539601c867614

Here are answers to some questions you might have about this project and
this release.

1). Who should use this software?

Although GNU Classpath is already capable of supporting many
applications written in the java programming language, this is a
development release. As such, there are still some unfinished
components, and some problems are to be expected. You should install it
if you are interested in GNU Classpath development or reporting bugs.
We appreciate both.

For end users we recommend to use one of the development environments
based on GNU Classpath which combine the core libraries with compilers
and other tools needed for creating applications and libraries.

    * GCC with GCJ  (http://gcc.gnu.org/java/)
    * Kaffe         (http://www.kaffe.org/)

2). What is required to build/install/run?

GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development
libraries (gtk+, libart and gdk-pixbuf). More information on the
precise version numbers for the tools and libraries can be found in
the INSTALL file.

You will also need a runtime environment. The following runtime
environments should work out of the box with GNU Classpath

    * JamVM         (http://jamvm.sourceforge.net/)
    * Jikes RVM     (http://www.ibm.com/developerworks/oss/jikesrvm/)
    * Kissme        (http://kissme.sourceforge.net/)

Note that these are just byte code execution runtimes. For development
of programs written in the java programming language you will also
need compilers and other tools for creating libraries and/or
executables (see question 1).

For other environments that might need modified version of the current
release see the README file.  A complete list of virtual machines and
compilers known to be based on GNU Classpath can be found at our
website: http://www.gnu.org/software/classpath/stories.html

2). What platforms are supported?

GNU/Linux and FreeBSD on x86 and powerpc are regularly tested by the
developers.  Many more architectures and platforms are supported.
Check the actual runtime you use together with GNU Classpath for
detailed information on the supported platforms.

5). Where do I go for more information?

The project home page with information on our mailing list can be
found at http://www.gnu.org/software/classpath/

A good overview of the current status can be found on the GNU Classpath
Escape The Java Trap event held at FOSDEM this year.
It includes reports and presentations on the current status and future
plans: http://www.gnu.org/software/classpath/events/escape-fosdem05.html

6). How do I extend the functionality of the core classes?

Besides combining GNU Classpath with the runtimes and compilers above
you might want to add support for additional encryption libraries and
algorithms as provided by GNU Crypto
(http://www.gnu.org/software/gnu-crypto/).  And for additional
extension libraries (mail, xml, activation, infobus, servlet) check
out GNU ClasspathX (http://www.gnu.org/software/classpathx).

Additional network protocol support is provided by a sub-project
called GNU Classpath Inetlib, an extension library to provide extra
network protocol support (ftp, finger, gopher) for GNU Classpath, but
it can also standalone to ease adding http, imap, pop3 and smtp client
support to applictions. Also distributed from
<ftp://ftp.gnu.org/gnu/classpath/>

The following projects extend the functionality of GNU Classpath
with additional algorithms, new core packages and tools.
All are released under GPL compatible licenses:

* Jessie: A free implementation of the JSSE. Secure Sockets Extension.
  http://www.nongnu.org/jessie/
* Tritonus: A implementation of the javax.sound API.
  http://www.tritonus.org/
* gcjwebplugin: A plugin for the execution of applets in web browsers.
  http://www.nongnu.org/gcjwebplugin/

Note that the above libraries may already be available in some platforms
that integrate GNU Classpath, such as in the Kaffe project.

6). What is new in this release?

New in release 0.14 (Feb 25, 2005)
(See the ChangeLog file for a full list of changes.)

* Character encoders and decoders have been added for:
  iso-8859-6 (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew),
  iso-8859-9 (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
  ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
  UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little Endian).
* Full documentation for all classes can be generated (again) by using
  the --with-gjdoc configure option.
* javax.awt.imageio support through gdkpixbuf.

Runtime interface changes:

* VMSecurityManager has been replaced by gnu.classpath.VMStackWalker.
  currentClassLoader() is no longer needed, and there are also two new
  methods with non-native implementations. VM implementors are encouraged
  to provide more efficient versions.
* VMRuntime.nativeLoad() now takes an additional ClassLoader parameter.

The following people helped with this release:

Andrew Haley (nio optimizations)
Andrew John Hughes (Locale, java.text fixes and generics work)
Anthony Green (rmi cleanup)
Archie Cobbs (Throwable simplification)
Audrius Meskauskas (Swing JComboBox, JTextArea, and Timer fixes)
Bryce McKinlay (serialization fixes)
C. Brian Jones (rmi cleanups)
Chris Burdess (Base64 fix, gnu.xml cleanups, http connection fixes)
Craig Black (native state library, and gtk+ awt peer fixes)
Dalibor Topic (PropertyAction cleanups, inner class and dead code cleanups)
David Gilbert (DefaultListModel, Font text transform fixes and documentation)
Graydon Hoare (Lots of GdkGraphics updates)
Ito Kazumitsu (nio charset provider, FileChannel and SimpleDateFormat fixes)
Jeroen Frijters (Serialization and Collator fixes)
Julian Scheid (UTF8 fix and lots of gjdoc work)
Mark Wielaard (JarFile, TimeZone, URLClassLoader, serialization and packaging)
Michael Koch (AWT Window and Checkbox fixes, code cleanup, LocalInformation
maintenance, checkstyle cleanups, swing and nio updates)
Olga Rodimina (Jtable updates)
Patrik Reali (Website maintenance)
Quentin Anciaux (Lots of new character encoders and decoders)
Ranjit Mathew (IdentityHashMap bug fix)
Robert Schuster (nio charset and ChannelReader implementations)
Roman Kennke (Better swing BasicLookAndFeel)
Rutger Ovidius (GNU security provider update)
Steven Augart (OpenBSD script fixes and stack walker documentation)
Sven de Marothy (Lots of Calendar and TimeZone fixes and SpinnerDateModel)
Thomas Fitzsimmons (Much awt gtk+ peer and Robot work)
Timo Lindfors (regex fixes)
Tom Tromey (generics work, classloader and xml fixes)
</pre>

<footer>


