1 New in release 0.17 (Jul 15, 2005)
3 * gnu.xml fix for nodes created outside a namespace context.
4 * Add support for output indenting and cdata-section-elements output
5 instruction in xml.transform.
6 * xml.xpath corrections for cases where elements/attributes might have
7 been created in non-namespace-aware mode. Corrections to handling of
8 XSL variables and minor conformance updates.
9 * DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
10 traversal enumerations implemented.
11 * JInternalFrame colors and titlebar draw properly.
12 * JTree is working up to par (icons, selection and keyboard traversal).
13 * JMenus were made more compatible in visual and programmatic behavior.
14 * JTable changeSelection and multiple selections implemented.
15 * JButton and JToggleButton change states work properly now.
17 * revalidate and repaint fixes which make Free Swing much more responsive.
18 * Correctly handle system call interrupts and timeouts in native nio
20 * MetalIconFactory implemented.
21 * Handle image loading errors correctly for gdkpixbuf and MediaTracker.
22 * Added Tree World to GNU Classpath examples Free Swing demo.
23 * FileChannel.lock() and FileChannel.force() implemented.
24 * java.util.logging.FileHandler now rotates files.
25 * Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).
26 * Corba bug fixes and documentation updates.
27 * Updated gcj build infrastructure.
28 * Documentation fixes all over the place.
29 See http://developer.classpath.org/doc/
30 * VM Integration Guide updates with a full section on VM/Classpath hooks.
32 New in release 0.16 (Jun 30, 2005)
34 * Better GTK scrollbar peer implementation when using GTK >= 2.6.
35 * GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
36 * BufferedImage and GtkImage rewrites. All image drawing operations
37 should now work correctly (flipping requires gtk+ >= 2.6)
38 * Future Graphics2D, Image and Text work is documented at:
39 http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
40 * Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
41 JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
42 can call add() and setLayout() directly on them, which will have the same
43 effect as calling getContentPane().add() and getContentPane().setLayout().
44 * The JTree interface has been completed. JTrees now recognizes mouse clicks
45 and selections work, but the visual implementation is not yet complete.
46 Work on expansion and collapsing of the tree nodes is being implemented.
47 * BoxLayout works properly now.
48 * Fixed GrayFilter to actually work.
49 * Metal SplitPane implemented.
50 * Lots of free swing text and editor stuff work now.
52 * When gtk+ 2.6 or higher is installed the default log handler will produce
53 stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
55 * The CORBA implementation is now a working prototype that should support
56 features up till 1.3 inclusive.
57 We would invite groups writing CORBA dependent applications to
58 try Classpath implementation, reporting any possible bugs.
60 The CORBA prototype is interoperable with Sun's implementation v 1.4,
61 transferring object references, primitive types, narrow and wide
62 strings, arrays, structures, trees, abstract interfaces and
63 value types (feature of CORBA 2.3) between these two platforms.
64 The remote exceptions are transferred and handled correctly.
65 The stringified object references (IORs) from various sources are
67 The transient (for current session) and permanent (till jre restart)
69 Both Little and Big Endian encoded messages are accepted.
70 The implementation is verified using tests from the former cost.omg.org.
71 The current release includes working examples (see the examples directory),
72 demonstrating the client-server communication, using either CORBA Request
73 or IDL-based stub (usually generated by a IDL to java compiler).
74 These examples also show how to use the Classpath CORBA naming service.
75 The IDL to java compiler is not yet written, but as our library must be
76 compatible, it naturally accepts the output of other idlj implementations.
78 * New --with-vm-classes configure option, and new 'build' setting
79 for --with-glibj. (Only for integrators.)
81 Runtime interface changes:
83 * Start of a generic JDWP framework in gnu/classpath/jdwp.
84 This is unfinished, but feedback (at classpath@gnu.org) from runtime
85 hackers is greatly appreciated. Although most of the work is currently
86 being done around gcj/gij we want this framework to be as VM neutral as
87 possible. Early design is described in:
88 http://gcc.gnu.org/ml/java/2005-05/msg00260.html
89 * Native method VMClass.getModifiers() now takes an additional
91 * Deprecated native method VMClassLoader.defineClass(ClassLoader,
92 String, byte[], int, int) has been replaced by
93 VMClassLoader.defineClass(ClassLoader, String, byte[], int, int,
95 * VMClassLoader.loadClass(String name, boolean resolve) is now native,
96 replacing the former version which just returned null.
97 * Deprecated native method VMClassLoader.getPrimitiveClass(String) has
98 been replaced by new native method VMClassLoader.getPrimitiveClass(char).
99 * Previously empty implementations of methods VMThread.countStackFrames(),
100 VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have
101 been removed; these methods are now native methods.
102 * Fields "exceptionTypes" and "parameterTypes" have been removed from
103 Contructor.java and getExceptionTypes() and getParameterTypes() are
106 New in release 0.15 (Apr 29, 2005)
108 * The old character encoding framework (gnu.java.io.EncodingManager)
109 has been replaced by a system based completely on nio.charset
110 providers. Many converters have been added, both the io, lang and nio
111 frameworks now use the same set of converters and the whole character
112 stream framework (Readers and Writers) have been optimized. For some
113 workloads this leads to 2x till 20x speedups.
115 The default charsets supported are:
117 Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861,
118 Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13,
119 ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6,
120 ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope,
121 MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman,
122 MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE,
123 UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250,
124 Windows1251, Windows1252, Windows1253, Windows1254, Windows1255,
125 Windows1256, Windows1257, Windows1258.
127 Many more encoding are supported through the new IconvProvider
128 depending on the platform iconv support. GNU libiconv is recommended.
129 The IconvProvider is currently not enabled by default. To enable it
130 define the system property gnu.classpath.nio.charset.provider.iconv=true.
131 Some runtimes might choose to enable this by default by setting it
132 through VMSystemProperties. We would like to get feedback on whether
133 enabling or disabling the IconvProvider by default results in the
136 * Free swing metal and pluggable look and feels have been improved.
137 The GNU Classpath free swing example can now be run with different
138 "skins" by setting the system property swing.defaultlaf to the GNU,
139 Basic or Metal look and feel.
141 * Some of the org.omg.CORBA classes and packages have now been
142 implemented. The Savannah bug tracker contains additional tasks for
143 which we are seeking help.
145 * Fixed compatibility problems in the java.beans which affected
146 Eclipse's Visual Editor Project.
148 * New completely lock free (Inheritable)ThreadLocal implementation.
150 * javax.swing.text.rtf framework added which can handle simple (plain)
153 * Support for parsing html files into Level 2 Document Object Model
154 (org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of
155 javax.swing.text.html framework added.
157 Runtime interface changes:
159 * jni.h changed to better support compiling runtimes implementing jni;
160 see VM integration guide for details.
161 * New --enable-default-toolkit option to configure can be used to set
162 the fully qualified class name of the default AWT toolkit to use.
163 If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit
165 * New --disable-core-jni option can be used to disable building the
166 "core" JNI libraries. This is primarily useful if your VM can use the
167 Gtk peers but not the core JNI libraries.
168 * New system property "gnu.classpath.boot.library.path" can be specified
169 to define the location of the JNI libraries. It is by all means meant
170 ONLY for VM implementors and GNU Classpath hackers. See the hacking
171 guide for more information.
172 * The helper methods currentLoader() and allocateObject() for
173 java.io.ObjectInputStream have been moved to a VMObjectInputStream class.
174 Reference implementations are provided.
175 * java.net.InetAddress now uses VMInetAddress for runtime/platform
176 specific methods getLocalHostname(), getHostByAddr() and
177 getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface
178 for runtime/platform specific getInterfaces() support. Default
179 (Posix/GNU JNI) implementations are provided.
180 * VMClass has a new method getModifiers(Class, boolean) which can be
181 used to get the real modifiers for an inner class or the ones
182 specified by the InnerClasses attribute.
183 * All (possible) runtime specific methods of Object and Double are now
184 in VMObject and VMDouble. Where possible generic reference
185 implementations are provided.
186 * The reference implementation of VMClassLoader now handles zip files
187 on the boot loader class path in getResources().
191 New in release 0.14 (Feb 25, 2005)
193 * Character encoders and decoders have been added for:
194 iso-8859-6 (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew),
195 iso-8859-9 (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
196 ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
197 UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little Endian).
198 * Full documentation for all classes can be generated (again) by using
199 the --with-gjdoc configure option.
200 * javax.awt.imageio support through gdkpixbuf.
202 Runtime interface changes:
204 * VMSecurityManager has been replaced by gnu.classpath.VMStackWalker.
205 currentClassLoader() is no longer needed, and there are also two new
206 methods with non-native implementations. VM implementors are encouraged
207 to provide more efficient versions.
208 * VMRuntime.nativeLoad() now takes an additional ClassLoader parameter.
210 New in release 0.13 (Jan 6, 2005)
212 * The http url protocol handler has been replaced with a full HTTP/1.1
213 version from GNU inetlib.
214 * A new ftp url protocol handler has been added also from GNU inetlib.
215 * java.beans has been updated to 1.4 including support for XMLEncoder
217 * The java.util.Locale support is now based on the Common Locale Data
218 Repository (CLDR) Project (see http://www.unicode.org/cldr/).
219 GNU Classpath provides support for more than 250 locales now.
220 This new support is experimental and the GNU Classpath hackers are
221 working together with runtime developers and the unicode consortium
222 to improve them in the future.
223 If your runtime misdetects your locale or if the default locale gives
224 problems please try running with -Duser.language=en and -Duser.region=US
225 to fall back on a known good locale.
226 * Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2) and
227 org.w3c.dom (DOM Level 3) interfaces. It is possible to switch between
228 different implementations AElfred2, GNU DOM, GNU XSL, libxmlj SAX,
229 libxmlj DOM and libxmlj XSL by setting different system properties.
230 Also provided is a preliminary XPath 1.0 implementation.
231 The libxmlj versions are build around libxml2 and libxslt and have to
232 be enabled during build time by the --enable-xmlj configure flag.
233 The current support is equal to the last released GNU JAXP 1.3 release.
234 These packages will be maintained as part of the GNU Classpath core classes
235 in the future. For more information, conformance results and documentation
236 on selecting different implementations see doc/README.jaxp.
237 * More AWT accessible support.
238 * AWT gtk+ peers component layout, dialog placement, keyboard focus
239 handling and text positioning have been improved.
240 * ImageIO interfaces are more complete.
241 * JList, JTable and JTree have been hugely improved.
242 * java.awt.Robot support with GdkRobot in the gtk+ awt peers.
243 Needs XTest Extension (libXtst) XServer support.
244 * New --disable-examples configure argument.
246 Runtime interface changes:
248 * Added a new method (VMRuntime.enableShutdownHooks) that enables the VM
249 to lazily register an exit handler.
250 * The java.lang.Class constructor now automatically sets the protection
251 domain for array classes, based on the protection domain of the component
253 * New gnu.classpath.VMSystemProperties class. This replaces the
254 system properties initialization in VMRuntime. Note that it is
255 now the VMs responsibility to set one additional property:
256 gnu.cpu.endian should be set to "big" or "little".
257 * VMRuntime.nativeGetLibname() has been renamed to VMRuntime.mapLibraryName()
258 and has only one argument, the name of the library.
259 * String and StringBuffer now call VMSystem.arraycopy() directly and don't
260 go through java.lang.System. Be careful to not initialize java.lang.System
261 early in the bootstrap sequence in your VM runtime interface classes.
262 * Some (wrong) documentation about the behavior of VMThread.sleep(0, 0)
263 has been updated. Also, VMThread.sleep() now has a default non-native
264 implementation, but it is a generic implementation that ignores the
265 nano-seconds argument. Runtime hackers are encouraged to provide a more
267 * There is prelimenary support for nio direct byte buffers.
268 See VMDirectByteBuffer. Please contact the GNU Classpath mailinglist when
269 you add support for this to your runtime.
271 New in release 0.12 (Nov 14, 2004)
273 * GNU Classpath's JAR implementation now has preliminary support for
274 signed entries, for so called "signed JAR" file support. Signed JAR
275 files are one of the key security features of managed runtimes, and
276 allows code to run privileged given unforgeable proofs of identity.
277 * A much improved version of X.509 certificates has been added,
278 including a robust certificate path checking algorithm. Also
279 included is an implementation of the RSA signature scheme.
280 * Full java.awt.color implementation, with all standard ICC profiles,
281 except for PhotoYCC color space.
282 * java.beans 1.4 updates and bug fixes.
283 * java.awt.image support updated to 1.4.
284 * Improved build process. Uses less memory with gcj and C code is
285 buildable with -Werror on most platform. Please configure with
286 --enable-Werror and report any remaining issues.
287 * Big-endian (PowerPC) fixes for native awt GTK+ peers.
288 * Checkstyle support, see scripts/checkstyle-config.xml.
289 * Better AWT focus management fro GTK+ peers.
290 * Much faster and better fonts support
291 (for both gdk Graphics and cairo Graphics2D)
292 * AWT Choice fixes for hidden components.
293 * HTTP Connection Handler fixes for POST support.
294 * Much fuller collection documentation.
295 * Lots of Calendar bug fixes.
296 * More javax.imageio support.
297 * Better AWT Help MenuBar support.
298 * Lookahead support for regular expressions.
299 * Serialization object stream fixes for multiple ClassLoader scenarios.
300 * Swing TabbedPane, ColorChooser and ComboBox improvements.
301 * Start of JTree functionality.
302 * Improved Eclipse 3 support for GNU Classpath based runtimes.
304 Runtime interface Changes:
306 * New --enable-java-lang-system-explicit-initialization configuration
307 option. (Warning, will be replaced in next release, please consult
309 * The reference implementation of VMClassLoader has default
310 implementations for getResource(s) and provides support for a new
311 default getSystemClassLoader implementation.
313 New in release 0.11 (Sep 13, 2004)
315 * javax.swing.Spring and SpringLayout support.
316 * Added pluggable look and feel support for BasicTextFieldUI and
317 BasicToolBarSeparatorUI.
318 * java.swing.text support for (Default and Layered) Highlighter, FieldView,
319 PlainView, TabExpander and TabableView added.
320 * Start of JTable and JTree implementation.
321 * Internal Swing frames work.
322 * JMenu and JPopupMenu work.
323 * New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
324 * java.awt.image LookupTables and kernel support.
325 * Improved java.awt.image.BufferedImage support.
326 * AWT 1.0 event model support.
327 * GNU Classpath now comes with some example programs (see examples/README).
328 * New javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net,
329 javax.net.ssl, javax.security.auth, javax.security.auth.callback,
330 javax.security.auth.login, javax.security.auth.x500, javax.security.sasl
331 and org.ietf.jgss packages are now officially part of GNU Classpath.
332 Extra crypto algorithms can be obtained from the GNU Crypto project,
333 a full TLS implementation is provided by the Jessie project.
334 http://www.gnu.org/software/gnu-crypto/
335 http://www.nongnu.org/jessie/
336 * Frame.setIconImage() support.
337 * AWT GDKGraphics scaling.
338 * New configure flag --enable-gtk-cairo to build Graphics2D implementation
339 build on cairo and pangoft2. Enabled at runtime by defining the system
340 property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
341 * javax.swing.JSpinner implemented.
342 * Extensive documentation update for java.util collection classes.
343 * java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D implemented.
344 * GNU JAXP is no longer included with GNU Classpath. Runtime, compiler and
345 tool integrators are encouraged to directly integrate GNU JAXP.
346 This release has been tested against GNU JAXP 1.1.
347 http://www.gnu.org/software/classpathx/jaxp/jaxp.html
348 * JColorChooser, JComboBox and JTextField implemented, including example
349 uses in GNU Classpath Examples swing Demo.
351 Runtime interface Changes:
353 * java.lang.Compiler now uses the new java.lang.VMCompiler; there is
354 a reference implementation that most VMs can use.
355 * java.lang.VMSystem has a new getenv(String) method and a reference C/JNI
356 implementation that should work on most Posix like systems.
357 * java.util.TimeZone has been split into a platform independent class and
358 a platform dependent class VMTimeZone. GNU Classpath comes with a generic
359 way to get at the default time zone for Posix/GNU-like platforms.
360 * [VM]AccessController improvements. In particular it handles
361 `doPrivileged' calls better, and allows for recursive `doPrivileged'
362 calls in the same Thread. (see vm/reference/java/security/)
364 New in release 0.10 (Jul 9, 2004)
366 * java.net.URL now uses application classloader to load URLStreamHandlers
367 and reuses URLStreamHandlers when URL is reset (but protocol isn't changed).
368 * java.io.File.deleteOnExit() implementation.
369 * java.text multiple new features and bug fixes
370 (only 2 out of the 1000+ java.text Mauve tests now fail).
371 * Better (non-black) default AWT System colors.
372 * AWT lists use GTK treeviews.
373 * Proper AWT focus management has been implemented.
374 * Swing menus and scrollpanes are beginning to work.
375 * Swing splitpanes, dialogs and internal frames were added.
376 * Swing repainting / double buffering was redone.
377 * Font management and Pango DPI conversion fixes.
378 * A lot of AWT imaging and event bugs have been picked out.
379 * More of javax.swing.text has been implemented.
380 * javax.swing.Timer has been reimplemented.
381 * java.security.AccessController has been implemented
382 (see runtime section).
383 * The default java.lang.SecurityManager now uses AccessController.
384 * New java.beans.Statement and Expression implementations.
385 * Small FileChannel implementation speed improvement for traditional
387 * Regenerated all included JNI header files with gcjh (3.5 CVS),
388 removes extra extern modifier and allows stricter compiler warning.
389 * More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and
390 -Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes,
391 made it compilable with C++ compilers and jni.h got renamed from jni.h.in).
392 * Double.toString() and Float.toString() now work properly on 64-bit
394 * PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes.
395 * Build system refactored and removed old Japhar specific support.
396 * The gnu.java.awt.EmbeddedWindow class has been improved, and now
397 supports embedding AWT windows in other top-level X windows.
398 This functionality is required by gcjwebplugin.
399 * gcjwebplugin, an applet viewer that can be embedded into several web
400 browsers, has been extensively tested with this release of classpath.
401 (See http://www.nongnu.org/gcjwebplugin/)
402 * Runtime environments based on GNU Classpath 0.10 should be able to
403 start up Eclipse 3.0 out of the box now.
405 Runtime interface Changes:
407 * VMProcess.destroy() default implementation fixes.
408 * Fixed the "portable native sync" code; it had been broken since
409 Classpath release 0.06, when we upgraded to GTK+2.
410 Classpath's AWT peers use GTK+. GTK+ uses GLIB. GLIB by default uses
411 the platform's native threading model -- pthreads in most cases.
412 If the Java runtime doesn't use the native threading model, then you should
413 specify --portable-native-sync when configuring Classpath, so that GLIB will
414 use the Java threading primitives instead. (For a superior alternative,
416 * The VM can set the system property
417 gnu.classpath.awt.gtk.portable.native.sync instead of using the
418 --portable-native-sync configure-type option.
419 See doc/vmintegration.texinfo for details.
420 * We intend that the next release of GNU Classpath will require the VM
421 to provide JNI 1.2. Classpath currently uses only JNI 1.1, except for
422 one JNI 1.2 function: GetEnv(), in the JNI Invocation API.
423 If this poses problems, please raise them on the classpath mailing list.
424 * The reference implementation of VMThread.holdsLock(Object) now has
425 a default implementation written in java. For efficiency and to
426 prevent spurious wakeups a real 'native' runtime version can be supplied.
427 * There is a new java.security.VMAccessController class that runtimes need
428 to implement to properly support SecurityManagers. The default
429 implementation that comes with GNU Classpath makes sure that ANY attempt
430 to access a protected resource is denied when a SecurityManager is
431 installed. Which is pretty secure, but also no very useful.
432 Please see the documentation in
433 vm/reference/java/security/VMAccessController.java,
434 and please give feedback on the GNU Classpath mailinglist whether or not
435 the current AccessController framework is flexible enough.
437 New in release 0.09 (May 2, 2004)
439 * Includes updated GNU JAXP version from 2004-02-01.
440 * Native C code is now -ansi -pedantic (C89) clean and (almost) -Wall clean.
441 * java.io is now implemented by delegating most tasks directly to java.nio.
442 * Reworked/Optimized implementations of java.nio.Buffer and subclasses.
443 * New javax.print, javax.print.attribute[.standard] and javax.print.event
444 packages and classes.
445 * java.text attributed iterators support.
446 * New javax.imageio, javax.imageio.event and javax.imageio.spi packages and
448 * GNU Classpath can now load service providers that are described via
449 META-INF/services/* resources in extension JARs. This is useful for
450 implementing the various APIs that are supposed to be extensible via
451 custom plugins. For details, please see the documentation of
452 gnu.classpath.ServiceFactory.
453 Application developers are strongly discouraged from calling glibj
454 internal packages. Instead, they might want invoke the newly implemented
455 javax.imageio.spi.ServiceRegistry.lookupProviders, which is a standard
456 method for loading plug-ins.
457 * New developers wanting to help the GNU Classpath project might want to
458 review the greatly expanded Hacker Guide included in the doc directory
459 or online at http://www.gnu.org/software/classpath/docs/hacking.html
460 Also the FAQ has been expanded. And when working from CVS you can now use
461 a simple autogen.sh script to get all autotools magic done automagically.
462 * New configure option --with-glibj which defines how to install the glibj
463 class files as zip, as flat directory files or both (zip|flat|both)
464 [default=zip]. When working with multiple runtimes some of which might
465 not support bootstrap classes in zip files the --with-glibj=both option
466 is recommended (this does take extra disc space).
467 * Two big code drops from the libgcj gui branch updating various java.awt
468 and javax.swing classes.
469 * Multiple java.net.InetAdress fixes and java.rmi fixes.
470 * ServerSocket.accept() now restarts listening when system call interrupted.
471 * Much cleanups to make standard API doc valid XHTML (not completed yet).
472 * A scan for unused variables and non-static invocation of static methods
473 turned up a couple of subtle bugs which have now all been fixed.
474 * The Mauve testsuite has been cleaned up considerable and lots of issues
475 in the GNU Classpath core class implementation have been fixed.
477 VM Interface changes:
479 * java.lang.Class/VMClass interface was changed. The interface now no
480 longer requires an instance of VMClass for each Class instance. Instead
481 the field vmdata in Class is now of type Object.
482 * GNU Classpath now assumes that JNI calls SetXField can modify final
483 fields. This was previously used silently for System.in/out/err and should
484 be considered as a feature now.
485 * A new VMProcess and a sample JNI C implementation are now provided to
486 make Runtime.exec() work out of the box on some systems. This requires
487 a small change to VMRuntime.exec() when a runtime wants to use it as the
488 default java.lang.Process implementation.
489 * The implementation of most of java.io through java.nio moved serveral
490 runtime specific I/O methods. Most methods do have a generic default native
491 C JNI implementation in native/jni/java-nio.
492 * Runtime support methods for java.io.File have been moved to VMFile which
493 also comes with a default JNI C implementation.
494 * To support the new service provider mechanism runtimes must make sure that
495 extension JARs are made accessible via the default context class loader.
497 New in release 0.08 (2004/12/03)
499 * java.util.regexp implementation through gnu.regexp wrappers.
500 * java.net.URI implementation.
501 * Working implementation of javax.swing.undo.
502 * java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and quadratic
503 equations; implementation adapted from the GNU Scientific Library.
504 * Lots of java.awt and gtk+ peer improvements. Also more Swing work. Start
505 of EmbeddedWindow support.
506 * BufferedReader speed improvements.
507 * Improved useabilty of java.text implementation for several applications.
508 * ObjectInputStream is much faster and more compatible with other
510 * Fix handling of alias methods, where a method has been deprecated in
511 favour of a new one with the same funtion but a different name.
512 (See Deprecated Methods section in the GNU Classpath Hacking Guide.)
513 * javax.print.attribute.standard added.
514 * Lots of java.nio, java.net, java.io
515 * Depend on autoconf 2.59+ and automake 1.7+, GCJ 3.3+, jikes 1.18+.
517 VM Interface changes:
518 * Split native methods in java.lang.Runtime into java.lang.VMRuntime.
519 * Resources are now also loaded/needed through the bootstrap classloader
520 (gnu.regexp needs MessageBundle included in glibj.zip
522 Fixed Classpath bugs:
523 #6095 java.awt.geom.QuadCurve2D.solveQuadratic sometimes gives
525 #7099 EventListenerList.getListenerCount should accept null argument
526 #7104 EventListenerList.add does not work
527 #7105 EventListenerList.remove does not work
528 #7107 DefaultBoundedRangeModel.setValue and friends should not throw
531 New in release 0.07 (2003/30/11)
533 * Works with libtool 1.5 (and 1.4.3).
534 * java.awt gtk+ peers now depend on gtk+ 2.2.x and uses pango.
535 Lots and lots improvements on the peers.
536 * java.awt.geom.CubicCurve2D, java.awt.geom.QuadCurve2D:
537 Subdivision and flatness calculation implemented.
538 * java.awt.geom.FlatteningPathIterator: Working implementation.
539 * gnu.java.awt.BitwiseXORComposite helper class.
540 * New rmic compilers (jikes, kjc) support.
541 * java.text bug fixing and 1.4 updates (Currency).
542 * Hashtable and HashMap function more similar to other implementations.
543 * javax.naming and java.beans classloader fixes.
544 * URL parsing, URLConnection, protocol and (needed) permission fixes.
545 * More java.nio implementation
546 (API complete, but implementation not finished yet).
547 * Lots of java.net code cleanup.
548 * Improved documentation.
549 * Numerous bug fixes in almost every package, and lots of updates for
551 * Fixed Classpath bugs:
552 #2944 Incorrect synchronization in java.util.logging.ErrorManager
553 #6075 java.awt.geom.GeneralPath.getCurrentPoint returns wrong results
554 #6076 java.awt.geom.GeneralPath constructor sometimes hangs
555 #6089 java.awt.geom.GeneralPath.getPathIterator does not work
558 VM Interface changes:
560 * Thread has been split in a VM-independent Thread class and a VM-dependent
563 New in release 0.06 (2003/22/08)
565 * Update java.awt peers to GTK+2.
566 * java.awt.GridBagLayout implementation.
567 * javax.swing.border implementation.
568 * java.security and java.security.cert updated to 1.4 spec.
569 * New JNI native target code layer. See native/target/readme.txt.
570 * --enable-regen-headers configure flag for automatic jni .h file generation.
571 * Removed workaround for gcj 3.2 and lower, gcj 3.3+ or jikes 1.18+ is now
572 needed for compiling.
573 * Lots of improvements and/or new classes for java.awt, java.awt.dnd,
574 java.awt.font, java.awt.geom, java.awt.image, java.io, java.math, java.net,
575 java.nio, java.rmi, java.text, java.util, javax.swing, javax.swing.plaf,
578 VM Interface changes:
580 * VMClassLoader.loadClass(), the bootstrap classloader called by
581 Class.forName() and ClassLoader.loadClass(), may now return null when
582 a class is not found instead of throwing a new ClassNotFoundException.
583 This is a performance optimization in some cases. This also changes
584 the Class.forName() reference code.
585 * Native methods in Class have been moved to VMClass. A few additional
586 methods are also available in VMClass to provide optional performance
588 * A VM can now supply its own String.intern() strategy through the
589 VMString class. The supplied VMString reference class implements the
590 original WeakHashMap strategy.
591 * Float and Double to/from bits conversion functions can now be supplied by
592 the VM through VMFloat and VMDouble. Default JNI conversion methods are
595 New in release 0.05 (2003/02/15)
596 * Supports free Java VMs Jikes RVM and Kissme out of the box, perhaps others.
597 * Supports GNU Crypto 1.1 as the official provider of cryptographic primitives
598 and tools for GNU Classpath, available separately from
599 http://www.gnu.org/software/classpathx/crypto/crypto.html.
600 * Supports GNU Classpath Tools sub-project of GNU Classpath, official provider
601 of standard tools such as gjdoc, a javadoc replacement, and others. Future
602 releases of GNU Classpath will begin to include these tools, available
603 separately from http://www.gnu.org/software/cp-tools/.
604 * Java primitives can be used to support AWT native threading, see
605 the --enable-portable-native-sync configure option which may become the
606 default in a future release.
607 * Include file jni.h has been updated to the 1.4 specification.
608 * VM specific internal types for jobject, jfieldID, and jmethodID are
609 supported in jni.h. More details can be found by reading the comment
610 in include/jni.h.in. By default the old definitions are used instead.
611 * New VM helper class java.io.VMObjectStreamClass which should provide
612 the hasClassInitializer() method. Previously ObjectStreamClass used
613 Class.getDeclaredMethod("<clinit>") but according to the spec this
614 should always throw NoSuchMethodException for class initialization methods.
615 A JNI reference implementation is provided as
616 vm/reference/java-io/java_io_VMObjectStreamClass.c
617 * There have been numerous infrastructure improvements
618 * Configure option --enable-gjdoc to generate javadoc-like output
619 * Gjdoc output is included with distribution, see doc/api/html/
620 * DESTDIR fully supported for install and uninstall
621 * Runtime.execInternal contract changed to allow for null `env'
622 and to accept `dir' argument.
623 * VMObject.getClass() removed. It was never used.
624 * java.lang.Throwable is now a 'normal' GNU Classpath class that uses the
625 VM specific java.lang.VMThrowable to get at the VM state and (if needed)
626 the StackTraceElements for a particular exception. A default implementation
627 (that does nothing) is provided in vm/reference/java/lang/VMThrowable.java.
628 * The vm/reference classes from the gnu.vm.stack and their counterparts
629 ExecutionStack and StackFrame in gnu.java.lang have been removed since they
630 are not actually part of the VM interface anyway.
631 * The GPLed com.sun.javadoc classes have been moved to the gjdoc application
632 from the GNU Classpath Tools project. See for more information the homepage
633 at: <http://www.gnu.org/software/cp-tools/>.
635 New in release 0.04 (2002/05/05)
636 * Additional configure options to disable zip creation and installation as
637 well as disable gtk peer native compilation.
638 * Addition of java.nio, java.util.logging, and javax.swing.
639 * Integration of most or all of the ORP patches to date, the purpose of
640 which are to make it possible to use JBOSS with ORP and Classpath. This
641 is still in a testing phase however.
642 * Significant changes in the reference VM interface that may require
643 support from the JVMs.
646 New in release 0.03 (2002/02/08)
647 * More merges with libgcj have been performed including java.math which now
648 provides a pure Java implementation of that package.
649 Current status at <http://gcc.gnu.org/java/libgcj-classpath-compare.html>
650 * A pure Java implementation (Jazzlib) of java.util.zip is available.
651 * Added the java.rmi implementation that Transvirtual donated to the FSF.
652 * Includes jni.h now, eliminating the need to specify a particular VM
654 * No proprietary classes or programs are required to compile.
655 Compiles out of the box with jikes or gcj.
656 * Separation of compiling Java source and native libraries through the
657 configure mechanism. If given no arguments, configure will setup the
658 subsequent build to only produce Java bytecode (.class files). More
659 information is available in INSTALLING.
660 * Support for compiling in a separate directory, as an example you may
661 cd classpath-0.03; mkdir build; cd build; ../configure; make
662 * Works with Orp 1.0.9 out of the box. Build instructions can be found at
663 <http://www.gnu.org/software/classpath/doc/orp.html>
664 * Lots of bugfixes that were found by using Classpath with the gcj, Orp,
665 SableVM, KissMe and Jaos VMs. Please use our bugdatabase at
666 <http://savannah.gnu.org/support/?group_id=85>
667 * Lots of updates to make Classpath more compliant with the 1.2, 1.3 and 1.4
668 API specification. The current status can be found at
669 <http://www.gnu.org/software/classpath/status.html>
670 * All files are now distributed under the same terms. Added clarification to
673 New in release 0.02 (2001/01/06)
674 * Support for printing exceptions with Japhar 0.09 + patch included in
675 resource/japhar-0.09.patch.1.
676 * Typos, assorted bugfixes.
678 New in release 0.01 (2000/11/20)
679 * More packages are included now, though many remain untested.
680 * Support for Japhar 0.09 included.
682 New in release 0.00 (1999/02/01)
683 * First official development release of clean room class library for Java
684 * Following packages included:
691 -- java.security (partial and non-functioning)
693 -- java.security.interfaces
695 * Code is mostly Java 2 (see JDK 1.2) compatible with some functionality
696 missing and/or untested.
697 * Support for Japhar (http://www.japhar.org/) virtual machine is included.
698 Requires the current Japhar from CVS.
699 * Extensive javadoc comments for public API included
700 * Licensed under the GNU Library General Public License (see COPYING.LIB)
701 * Does not depend on any non-free code - developed in a "clean room"