#!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.12 Announcement (2004-11-15)"> 
<pre>

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.

GNU Classpath 0.12 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.12.tar.gz
MD5sum: ce1f7fbe6f2e3b738bae3b46f01a9670

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

X.509 certificate path checking, signed JAR file support, full
java.awt.color implementation, java.beans 1.4 updates, improved
build process, better AWT focus management, much faster and better
fonts support, AWT Choice fixes, HTTP POST fixes, better collection
documentation, Calendar bug fixes, lookahead support for regular
expressions, jtree starts working and improved Eclipse 3 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 on GNU Classpath based runtimes.  Note that this release
needs a cairo CVS build.

[It is recommended that people wanting to experiment with the
Graphics2D implementation follow the instructions for building gcj
with jhbuild which automatically builds the latest CVS version of GCJ
and Cairo at http://people.redhat.com/fitzsim/gcj-and-jhbuild.html]

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.

GNU Classpath uses the Mauve test suite for Compatibility, Completeness
and Correctness checking.  This release passes 21245 of 21593 mauve
tests.
Free Software programs and libraries tested against this release are
Eclipse 3.0, JFreeChart (see above), gcjwebplugin and many other
programs,
libraries and applets.

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.  Since 0.12 there is also support for cygwin.
We plan to eventually support many others.

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
at FOSDEM'04 page which describes the last GNU Classpath hacker meeting.
It includes reports and presentations on the current status and future
plans: http://www.gnu.org/software/classpath/events/fosdem04.html

The following presentation given during the Desktop Developers
Conference shows how to integrate GNU Claspath and GCJ more with the
Free Desktop environments: http://people.redhat.com/fitzsim/ddc2004/

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 might already have been included in the
various platforms that also integrate GNU Classpath like done by the
Kaffe project.

6). What is new in this release?

New in release 0.12 (Nov 14, 2004)
(See the ChangeLog file for a full list of changes.)

* GNU Classpath's JAR implementation now has preliminary support for
  signed entries, for so called "signed JAR" file support. Signed JAR
  files are one of the key security features of managed runtimes, and
  allows code to run privileged given unforgeable proofs of identity.
* A much improved version of X.509 certificates has been added,
  including a robust certificate path checking algorithm. Also
  included is an implementation of the RSA signature scheme.
* Full java.awt.color implementation, with all standard ICC profiles,
  except for PhotoYCC color space.
* java.beans 1.4 updates and bug fixes.
* java.awt.image support updated to 1.4.
* Improved build process. Uses less memory with gcj and C code is
  buildable with -Werror on most platform. Please configure with
  --enable-Werror and report any remaining issues.
* Big-endian (PowerPC) fixes for native awt GTK+ peers.
* Checkstyle support, see scripts/checkstyle-config.xml.
* Better AWT focus management fro GTK+ peers.
* Much faster and better fonts support
  (for both gdk Graphics and cairo Graphics2D)
* AWT Choice fixes for hidden components.
* HTTP Connection Handler fixes for POST support.
* Much fuller collection documentation.
* Lots of Calendar bug fixes.
* More javax.imageio support.
* Better AWT Help MenuBar support.
* Lookahead support for regular expressions.
* Serialization object stream fixes for multiple ClassLoader scenarios.
* Swing TabbedPane, ColorChooser and ComboBox improvements.
* Start of JTree functionality.
* Improved Eclipse 3 support for GNU Classpath based runtimes.

Runtime interface Changes:

* New --enable-java-lang-system-explicit-initialization configuration
  option. (Warning, will be replaced in next release, please consult
  the mailinglist.)
* The reference implementation of VMClassLoader has default
  implementations for getResource(s) and provides support for a new
  default getSystemClassLoader implementation.

The following people helped with this release:

Andreas Tobler (gtk/c compilation and PPC fixes), Andrew Haley
(Object stream serialization fixes), Andrew John Hughes (java.util
documentation updates), Bryce McKinlay (Calendar bugfixes), Casey
Marshall (X.509 certificate path checking and signed jar file
support), Dalibor Topic (AWT Component postevent fix), David Daney
(URL bug fixes), David Gilbert (geom documentation updates and mauve
checking), David Jee (AWT HelpMenuBar fixes), Graydon Hoare
(Graphics2D and Swing work), Ilya Perminov (RMI fixes), Jeroen
Frijters (Application Classloader updates and IKVM integration), Jerry
Quinn (AWT image work), Kim Ho (Swing TabbedPane and ColorChooser
fixes), Mark Wielaard (libgcj merging and packaging), Mattias Rehnberg
(Inet6Address and serialization fixes), Michael Koch (Build
system/compiler updates, libgcj merging, code cleanups, swing, net,
imageio and other fixes and improvements), Noa Resare (Calendar, net,
AWT choice and GeneralPath fixes, kaffe integration), Olga Rodimina
(Swing ComboBox fixes), Patrik Reali (Website), Paul Jenner (AWT Image
raster and Swing JTree fixes), Per Bothner (Collections efficiency),
Robert Schuster (java.beans 1.4 updates and bug fixes), Shashank Bapat
(Regex lookahead support), Steven Augart (JikesRVM integration), Sven
de Marothy (AWT color package implementation, Polygon, GeneralPath,
Double parsing and nio fixes), Thomas Fitzsimmons (AWT gtk+ peer
work), Tom Tromey (Code cleanups all over), Torsten Rupp (Native
java.net cleanups and fixes)

</pre>

<footer>


