329 lines
15 KiB
Text
329 lines
15 KiB
Text
#!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.16 Announcement (2005-04-29)">
|
|
<pre>
|
|
GNU Classpath 0.16 "Harmony!" released.
|
|
|
|
We are pleased to announce a new developer snapshot 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. For example the GCC (gcj) and Kaffe projects will use the
|
|
developer snapshots as a base for future versions.
|
|
|
|
This is the first release of GNU Classpath since our Harmony
|
|
collaboration with the Apache group. Instructions for developers
|
|
wanting to try out and help with the core library implementation can
|
|
be found at: http://developer.classpath.org/
|
|
|
|
New is our wiki with simple steps to setup a quick development
|
|
environment. For example developers using cygwin can find examples
|
|
here: http://developer.classpath.org/mediation/ClasspathOnCygwin
|
|
|
|
Some highlights of changes in this release (more extensive list below):
|
|
|
|
AWT GtkScrollBar and GtkImage improvements. All image operations are
|
|
now working correctly. Graphics2D has been upgraded to use Cairo
|
|
0.5.x. Free Swing updates for 1.5 top-level compatibility. JTree
|
|
interface completed. JFileChooser has been implemented. Completed
|
|
implementations of BoxLayout, GrayFilter and SplitPane. Upgraded the
|
|
Corba features to 1.3 and included new CORBA 2.3 features. Start of
|
|
generic JDWP framework. And lots of bug fixes based on real world
|
|
application usage.
|
|
|
|
31 people actively contributed code to this release and made 389 CVS
|
|
commits during the last two months of development. diffstat since 0.15:
|
|
1248 files changed, 133649 insertions(+), 41802 deletions(-)
|
|
|
|
More details about the various changes and contributions below.
|
|
|
|
GNU Classpath 0.16 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.16.tar.gz
|
|
MD5sum: 220a9c86719a2c6bd7ba9b9877495113
|
|
SHA1sum: be6d30fbfe4d71015a455a367411a6d55df3484e
|
|
|
|
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 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 and make sure the system property
|
|
gnu.java.awt.peer.gtk.Graphics=Graphics2D is set.
|
|
|
|
This release was explicitly tested against the last Eclipse 3.1
|
|
release (thanks to various eclipse hackers for the support). For end
|
|
user we do however recommend to use the GCJ4 packaged version of
|
|
Eclipse 3.1 that have been prepared for the various distributions:
|
|
|
|
Fedora Core
|
|
http://overholt.ca/wp/?p=27
|
|
Debian GNU/Linux
|
|
http://gnu.wildebeest.org/diary-man-di/index.php?p=19
|
|
Ubuntu
|
|
http://www.larvalstage.net/index.php?/archives/2-Introducing-Eclipse-3.1.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.
|
|
|
|
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 ~30.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. This release passes 28801
|
|
of the mauve core library tests. See for more information:
|
|
http://www.sourceware.org/mauve/
|
|
|
|
Conformance reports for the included jaxp support can be found in the
|
|
doc/README.jaxp file.
|
|
|
|
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/
|
|
|
|
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/)
|
|
|
|
Both projects have CVS versions which track GNU Classpath closely.
|
|
|
|
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. Most active GNU Classpath
|
|
hackers use JamVM (http://jamvm.sourceforge.net/) and the gcj or Jikes
|
|
bytecode compiler (http://www.jikes.org) for quick development. But
|
|
other environments can certainly be used to hack on the GNU Classpath
|
|
core libraries.
|
|
|
|
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
|
|
|
|
Note that these are just byte code execution compilers and/or
|
|
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).
|
|
|
|
3). 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. Many more architectures and platforms
|
|
are supported. Check the actual runtime you use together with GNU
|
|
Classpath for detailed information on the supported platforms.
|
|
|
|
4). 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/
|
|
|
|
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
|
|
|
|
Developers wanting to help out with the project will find more
|
|
information and tools on http://developer.classpath.org/
|
|
|
|
5). 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, activation, infobus, servlet, etc.) 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.16 (Jun 30, 2005)
|
|
(See the ChangeLog file for a full list of changes.)
|
|
|
|
* Better GTK scrollbar peer implementation when using GTK >= 2.6.
|
|
* GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
|
|
* BufferedImage and GtkImage rewrites. All image drawing operations
|
|
should now work correctly (flipping requires gtk+ >= 2.6)
|
|
* Future Graphics2D, Image and Text work is documented at:
|
|
http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
|
|
* Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
|
|
JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
|
|
can call add() and setLayout() directly on them, which will have the same
|
|
effect as calling getContentPane().add() and getContentPane().setLayout().
|
|
* The JTree interface has been completed. JTrees now recognizes mouse clicks
|
|
and selections work, but the visual implementation is not yet complete.
|
|
Work on expansion and collapsing of the tree nodes is being implemented.
|
|
* BoxLayout works properly now.
|
|
* Fixed GrayFilter to actually work.
|
|
* Metal SplitPane implemented.
|
|
* Lots of free swing text and editor stuff work now.
|
|
|
|
* When gtk+ 2.6 or higher is installed the default log handler will produce
|
|
stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
|
|
|
|
* The CORBA implementation is now a working prototype that should support
|
|
features up till 1.3 inclusive.
|
|
We would invite groups writing CORBA dependent applications to
|
|
try Classpath implementation, reporting any possible bugs.
|
|
|
|
The CORBA prototype is interoperable with Sun's implementation v 1.4,
|
|
transferring object references, primitive types, narrow and wide
|
|
strings, arrays, structures, trees, abstract interfaces and
|
|
value types (feature of CORBA 2.3) between these two platforms.
|
|
The remote exceptions are transferred and handled correctly.
|
|
The stringified object references (IORs) from various sources are
|
|
parsed as required.
|
|
The transient (for current session) and permanent (till jre restart)
|
|
redirections work.
|
|
Both Little and Big Endian encoded messages are accepted.
|
|
The implementation is verified using tests from the former cost.omg.org.
|
|
The current release includes working examples (see the examples directory),
|
|
demonstrating the client-server communication, using either CORBA Request
|
|
or IDL-based stub (usually generated by a IDL to java compiler).
|
|
These examples also show how to use the Classpath CORBA naming service.
|
|
The IDL to java compiler is not yet written, but as our library must be
|
|
compatible, it naturally accepts the output of other idlj implementations.
|
|
|
|
* New --with-vm-classes configure option, and new 'build' setting
|
|
for --with-glibj. (Only for integrators.)
|
|
|
|
Runtime interface changes:
|
|
|
|
* Start of a generic JDWP framework in gnu/classpath/jdwp.
|
|
This is unfinished, but feedback (at classpath@gnu.org) from runtime
|
|
hackers is greatly appreciated. Although most of the work is currently
|
|
being done around gcj/gij we want this framework to be as VM neutral as
|
|
possible. Early design is described in:
|
|
http://gcc.gnu.org/ml/java/2005-05/msg00260.html
|
|
* Native method VMClass.getModifiers() now takes an additional
|
|
boolean parameter.
|
|
* Deprecated native method VMClassLoader.defineClass(ClassLoader,
|
|
String, byte[], int, int) has been replaced by
|
|
VMClassLoader.defineClass(ClassLoader, String, byte[], int, int,
|
|
ProtectionDomain)
|
|
* VMClassLoader.loadClass(String name, boolean resolve) is now native,
|
|
replacing the former version which just returned null.
|
|
* Deprecated native method VMClassLoader.getPrimitiveClass(String) has
|
|
been replaced by new native method VMClassLoader.getPrimitiveClass(char).
|
|
* Previously empty implementations of methods VMThread.countStackFrames(),
|
|
VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have
|
|
been removed; these methods are now native methods.
|
|
* Fields "exceptionTypes" and "parameterTypes" have been removed from
|
|
Contructor.java and getExceptionTypes() and getParameterTypes() are
|
|
now native methods.
|
|
|
|
The following people helped with this release:
|
|
|
|
Andreas Jaeger (mprec updates)
|
|
Andreas Tobler (Darwin support)
|
|
Andrew John Hughes (Locale and net fixes, URI RFC2986 updates)
|
|
Andrew Overholt (File locking)
|
|
Anthony Balkissoon (JList, Free Swing 1.5 updates and mouse event fixes)
|
|
Archie Cobbs (VM interface updates)
|
|
Audrius Meskauskas (Corba and HTML work)
|
|
Bryce McKinlay (RMI work)
|
|
Chris Burdess (XML work)
|
|
Christian Thalinger (fdlibm updates)
|
|
Dalibor Topic (SHA1PRNG and GdkPixbugDecoder updates)
|
|
David Daney (BitSet bugfixes)
|
|
David Gilbert (Lots and lots of documentation and awt/swing fixes)
|
|
Gary Benson (MessageFormat fixes)
|
|
Goffredo Baroncelli (HTTPURLConnection fixes)
|
|
Jan Roehrich (JTree fixes)
|
|
Jeroen Frijters (ClassLoader and nio cleanups)
|
|
Ka-Hing Cheung (TreePath and TreeSelection fixes)
|
|
Kalle Olavi Niemitalo (Build fixes)
|
|
Keith Seitz (JDWP work)
|
|
Kim Ho (JFileChooser implementation)
|
|
Lillian Angel (JTree implementation and lots of bug fixes)
|
|
Mark Wielaard (build fixes, GdkPixpufDecoder fixes and packaging)
|
|
Michael Koch (Locale updates, bug and build fixes)
|
|
Olga Rodimina (MenuSelectionManager)
|
|
Robert Schuster (charset and awt fixes)
|
|
Roman Kennke (BoxLayout, GrayFilter and SplitPane, plus bugfixes all over)
|
|
Sven de Marothy (GtkImage rewrite, 2D, awt, free swing and date/time fixes)
|
|
Thomas Fitzsimmons (Lot of upgrades to the gtk+ AWT and cairo 2D support)
|
|
Tom Tromey (libgcj merging, build infrastructure and bug fixes)
|
|
Ziga Mahkovec (Graphics2D upgraded to cairo 0.5 and new regex features)
|
|
|
|
We would also like to thank the numerous bug reporters and testers!
|
|
</pre>
|
|
|
|
<footer>
|