#!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.11 Announcement (2004-09-13)"> 
<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.11 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.11.tar.gz
MD5sum: fa0e0f2532b838e67f9d9f93d45556a2

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

Inclusion of full javax.crypto, javax.security, javax.net and
subpackages.  Complete implementation of java.awt.geom. GTK+ 2.4 AWT
peer implementation for AWT FileDialog, better java.awt.image
LookupTable, Kernel and BufferedImage support. AWT 1.0 Event Model
implemented, and new Swing classes (Spring, SpringLayout, JMenu,
JPopupMenu, JColorChooser, JComboBox, JTextField, internal JFrame
support and start of JTable and JTree implementations). The Collection
classes have seen extensive documentation updates. GNU Classpath
Examples have been added - a GPL demo framework for AWT and Swing.

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.

[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 16816 of 17102 mauve tests.
Free Software programs and libraries tested against this release are
Ant, Eclipse 2.1, Eclipse 3.0 (starts up, but does not yet completely
run), JFreeChart (see above), the Nice programming language
environment (which can now be bootstrapped with any GNU Classpath
based runtime and which works out of the box with Kaffe and GCJ for
creating native executables), 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.  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.11 (Sep 13, 2004)
(See the ChangeLog file for a full list of changes.)

* javax.swing.Spring and SpringLayout support.
* Added pluggable look and feel support for BasicTextFieldUI and
  BasicToolBarSeparatorUI.
* java.swing.text support for (Default and Layered) Highlighter, FieldView,
  PlainView, TabExpander and TabableView added.
* Start of JTable and JTree implementation.
* Internal Swing frames work.
* JMenu and JPopupMenu work.
* New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
* java.awt.image LookupTables and kernel support.
* Improved java.awt.image.BufferedImage support.
* AWT 1.0 event model support.
* GNU Classpath now comes with some example programs (see examples/README).
* New javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net,
  javax.net.ssl, javax.security.auth, javax.security.auth.callback,
  javax.security.auth.login, javax.security.auth.x500, javax.security.sasl
  and org.ietf.jgss packages are now officially part of GNU Classpath.
  Extra crypto algorithms can be obtained from the GNU Crypto project,
  a full TLS implementation is provided by the Jessie project.
  http://www.gnu.org/software/gnu-crypto/
  http://www.nongnu.org/jessie/
* Frame.setIconImage() support.
* AWT GDKGraphics scaling.
* New configure flag --enable-gtk-cairo to build Graphics2D implementation
  build on cairo and pangoft2.  Enabled at runtime by defining the system
  property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
* javax.swing.JSpinner implemented.
* Extensive documentation update for java.util collection classes.
* java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D implemented.
* GNU JAXP is no longer included with GNU Classpath. Runtime, compiler and
  tool integrators are encouraged to directly integrate GNU JAXP.
  This release has been tested against GNU JAXP 1.1.
  http://www.gnu.org/software/classpathx/jaxp/jaxp.html
* JColorChooser, JComboBox and JTextField implemented, including example
  uses in GNU Classpath Examples swing Demo.

Runtime interface Changes:

* java.lang.Compiler now uses the new java.lang.VMCompiler; there is
  a reference implementation that most VMs can use.
* java.lang.VMSystem has a new getenv(String) method and a reference C/JNI
  implementation that should work on most Posix like systems.
* java.util.TimeZone has been split into a platform independent class and
  a platform dependent class VMTimeZone.  GNU Classpath comes with a generic
  way to get at the default time zone for Posix/GNU-like platforms.
* [VM]AccessController improvements.  In particular it handles
  `doPrivileged' calls better, and allows for recursive `doPrivileged'
  calls in the same Thread. (see vm/reference/java/security/)

The following people helped with this release:

Andreas Tobler (libgcj merging), Andrew Haley (object streams), Andrew
John Hughes (documentation, swing and acessibility), Archie Cobbs
(freebsd testing and bugfixing), Bryce McKinlay (libgcj merging, image
producers, access controller actions), Casey Marshall (crypto,
security and access controller implementation), Craig Black (image
scaling, round rect support, awt tear-off menus), Dalibor Topic (kaffe
merging), David Gilbert (documentation updates, mauve tests, awt and
geom bug fixes), David Jee (awt gtk+ image and choice fixes, frame
icon support, focus manger), Florian Weimer (bug reporting), Graydon
Hoare (lots of Swing and Graphics2D implementation and fixes), Guilhem
Lavaux (java.text bug fixing), Jerry Quinn (java.awt.image lookup
table and kernel implemented), Jeroen Frijters (Runtime loadlibrary,
encoding manager, file and classloader fixes), Ka-Hing Cheung
(jspinner implementation), Kim Ho (jcolorchooser, jtooltip, internal
jfram implementations, event and repaint manager fixes), Mark Wielaard
(packaging and coordination), Michael Koch (javax.swing.text
implementation, build environment, embedded window support, libgcj
merging, bug fixes), Olga Rodimina (swing combobox, jmenu and popup
menu support), Patrik Reali (web master, nio vm class restructuring),
Roman Kennke (boxlayout, spring and springlayout), Sven de Marothy
(java.awt.geom), Thomas Fitzsimmons (lots of gtk+ peers work, awt 1.0
event model), Tom Tromey (bug fixing, libgcj merging, vmcompiler).


</pre>

<footer>
