1 |
14 |
jlechner |
#!wml --include=..
|
2 |
|
|
|
3 |
|
|
#use wml::std::page
|
4 |
|
|
#use wml::std::lang
|
5 |
|
|
#use wml::fmt::isolatin
|
6 |
|
|
#use wml::std::case global=upper
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
|
12 |
|
|
#include
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
|
16 |
|
|
GNU Classpath 0.16 "Harmony!" released.
|
17 |
|
|
|
18 |
|
|
We are pleased to announce a new developer snapshot of GNU Classpath.
|
19 |
|
|
|
20 |
|
|
GNU Classpath, essential libraries for java, is a project to create free
|
21 |
|
|
core class libraries for use with runtimes, compilers and tools for the
|
22 |
|
|
java programming language.
|
23 |
|
|
|
24 |
|
|
The GNU Classpath developer snapshot releases are not directly aimed
|
25 |
|
|
at the end user but are meant to be integrated into larger development
|
26 |
|
|
platforms. For example the GCC (gcj) and Kaffe projects will use the
|
27 |
|
|
developer snapshots as a base for future versions.
|
28 |
|
|
|
29 |
|
|
This is the first release of GNU Classpath since our Harmony
|
30 |
|
|
collaboration with the Apache group. Instructions for developers
|
31 |
|
|
wanting to try out and help with the core library implementation can
|
32 |
|
|
be found at: http://developer.classpath.org/
|
33 |
|
|
|
34 |
|
|
New is our wiki with simple steps to setup a quick development
|
35 |
|
|
environment. For example developers using cygwin can find examples
|
36 |
|
|
here: http://developer.classpath.org/mediation/ClasspathOnCygwin
|
37 |
|
|
|
38 |
|
|
Some highlights of changes in this release (more extensive list below):
|
39 |
|
|
|
40 |
|
|
AWT GtkScrollBar and GtkImage improvements. All image operations are
|
41 |
|
|
now working correctly. Graphics2D has been upgraded to use Cairo
|
42 |
|
|
0.5.x. Free Swing updates for 1.5 top-level compatibility. JTree
|
43 |
|
|
interface completed. JFileChooser has been implemented. Completed
|
44 |
|
|
implementations of BoxLayout, GrayFilter and SplitPane. Upgraded the
|
45 |
|
|
Corba features to 1.3 and included new CORBA 2.3 features. Start of
|
46 |
|
|
generic JDWP framework. And lots of bug fixes based on real world
|
47 |
|
|
application usage.
|
48 |
|
|
|
49 |
|
|
31 people actively contributed code to this release and made 389 CVS
|
50 |
|
|
commits during the last two months of development. diffstat since 0.15:
|
51 |
|
|
1248 files changed, 133649 insertions(+), 41802 deletions(-)
|
52 |
|
|
|
53 |
|
|
More details about the various changes and contributions below.
|
54 |
|
|
|
55 |
|
|
GNU Classpath 0.16 can be downloaded from
|
56 |
|
|
ftp://ftp.gnu.org/pub/gnu/classpath/
|
57 |
|
|
or one of the ftp.gnu.org mirrors
|
58 |
|
|
http://www.gnu.org/order/ftp.html
|
59 |
|
|
|
60 |
|
|
File: classpath-0.16.tar.gz
|
61 |
|
|
MD5sum: 220a9c86719a2c6bd7ba9b9877495113
|
62 |
|
|
SHA1sum: be6d30fbfe4d71015a455a367411a6d55df3484e
|
63 |
|
|
|
64 |
|
|
This release depends on gtk+ 2.4 for AWT support. But gtk+ 2.6 or
|
65 |
|
|
higher is recommended. Included, but not activated by default in this
|
66 |
|
|
release is a Graphics2D implementation based on the Cairo Graphics
|
67 |
|
|
framework (http://www.cairographics.org). Enabling this makes programs
|
68 |
|
|
like JEdit start up on GNU Classpath based runtimes. To enable this
|
69 |
|
|
support install the cairo 0.5.x snapshot, configure GNU Classpath with
|
70 |
|
|
--enable-gtk-cairo and make sure the system property
|
71 |
|
|
gnu.java.awt.peer.gtk.Graphics=Graphics2D is set.
|
72 |
|
|
|
73 |
|
|
This release was explicitly tested against the last Eclipse 3.1
|
74 |
|
|
release (thanks to various eclipse hackers for the support). For end
|
75 |
|
|
user we do however recommend to use the GCJ4 packaged version of
|
76 |
|
|
Eclipse 3.1 that have been prepared for the various distributions:
|
77 |
|
|
|
78 |
|
|
Fedora Core
|
79 |
|
|
http://overholt.ca/wp/?p=27
|
80 |
|
|
Debian GNU/Linux
|
81 |
|
|
http://gnu.wildebeest.org/diary-man-di/index.php?p=19
|
82 |
|
|
Ubuntu
|
83 |
|
|
http://www.larvalstage.net/index.php?/archives/2-Introducing-Eclipse-3.1.html
|
84 |
|
|
|
85 |
|
|
Not yet included is an implementation of Generic collection classes
|
86 |
|
|
and classes for other 1.5 language extensions. Work on this is being
|
87 |
|
|
done on a special development branch that will be included in a future
|
88 |
|
|
GNU Classpath release when free runtimes, compilers and tools have all
|
89 |
|
|
been upgraded to support these new language features.
|
90 |
|
|
|
91 |
|
|
One of the major focuses of the GNU Classpath project is expanding
|
92 |
|
|
and using the Mauve test suite for Compatibility, Completeness and
|
93 |
|
|
Correctness checking. Various groups around GNU Classpath collaborate
|
94 |
|
|
on the free software Mauve test suite which contains ~30.000 core
|
95 |
|
|
library tests. Mauve has various modules for testing core class
|
96 |
|
|
library implementations, byte code verifiers, source to byte code and
|
97 |
|
|
native code compiler tests. Mauve also contains the Wonka visual test
|
98 |
|
|
suite and the Jacks Compiler Killer Suite. This release passes 28801
|
99 |
|
|
of the mauve core library tests. See for more information:
|
100 |
|
|
http://www.sourceware.org/mauve/
|
101 |
|
|
|
102 |
|
|
Conformance reports for the included jaxp support can be found in the
|
103 |
|
|
doc/README.jaxp file.
|
104 |
|
|
|
105 |
|
|
The GNU Classpath developers site http://developer.classpath.org/
|
106 |
|
|
provides detailed information on how to start with helping the GNU
|
107 |
|
|
Classpath project and gives an overview of the core class library
|
108 |
|
|
packages currently provided. For each snapshot release generated
|
109 |
|
|
documentation is provided through the GNU Classpath Tools gjdoc
|
110 |
|
|
project. A documentation generation framework for java source files
|
111 |
|
|
used by the GNU project. Full documentation on the currently
|
112 |
|
|
implementated packages and classes can be found at:
|
113 |
|
|
http://developer.classpath.org/doc/
|
114 |
|
|
|
115 |
|
|
Here are answers to some questions you might have about this project and
|
116 |
|
|
this release.
|
117 |
|
|
|
118 |
|
|
1). Who should use this software?
|
119 |
|
|
|
120 |
|
|
Although GNU Classpath is already capable of supporting many
|
121 |
|
|
applications written in the java programming language, this is a
|
122 |
|
|
development release. As such, there are still some unfinished
|
123 |
|
|
components, and some problems are to be expected. You should install it
|
124 |
|
|
if you are interested in GNU Classpath development or reporting bugs.
|
125 |
|
|
We appreciate both.
|
126 |
|
|
|
127 |
|
|
For end users we recommend to use one of the development environments
|
128 |
|
|
based on GNU Classpath which combine the core libraries with compilers
|
129 |
|
|
and other tools needed for creating applications and libraries.
|
130 |
|
|
|
131 |
|
|
* GCC with GCJ (http://gcc.gnu.org/java/)
|
132 |
|
|
* Kaffe (http://www.kaffe.org/)
|
133 |
|
|
|
134 |
|
|
Both projects have CVS versions which track GNU Classpath closely.
|
135 |
|
|
|
136 |
|
|
2). What is required to build/install/run?
|
137 |
|
|
|
138 |
|
|
GNU Classpath requires a working GNU build environment and a byte code
|
139 |
|
|
compiler such as jikes, gcj or kjc. When creating native code you will
|
140 |
|
|
also need a working C compiler and up to date Gnome development
|
141 |
|
|
libraries (gtk+, libart and gdk-pixbuf). More information on the
|
142 |
|
|
precise version numbers for the tools and libraries can be found in
|
143 |
|
|
the INSTALL file.
|
144 |
|
|
|
145 |
|
|
You will also need a runtime environment. Most active GNU Classpath
|
146 |
|
|
hackers use JamVM (http://jamvm.sourceforge.net/) and the gcj or Jikes
|
147 |
|
|
bytecode compiler (http://www.jikes.org) for quick development. But
|
148 |
|
|
other environments can certainly be used to hack on the GNU Classpath
|
149 |
|
|
core libraries.
|
150 |
|
|
|
151 |
|
|
For other environments that might need modified version of the current
|
152 |
|
|
release see the README file. A complete list of virtual machines and
|
153 |
|
|
compilers known to be based on GNU Classpath can be found at our
|
154 |
|
|
website: http://www.gnu.org/software/classpath/stories.html
|
155 |
|
|
|
156 |
|
|
Note that these are just byte code execution compilers and/or
|
157 |
|
|
runtimes. For development of programs written in the java programming
|
158 |
|
|
language you will also need compilers and other tools for creating
|
159 |
|
|
libraries and/or executables (see question 1).
|
160 |
|
|
|
161 |
|
|
3). What platforms are supported?
|
162 |
|
|
|
163 |
|
|
GNU/Linux and FreeBSD on x86 and powerpc are regularly tested by the
|
164 |
|
|
developers. Since 0.12 there is also support for cygwin. We plan to
|
165 |
|
|
eventually support many others. Many more architectures and platforms
|
166 |
|
|
are supported. Check the actual runtime you use together with GNU
|
167 |
|
|
Classpath for detailed information on the supported platforms.
|
168 |
|
|
|
169 |
|
|
4). Where do I go for more information?
|
170 |
|
|
|
171 |
|
|
The project home page with information on our mailing list can be
|
172 |
|
|
found at http://www.gnu.org/software/classpath/
|
173 |
|
|
|
174 |
|
|
The GNU Classpath developer recently held a conference during Fosdem.
|
175 |
|
|
This was a standing room event and provided lot of communication between
|
176 |
|
|
the GNU Classpath, Kaffe, GCJ, IKVM, Apache, java-gnome and Cacao hackers
|
177 |
|
|
and users. The presentations of this event have been publised and should
|
178 |
|
|
give a good overview of the current status and future plans of the project:
|
179 |
|
|
http://www.gnu.org/software/classpath/events/escape_fosdem05.html
|
180 |
|
|
|
181 |
|
|
Developers wanting to help out with the project will find more
|
182 |
|
|
information and tools on http://developer.classpath.org/
|
183 |
|
|
|
184 |
|
|
5). How do I extend the functionality of the core classes?
|
185 |
|
|
|
186 |
|
|
Besides combining GNU Classpath with the runtimes and compilers above
|
187 |
|
|
you might want to add support for additional encryption libraries and
|
188 |
|
|
algorithms as provided by GNU Crypto
|
189 |
|
|
(http://www.gnu.org/software/gnu-crypto/). And for additional
|
190 |
|
|
extension libraries (mail, activation, infobus, servlet, etc.) check
|
191 |
|
|
out GNU ClasspathX (http://www.gnu.org/software/classpathx).
|
192 |
|
|
|
193 |
|
|
Additional network protocol support is provided by a sub-project
|
194 |
|
|
called GNU Classpath Inetlib, an extension library to provide extra
|
195 |
|
|
network protocol support (ftp, finger, gopher) for GNU Classpath, but
|
196 |
|
|
it can also standalone to ease adding http, imap, pop3 and smtp client
|
197 |
|
|
support to applictions. Also distributed from
|
198 |
|
|
|
199 |
|
|
|
200 |
|
|
The following projects extend the functionality of GNU Classpath
|
201 |
|
|
with additional algorithms, new core packages and tools.
|
202 |
|
|
All are released under GPL compatible licenses:
|
203 |
|
|
|
204 |
|
|
* Jessie: A free implementation of the JSSE. Secure Sockets Extension.
|
205 |
|
|
http://www.nongnu.org/jessie/
|
206 |
|
|
* Tritonus: A implementation of the javax.sound API.
|
207 |
|
|
http://www.tritonus.org/
|
208 |
|
|
* gcjwebplugin: A plugin for the execution of applets in web browsers.
|
209 |
|
|
http://www.nongnu.org/gcjwebplugin/
|
210 |
|
|
|
211 |
|
|
Note that the above libraries might already have been included in the
|
212 |
|
|
various platforms that also integrate GNU Classpath like done by the
|
213 |
|
|
Kaffe project.
|
214 |
|
|
|
215 |
|
|
6). What is new in this release?
|
216 |
|
|
|
217 |
|
|
New in release 0.16 (Jun 30, 2005)
|
218 |
|
|
(See the ChangeLog file for a full list of changes.)
|
219 |
|
|
|
220 |
|
|
* Better GTK scrollbar peer implementation when using GTK >= 2.6.
|
221 |
|
|
* GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
|
222 |
|
|
* BufferedImage and GtkImage rewrites. All image drawing operations
|
223 |
|
|
should now work correctly (flipping requires gtk+ >= 2.6)
|
224 |
|
|
* Future Graphics2D, Image and Text work is documented at:
|
225 |
|
|
http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
|
226 |
|
|
* Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
|
227 |
|
|
JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
|
228 |
|
|
can call add() and setLayout() directly on them, which will have the same
|
229 |
|
|
effect as calling getContentPane().add() and getContentPane().setLayout().
|
230 |
|
|
* The JTree interface has been completed. JTrees now recognizes mouse clicks
|
231 |
|
|
and selections work, but the visual implementation is not yet complete.
|
232 |
|
|
Work on expansion and collapsing of the tree nodes is being implemented.
|
233 |
|
|
* BoxLayout works properly now.
|
234 |
|
|
* Fixed GrayFilter to actually work.
|
235 |
|
|
* Metal SplitPane implemented.
|
236 |
|
|
* Lots of free swing text and editor stuff work now.
|
237 |
|
|
|
238 |
|
|
* When gtk+ 2.6 or higher is installed the default log handler will produce
|
239 |
|
|
stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
|
240 |
|
|
|
241 |
|
|
* The CORBA implementation is now a working prototype that should support
|
242 |
|
|
features up till 1.3 inclusive.
|
243 |
|
|
We would invite groups writing CORBA dependent applications to
|
244 |
|
|
try Classpath implementation, reporting any possible bugs.
|
245 |
|
|
|
246 |
|
|
The CORBA prototype is interoperable with Sun's implementation v 1.4,
|
247 |
|
|
transferring object references, primitive types, narrow and wide
|
248 |
|
|
strings, arrays, structures, trees, abstract interfaces and
|
249 |
|
|
value types (feature of CORBA 2.3) between these two platforms.
|
250 |
|
|
The remote exceptions are transferred and handled correctly.
|
251 |
|
|
The stringified object references (IORs) from various sources are
|
252 |
|
|
parsed as required.
|
253 |
|
|
The transient (for current session) and permanent (till jre restart)
|
254 |
|
|
redirections work.
|
255 |
|
|
Both Little and Big Endian encoded messages are accepted.
|
256 |
|
|
The implementation is verified using tests from the former cost.omg.org.
|
257 |
|
|
The current release includes working examples (see the examples directory),
|
258 |
|
|
demonstrating the client-server communication, using either CORBA Request
|
259 |
|
|
or IDL-based stub (usually generated by a IDL to java compiler).
|
260 |
|
|
These examples also show how to use the Classpath CORBA naming service.
|
261 |
|
|
The IDL to java compiler is not yet written, but as our library must be
|
262 |
|
|
compatible, it naturally accepts the output of other idlj implementations.
|
263 |
|
|
|
264 |
|
|
* New --with-vm-classes configure option, and new 'build' setting
|
265 |
|
|
for --with-glibj. (Only for integrators.)
|
266 |
|
|
|
267 |
|
|
Runtime interface changes:
|
268 |
|
|
|
269 |
|
|
* Start of a generic JDWP framework in gnu/classpath/jdwp.
|
270 |
|
|
This is unfinished, but feedback (at classpath@gnu.org) from runtime
|
271 |
|
|
hackers is greatly appreciated. Although most of the work is currently
|
272 |
|
|
being done around gcj/gij we want this framework to be as VM neutral as
|
273 |
|
|
possible. Early design is described in:
|
274 |
|
|
http://gcc.gnu.org/ml/java/2005-05/msg00260.html
|
275 |
|
|
* Native method VMClass.getModifiers() now takes an additional
|
276 |
|
|
boolean parameter.
|
277 |
|
|
* Deprecated native method VMClassLoader.defineClass(ClassLoader,
|
278 |
|
|
String, byte[], int, int) has been replaced by
|
279 |
|
|
VMClassLoader.defineClass(ClassLoader, String, byte[], int, int,
|
280 |
|
|
ProtectionDomain)
|
281 |
|
|
* VMClassLoader.loadClass(String name, boolean resolve) is now native,
|
282 |
|
|
replacing the former version which just returned null.
|
283 |
|
|
* Deprecated native method VMClassLoader.getPrimitiveClass(String) has
|
284 |
|
|
been replaced by new native method VMClassLoader.getPrimitiveClass(char).
|
285 |
|
|
* Previously empty implementations of methods VMThread.countStackFrames(),
|
286 |
|
|
VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have
|
287 |
|
|
been removed; these methods are now native methods.
|
288 |
|
|
* Fields "exceptionTypes" and "parameterTypes" have been removed from
|
289 |
|
|
Contructor.java and getExceptionTypes() and getParameterTypes() are
|
290 |
|
|
now native methods.
|
291 |
|
|
|
292 |
|
|
The following people helped with this release:
|
293 |
|
|
|
294 |
|
|
Andreas Jaeger (mprec updates)
|
295 |
|
|
Andreas Tobler (Darwin support)
|
296 |
|
|
Andrew John Hughes (Locale and net fixes, URI RFC2986 updates)
|
297 |
|
|
Andrew Overholt (File locking)
|
298 |
|
|
Anthony Balkissoon (JList, Free Swing 1.5 updates and mouse event fixes)
|
299 |
|
|
Archie Cobbs (VM interface updates)
|
300 |
|
|
Audrius Meskauskas (Corba and HTML work)
|
301 |
|
|
Bryce McKinlay (RMI work)
|
302 |
|
|
Chris Burdess (XML work)
|
303 |
|
|
Christian Thalinger (fdlibm updates)
|
304 |
|
|
Dalibor Topic (SHA1PRNG and GdkPixbugDecoder updates)
|
305 |
|
|
David Daney (BitSet bugfixes)
|
306 |
|
|
David Gilbert (Lots and lots of documentation and awt/swing fixes)
|
307 |
|
|
Gary Benson (MessageFormat fixes)
|
308 |
|
|
Goffredo Baroncelli (HTTPURLConnection fixes)
|
309 |
|
|
Jan Roehrich (JTree fixes)
|
310 |
|
|
Jeroen Frijters (ClassLoader and nio cleanups)
|
311 |
|
|
Ka-Hing Cheung (TreePath and TreeSelection fixes)
|
312 |
|
|
Kalle Olavi Niemitalo (Build fixes)
|
313 |
|
|
Keith Seitz (JDWP work)
|
314 |
|
|
Kim Ho (JFileChooser implementation)
|
315 |
|
|
Lillian Angel (JTree implementation and lots of bug fixes)
|
316 |
|
|
Mark Wielaard (build fixes, GdkPixpufDecoder fixes and packaging)
|
317 |
|
|
Michael Koch (Locale updates, bug and build fixes)
|
318 |
|
|
Olga Rodimina (MenuSelectionManager)
|
319 |
|
|
Robert Schuster (charset and awt fixes)
|
320 |
|
|
Roman Kennke (BoxLayout, GrayFilter and SplitPane, plus bugfixes all over)
|
321 |
|
|
Sven de Marothy (GtkImage rewrite, 2D, awt, free swing and date/time fixes)
|
322 |
|
|
Thomas Fitzsimmons (Lot of upgrades to the gtk+ AWT and cairo 2D support)
|
323 |
|
|
Tom Tromey (libgcj merging, build infrastructure and bug fixes)
|
324 |
|
|
Ziga Mahkovec (Graphics2D upgraded to cairo 0.5 and new regex features)
|
325 |
|
|
|
326 |
|
|
We would also like to thank the numerous bug reporters and testers!
|
327 |
|
|
|
328 |
|
|
|
329 |
|
|
|