OSDN Git Service

libjava/ChangeLog:
[pf3gnuchains/gcc-fork.git] / libjava / classpath / NEWS
1 New in release 0.98
2
3 * Native support for BigInteger is now provided using the GMP
4 library.  A new option, --enable/disable-gmp is provided, and
5 the option is enabled by default if GMP is found.
6 * Classpath now makes use of a new StringBuilder implementation
7 internally called CPStringBuilder.  In addition to being
8 unsynchronised, like StringBuilder, this also avoids copying the
9 array when toString or substring is called.  While StringBuffer/Builder
10 always retain their own array, which is only altered during resizing,
11 CPStringBuilder gives away its array when the result is generated
12 by toString()/substring() and starts afresh.  The default capacity of
13 CPStringBuilder can also be configured using the
14 gnu.classpath.cpstringbuilder.capacity property.
15 * gjdoc is now built as part of tools.zip.
16
17 Bug fixes in release 0.97.2 (Jun 06, 2007)
18
19 * Include headers in the release tarball.
20 * Allow the building of tools to be optional.
21 * Only check for a Java compiler when required.
22 * Allow VMOperatingSystemMXBeanImpl to compile on Solaris.
23 * Documentation typo fixes
24 * Fix memory leak in native/jni/classpath/jcl.c
25 * Web page updates (PR classpath/22883)
26 * Fixes to pass the JSR166 TCK
27 * Use awk to construct the classlist on building
28 * Fix deadlock in Logger (PR classpath/35974)
29 * Fix regression in java.lang.String (PR classpath/35482)
30 * Allow Classpath tools to handle @file options.
31 * Allow parseInt to handle a + prefix correctly.
32 * Remove use of 1.5 language constructs in the VM layer.
33
34 Bug fixes in release 0.97.1 (Mar 11, 2007)
35
36 * Include documentation for JSR166 (java.util.concurrent)
37 * Fix STaX API compatability.
38 * Include the tools properties file in the release tarball.
39
40 New in release 0.97 (Feb 22, 2007)
41
42 Build changes:
43
44 * A copy of javah (to produce C header files from Java source code)
45 is now required to generate the files in include.
46 * The javac check has been changed so that it attempts to find ecj,
47 javac and gcj (in that order).  You may override this by using
48 JAVAC=<preferred javac>
49
50 Runtime interface changes:
51
52 * Removed VMFloat.floatToIntBits amd VMDouble.doubleToLongBits.
53 * Added new getParameterAnnotations() methods in Constructor and Method.
54
55 New in release 0.96.1 (Oct 16, 2007)
56
57 * Small compile, configure and build fixes.
58
59 New in release 0.96 (Oct 15, 2007)
60
61 * New experimental GStreamer javax.sound peer (see README.gstreamer)
62 * The JNI interface has been updated to 1.6
63 * Better support for the OpenJDK javac compiler
64 * Support for using javah via tools.zip and com.sun.tools.javah.Main
65 * Much improved Escher AWT peers
66 * Many bug fixes including improvements to AWT and Swing support
67
68 Runtime interface changes:
69
70 * Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default
71   implementations are the same as previous behavior.
72 * Add new default implementations of VMMemoryMXBean.getHeapUsage()
73   and VMMemoryMXBean.getNonHeapUsage() via iteration over the memory
74   pools of the appropriate type.
75
76 New in release 0.95 (Apr 23, 2007)
77
78 * Full merge of 1.5 generics work.
79 * Added 1.6 java.util.ServiceLoader support.
80 * The ASM library is now included.  A separate copy is no longer
81   needed.  gjavah works out of the box now.
82 * The setReadTimeout and getReadTimeout methods have been added to
83   java.net.URLConnection.  They are now fully implemented for http URLs.
84 * The java.lang.management implementation now includes the new features
85   added in 1.6
86 * java.util.TimeZone now reads time zone information from the system
87   zoneinfo files (see also runtime interface changes below).
88 * The collection classes have been updated to support all the 1.6
89   additions.
90 * java.util.spi 1.6 package has been added and is used in java.text.
91 * Bootstrappable with OpenJDK javac compiler
92   (use configure --with-javac).
93 * Large speedups (and locking behaviour updated) in Graphics2D cairo
94   and freetype support.
95 * Better detection of browser plugin mechanism for mozilla, iceweasel,
96   firefox on various platforms.
97 * Inclusion of generic javadoc classes in tools.zip to support more
98   javadoc processing tools.
99 * Added documentation for command lines options for the included GNU
100   Classpath Tools gjar, gjavah, gnative2ascii, gorbd, grmid,
101   grmiregistry, gserialver and gtnameserv.
102
103 Runtime interface changes:
104
105 * gnu.java.lang.management.VMThreadMXBeanImpl has gained three new
106   optional native methods to allow the 1.6 version of the threading
107   bean to be supported.  One (getMonitorInfo) fills in information
108   about object monitor locks held by a thread and is only required
109   if the monitoring of object monitor locks is supported by the VM.
110   The other two (findDeadlockedThreads and getLockInfo) are related
111   to ownable synchronizers (part of the java.util.concurrent suite)
112   and only required if monitoring of locks relating to these is
113   supported by the VM.
114 * java.util.VMTimeZone and java.util.TimeZone have been refactored
115   to simplify the reference implementation.  VMTimeZone.readtzFile()
116   and VMTimeZone.skipFully() have been removed, and a new method
117   VMTimeZone.readSysconfigClockFile() has been introduced.
118 * VMs need to set the system property "gnu.java.util.zoneinfo.dir"
119   to point to the directory where zoneinfo files live.  In libgcj
120   this is set to the value of the TZDATA environment variable, or
121   "/usr/share/zoneinfo" if this is not set.
122 * VMFile has been extended to support new 1.6 methods (canExecute,
123   setReadable, setWritable, setExecutable).
124
125 New in release 0.93 (Dec 8, 2006)
126
127 * CORBA objects that exist on the same virtual machine and only are connected
128   to another ORB are now accessed directly and no longer via network. It is
129   the same feature that RMI implementation provides. These faster calls should
130   be completely transparent, as the parameters are cloned, where required. 
131   Currently the direct calls are only possible for the non-deprecated objects
132   that are connected to the ORB via POA.
133 * The 'javah' tool has been added.  It requires the ASM library
134   (see asm.objectweb.org); it can be enabled with the --with-asm
135   option to configure
136 * Added the rmi and corbaname URL context factories for JNDI.
137 * Fixes in the JNDI InitialContext now allows to plug-in user implementation.
138 * Removed currentClassLoader method from
139   vm/reference/java/io/ObjectInputStream.java.
140 * Added firstNonNullClassLoader method to
141   vm/reference/gnu/classpath/VMStackWalker.java. VMs are encouraged to
142   provide a more efficient implementation.
143 * Added aton method to vm/reference/java/net/VMInetAddress.java.
144 * NetworkInterface has been implemented for systems that provide the
145   `getifaddrs' function.
146 * java.nio.channels.Selector implementations have been added that use
147   the kqueue notification mechanism on Mac OS X and *BSD, and that use
148   the epoll notification mechanism on Linux 2.6.
149 * java.nio has been refactored to support more non-blocking operations
150   natively. Blocking IO classes have been refactored to call
151   non-blocking classes. Non-blocking accepts, connects, and
152   scatter-gather IO should now be better supported.
153 * HTML support for Swing has been greatly enhanced.
154
155 Runtime interface changes:
156
157 * java.net.VMNetworkInterface and java.net.NetworkInterface have been
158   updated to keep native-modified state in the former, and to simplify
159   the native code in our reference implementation.
160 * gnu.java.nio.VMChannel has been expanded to better support native
161   non-blocking IO. Most native state data (such as file descriptor
162   integers) has been abstracted away into private state in the runtime
163   interface.
164 * gnu.java.nio.VMPipe has been similarly changed.
165 * gnu.java.net.VMPlainSocketImpl has been changed to remove some
166   functionality now provided by VMChannel; datagram socket-specific
167   methods have also been moved here, deprecating VMPlainDatagramSocketImpl.
168 * gnu.java.net.VMPlainDatagramSocketImpl removed.
169
170 New in release 0.92 (Aug 9, 2006)
171
172 * GConf is used as a backend for java.util.prefs. GNU Classpath 
173   thanks to Mario Torre for this contribution!
174 * libjawtgnu.so has been renamed libjawt.so for binary compatibility.
175   libjawt.so should be installed in a VM-specific directory rather
176   than directly in /usr/lib.  Proprietary VMs put their libjawt.so
177   implementations in VM-specific directories but search /usr/lib first.
178   If GNU Classpath's libjawt.so is installed in /usr/lib it will create
179   problems for people who use a proprietary VM to run AWT Native
180   Interface applications.
181 * The GdkGraphics2D backend has been made the default.  There is no
182   longer an explicit dependency on Cairo, the --enable-gtk-cairo
183   configure option is gone, and GTK 2.8 or higher is now required to
184   build the GTK peers.
185 * A Mozilla plugin, 'gcjwebplugin', is now included.  It introduces a
186   dependency on the Mozilla plugin support headers and libraries.
187 * New java implementations of png and gif imageio readers and writers.
188 * A tools.texinfo document has been created and now includes
189   documentation about:
190   * appletviewer
191   * gcjwebplugin
192   * jarsigner
193   * keytool
194 * Several new tools are now included:
195   * appletviewer
196   * jar
197   * native2ascii
198   * serialver
199   * keytool
200   * jarsigner
201   A new configure option --enable-tool-wrappers causes wrapper
202   binaries to be built for VMs that support the JNI Invocation API.
203 * We've imported the JSR 166 (concurrency) reference implementation.
204 * javax.sound.midi providers have been added to read and
205   write standard MIDI files.
206 * A javax.sound.sampled .au and .wav file readers have been added.
207 * New Java Virtual Machine Tool Interface header, jvmti.h. 
208 * AWT peers for X Windows based on Escher (a pure java X protocol
209   implementation) have been added. So far it supports AWT 1.1 style
210   Graphics, image loading via ImageIO (PNG, GIF and BMP images in this
211   release), top level components as well as mouse and keyboard input.
212   It is capable of running many Swing applications. Graphics2D and
213   AWT widgets are not yet supported with this peer set.
214 * GConf based util.peers backend (see the --enable-gconf-peer and
215   --enable-default-preferences-peer configure options).
216 * Support for batch importing trusted certificates for use with ssl
217   connections (see script/import-cacerts.sh).
218 * NIO scatter-gather channel support.
219
220 Runtime interface changes:
221
222 * A new class, VMURLConnection, is used to implement
223   URLConnection.guessContentTypeFromStream.  The reference
224   implementation uses libmagic (and falls back to doing nothing if
225   libmagic is not available).
226 * The method gnu.java.io.PlatformHelper.toCanonicalForm() has been
227   replaced with a JNI implementation of VMFile.toCanonicalForm() for
228   GNU/Posix systems.
229 * A new class, VMRuntimeMXBeanImpl, is used to implement
230   the low-level support of the runtime management bean.
231   VMs should use it to supply the input arguments and start
232   time of the VM.  In addition, one of sun.boot.class.path
233   or java.boot.class.path should be defined by the VM to
234   support the optional boot class path access functionality.
235 * The Unsafe class was moved back to the place expected by the JSR 166
236   reference implementation.  We've also added a couple other new VM
237   classes to support the JSR 166 code -- sun.reflect.Reflection and
238   sun.reflect.misc.ReflectUtil.
239 * Another new class, VMClassLoadingMXBeanImpl, is used to implement
240   the low-level support of the class loading management bean.
241   VMs need to supply it with information about how many classes
242   are currently loaded, how many have been unloaded and whether
243   verbose class loading output is on or off.  Provision should also
244   be made for the latter to be toggled at runtime.
245 * VMThreadMXBeanImpl is used to implement the low-level support
246   of the thread management bean.  Providing this interface requires
247   providing a fair amount of information about threads, including
248   optional time and contention monitoring, and instances of the
249   new ThreadInfo class in java.lang.management.  getState() has also
250   been added to the VMThread interface; this is required by the bean
251   as well as java.lang.Thread.
252 * VMMemoryMXBeanImpl is used to implement the low-level support
253   of the memory management bean.  Providing this interface requires
254   providing information about the levels of heap and non-heap memory,
255   and the number of objects eligible for garbage collection.
256 * VMCompilationMXBeanImpl is used to allow for optional compilation
257   time support for Just-In-Time compilers.
258 * VMMemoryPoolMXBeanImpl is used to implement the low-level support
259   of the memory pool beans.  Providing this interface requires
260   providing memory usage statistics for each supported bean.
261 * VMManagementFactory provides the names of the memory pools,
262   memory managers and garbage collectors maintained by the virtual
263   machine.  These are used to create the beans by the ManagementFactory.
264 * VMMemoryManagerMXBeanImpl and VMGarbageCollectorMXBeanImpl provide
265   low-level support for memory managers (including the specific subclass
266   of garbage collecting memory managers).  The interfaces for these
267   require no more than enumerating the number of collections and the
268   time spent (for garbage collectors) and a relationship to the memory
269   pools (for all), along with a validity check.
270
271 New in release 0.91 (May 15, 2006)
272
273 * Experimental activation (java.rmi.activation) support, including RMI
274   activation daemon and persistent naming service tools.
275 * Experimental printing support: The API implementation of the javax.print 
276   packages has been finished and work on the printing provider implementation
277   started. Currently supported features from the Java Print Service API are 
278   print service discovery (CUPS registered printers), single document print 
279   jobs and support for client-formatted print data. An example application
280   (see: examples/gnu/classpath/examples/print/Demo) has been added to show 
281   the API usage for service discovery and printing of files.
282 * The GTKToolkit now gives access to the both the system clipboard and
283   system selection.
284 * Custom mouse cursor support has been added to the gtk+ peers. And cursors
285   can now also be set on light-weight components.
286 * Free Swing improvements: Support for OceanTheme has been mostly completed
287   and turned on as default Metal theme. X11-style Copy and Paste behavior in
288   text components with the middle mouse button. Support cursor changes on
289   various components when resizing. Support for Look and Feel window
290   decorations has been added.
291 * Updated locale data information to CLDR 1.3.
292 * Various bugs in Classpath's SecureRandom implementations have been
293   fixed; that class now respects the "securerandom.source" security
294   property and the "java.security.egd" system property.
295 * Support for assistive technologies has been added to AWT and Swing.
296
297 Runtime interface changes:
298
299 * A new class, VMArray, is now available which separates the native
300   array creation method from java.lang.reflect.Array.  
301 * A new class, gnu.classpath.Unsafe, is provided for handling the
302   new low-level operations required by java.util.concurrent.
303 * The reference implementations of Method, Constructor, and Field
304   now have a new native getModifiersInternal() method.  The public
305   getModifiers() method in each case has been rewritten in terms of
306   this method.
307 * The reference implementation of VMThread has been updated to handle
308   the new Thread.UncaughtExceptionHandler support.
309 * A new class, java.security.VMSecureRandom, is now available that is
310   used to generate random numbers for seeding cryptographically-secure
311   pseudo-random number generators.
312 * VMClass and the reference implementations of Method, Constructor and Field
313   now include a number of 1.5 methods imported from the generics branch.
314   These are all optional (in the sense that the methods associated with them
315   merely fail on use if the VM doesn't provide them, rather than the
316   VM failing altogether), but VMs should aim to support them where possible.
317 * The implementation of java.lang.instrument has been merged to the main
318   branch from the generics branch.
319 * The VM interfaces of the main branch and the generics branch are now
320   consistent with one another.  As a result, the main branch includes an
321   additional environ() function in VMSystem and an additional argument has
322   been added to nativeSpawn() in VMProcess.
323 * Annotation support is now available in the main branch, if the VM supports
324   it. The VM should implement VMClass.getDeclaredAnnotations,
325   Constructor.getAnnotation, Constructor.getDeclaredAnnotations,
326   Field.getAnnotation, Field.getDeclaredAnnotations, Method.getAnnotation and
327   Method.getDeclaredAnnotations.
328 * java.lang.Package now has a new constructor that takes the defining
329   ClassLoader as an extra argument. If you use a custom version of
330   VMClassLoader, please switch it to use this constructor.
331 * The reference implementation of VMClassLoader.getBootPackages() now
332   reads the META-INF/INDEX.LIST resource using the java.boot.class.path
333   system property.
334
335 New in release 0.90 (March 6, 2006)
336
337 * Free Swing improvements: JTable columns are rearrangeable and
338   resizeable with mouse. Painting and scrolling are now much
339   faster. Plain text components now support highlighting and
340   copy+paste to the system clipboard. Support for styled text has been
341   improved, including some very basic HTML support. JFileChooser is
342   now usable. Global event dispatching has been implemented. Memory
343   consumption of Swing components has been reduced. Lots of general
344   bugfixes. Added new system property to turn off Graphics2D use in
345   Swing, even if Graphics2D is available: gnu.javax.swing.noGraphics2D
346
347 * AWT. Improved support for mixing "lightweight" and "heavyweight"
348   Components in Containers. Better support for dynamically updated
349   menus. Better 1.0 event model support for Scrollbars. Better class
350   documentation of gtk+ awt peers.
351
352 * GNU Crypto and Jessie have been merged into GNU Classpath; this
353   provides Classpath with a wide array of cryptographic algorithms
354   (ciphers, message digests, etc.) and implementations of SSL version
355   3 and TLS version 1. These roughly complement the public
356   `java.security.' `javax.crypto,' and `javax.net.ssl' packages, and
357   are service providers implementing the underlying algorithms.
358  
359 * Updated HTTP and FTP URLConnection protocol handlers. HTTPS support
360   out of the box.
361
362 * Unicode 4.0.0 is supported. Character now includes support for using
363   ether a char or an int to identify code points.
364
365 * More correct handling of Object methods and serialization support
366   for Proxy and abstract classes.
367
368 * The new folder tools includes GIOP and RMI stub and tie source code
369   generators, IOR parser and both transient and persistent GIOP naming
370   services.
371
372 * Added experimental support for dynamic creation of the RMI stubs
373   using proxy classes. The rmic compiler is no longer required (unless
374   for research and specific stubs).
375
376 * XML validaton support for RELAX NG and W3C XML schema namespace
377   URIs. RELAX NG pluggable XML schema datatype library API and an
378   implementation for XML Schema Datatypes
379   (http://www.w3.org/TR/xmlschema-2/).
380
381 * Updated StAX implementaton to be compatible with final JSWDP 2.0.
382
383 * The default back end for java.util.prefs has been changed.  The new
384   default is capable of saving and restoring preferences to and from
385   the file system.
386
387 * javax.imageio.plugins.bmp implementation.
388
389 * Added --enable-collections configure option which builds
390   "collections.jar", a 1.1 VM compatibility jar.
391
392 * gnu.regexp updated from GNU/Posix syntax to support util.regex
393   syntax including various Unicode blocks, categories and properties.
394
395 Runtime interface changes:
396
397 * A new class, VMMath, is now available which separates the native
398   mathematical functions from java.lang.Math.  The previous fdlibm
399   implementation now forms the reference material for this class.
400
401 * Updated VMObjectInputStream class to return Thread context class
402   loader if no other class loader is found.
403
404 * Updated documentation on InstrumentationImpl in vmintegration guide.
405
406 New in release 0.20 (Jan 13, 2006)
407
408 * New StAX pull parser and SAX-over-StAX driver. Lots of DOM, SAX/StAX,
409   XPath and XSLT improvements.  Support for XInclude and XML Base added.
410   Conformance is now regularly tested against various test-suites at
411   http://builder.classpath.org/xml/ See also doc/README.jaxp.
412
413 * Full beans XMLEncoder implementation.
414
415 * javax.sound.sampled implementation.
416
417 * javax.print.attribute and javax.print.event implementated.
418
419 * Lots of new datatransfer, print swing and swing.text work and optimization.
420
421 * Additional 1.5 support. Including new (separate) generic branch release.
422
423 * SecurityManager cleanups and start of review of all Permission checks
424   (includes adding lots of new checks to the Mauve test-suite).
425
426 * Buildable on cygwin.
427
428 * Fully buildable as "in-workspace" library-plus-vm inside (native) Eclipse
429   see http://developer.classpath.org/mediation/ClasspathHackingWithEclipse
430
431 * Full example that shows a real world CORBA and Free Swing implementation.
432   See examples/gnu/classpath/examples/CORBA/swing/README.html
433
434 * A list of bug fixes can be found at:
435 http://gcc.gnu.org/bugzilla/buglist.cgi?product=classpath&target_milestone=0.20
436
437 Runtime interface changes:
438
439 * New method VMStackWalker.getClassLoader() was added to avoid an infinite
440   loop between getCallingClassLoader() and Class.getClassLoader().
441
442 * The included fdlibm implementation has seen several cleanups to handle
443   new architectures and namespacing issues (in particular for ppc, darwin
444   and non-C99 compilers). Please double check any arithmetic test against
445   new platforms/runtimes.
446
447 * The gnu.java.net.Plain[Datagram]Socket implementations have been
448   turned into VM reference classes with JNI/Posix implementations.
449
450 New in release 0.19 (Nov 2, 2005)
451
452 * The Swing RepaintManager has been reworked for more efficient painting,
453   especially for large GUIs.
454
455 * The Swing layout manager OverlayLayout has been implemented, the BoxLayout
456   has been rewritten to make use of the SizeRequirements utility class and
457   caching for more efficient layout.
458
459 * Improved accessibility support for Swing.
460
461 * The java.net.HttpURLConnection implementation no longer buffers the
462   entire response body in memory.  This means that response bodies
463   larger than available memory can now be handled.
464
465 * The Andrew Watson, Vice President and Technical Director of the Object
466   Management Group, has officially assigned us 20 bit Vendor Minor Code Id: 
467   0x47430 ("GC") that will mark remote Classpath - specific system exceptions.
468   Obtaining the VMCID means that GNU Classpath now is a recogniseable type of
469   node in a highly interoperable CORBA world. 
470
471 * Classpath now includes the first working draft to support the RMI over
472   IIOP protocol. The current implementation is capable for remote invocations,
473   transferring various Serializables and Externalizables via RMI-IIOP protocol.
474   It can flatten graphs and, at least for the simple cases, is interoperable
475   with Sun's jdk 1.5.
476
477 * Qt4 configury switches for OS-X. Additional to the --enable-qt-peer, OS-X
478   users with a Qt4 installation can build the qt-peers with the argument
479   --with-qt4dir=<Qt4-installation-dir>.
480
481 * Significant progress has been made in the implementation of the 
482   javax.swing.plaf.metal.* package, with most UI delegates in a working state
483   now.  Please test this with your own applications and provide feedback that 
484   will help us to improve this package.
485
486 * The GUI demo (gnu.classpath.examples.swing.Demo) has been extended to 
487   highlight various features in our free-swing implementation. And includes
488   a look and feel switcher (Metal default, Ocean or GNU).
489
490 Runtime interface changes:
491
492 * Changed implementation of VMClassLoader.getPackage(s) : new method
493   VMClassLoader.getBootPackages should be implemented by the vm, and sould
494   return a string array of boot package names ("java.lang", "java.net", ...).
495   Feedback from vm implementors for usability and relevance of the
496   getBootPackages method would be greatly appreciated.
497   
498 New in release 0.18 (Sep 6, 2005)
499
500 * GNU JAWT implementation, the AWT Native Interface, which allows direct
501   access to native screen resources from within a Canvas's paint method.
502   GNU Classpath Examples comes with a Demo, see examples/README.
503 * awt.datatransfer updated to 1.5 with supports for FlavorEvents.
504   The gtk+ awt peers now allow copy/paste of text, images, uris/files
505   and serialized objects with other applications and tracking
506   clipboard change events with gtk+ 2.6 (for gtk+ 2.4 only text and
507   serialized objects are supported). A GNU Classpath Examples
508   datatransfer Demo was added to show the new functionality.
509 * org.omg.PortableInterceptor and related functionality in other packages
510   is now implemented:
511     - The sever and client interceptors work as required since 1.4.
512     - The IOR interceptor works as needed for 1.5. 
513 * The org.omg.DynamicAny package is completed and passes the prepared tests.
514 * The Portable Object Adapter should now support the output of the
515   recent IDL to java compilers. These compilers now generate servants and 
516   not CORBA objects as before, making the output depended on the existing 
517   POA implementation. Completing POA means that such code can already be 
518   tried to run on Classpath. Our POA is tested for the following usager
519   scenarios:
520     - POA converts servant to the CORBA object.
521     - Servant provides to the CORBA object.
522     - POA activates new CORBA object with the given Object Id (byte array) 
523       that is later accessible for the servant.
524     - During the first call, the ServantActivator provides servant for this 
525       and all subsequent calls on the current object.
526     - During each call, the ServantLocator provides servant for this call
527       only.
528     - ServantLocator or ServantActivator forwards call to another server.
529     - POA has a single servant, responsible for all objects.
530     - POA has a default servant, but some objects are explicitly connected 
531       to they specific servants.
532   The POA is verified using tests from the former cost.omg.org.      
533 * The javax.swing.plaf.multi.* package is now implemented.
534 * Editing and several key actions for JTree and JTable were implemented.
535 * Lots of icons and look and feel improvements for Free Swing basic and
536   metal themes were added.  Try running the GNU Classpath Swing Demo in
537   examples (gnu.classpath.examples.swing.Demo) with:
538   -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeel
539   -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
540 * Start of styled text capabilites for java.swing.text.
541 * NIO FileChannel.map implementation, fast bulk put implementation for
542   DirectByteBuffer (speeds up this method 10x).
543 * Split gtk+ awt peers event handling in two threads and improve gdk lock
544   handling (solves several AWT lock ups).
545 * Speed up awt Image loading.
546 * Updated TimeZone data against Olson tzdata2005l.
547 * Make zip and jar UTF-8 "clean".
548 * "native" code  builds and compiles (warning free) on Darwin and Solaris.
549
550 Runtime interface changes:
551
552 * All native resource "pointers" in the VM interface classes are now exposed
553   as gnu.classpath.Pointer objects. This might impact runtimes that
554   optimize and support java.nio.DirectByteBuffers. Creating these classes
555   and accessing the contents as void * pointers for the native reference JNI
556   implementation is done through the JCL_NewRawDataObject and JCL_GetRawData
557   functions.
558 * Simplified the Class/VMClass interface.
559 * Removed loadedClasses map from ClassLoader. It's now the VMs responsibility
560   to manage the list of defined and loaded classes for each class loader.
561 * Moved native methods from java.lang.reflect.Proxy to VMProxy.
562 * Added hook to VMClassLoader to allow VM to do class caching.
563
564 New Untested/Disabled Features:
565
566   The following new features are included, but not ready for production
567   yet. They are explicitly disabled and not supported. But if you want
568   to help with the development of these new features we are interested
569   in feedback. You will have to explicitly enable them to try them out
570   (and they will most likely contain bugs). If you are interested in any
571   of these then please join the mailing-list and follow development in
572   CVS.
573
574 * QT4 AWT peers, enable by giving configure --enable-qt-peer.
575 * JDWP framework, enable by deleting the jdwp references from
576   lib/standard.omit and vm/reference/standard.omit. No default
577   implementation is provided. Work is being done on gcj/gij integration.
578 * StAX java.xml.stream, enable by deleting the gnu.xml.stream and
579   java.xml.stream references in lib/standard.omit.
580
581 New in release 0.17 (Jul 15, 2005)
582
583 * gnu.xml fix for nodes created outside a namespace context.
584 * Add support for output indenting and cdata-section-elements output
585   instruction in xml.transform.
586 * xml.xpath corrections for cases where elements/attributes might have
587   been created in non-namespace-aware mode. Corrections to handling of
588   XSL variables and minor conformance updates.
589 * DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
590   traversal enumerations implemented.
591 * JInternalFrame colors and titlebar draw properly.
592 * JTree is working up to par (icons, selection and keyboard traversal).
593 * JMenus were made more compatible in visual and programmatic behavior.
594 * JTable changeSelection and multiple selections implemented.
595 * JButton and JToggleButton change states work properly now.
596 * JFileChooser fixes.
597 * revalidate and repaint fixes which make Free Swing much more responsive.
598 * Correctly handle system call interrupts and timeouts in native nio
599   and net functions.
600 * MetalIconFactory implemented.
601 * Handle image loading errors correctly for gdkpixbuf and MediaTracker.
602 * Added Tree World to GNU Classpath examples Free Swing demo.
603 * FileChannel.lock() and FileChannel.force() implemented.
604 * java.util.logging.FileHandler now rotates files.
605 * Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).
606 * Corba bug fixes and documentation updates.
607 * Updated gcj build infrastructure.
608 * Documentation fixes all over the place.
609   See http://developer.classpath.org/doc/
610 * VM Integration Guide updates with a full section on VM/Classpath hooks.
611
612 New in release 0.16 (Jun 30, 2005)
613
614 * Better GTK scrollbar peer implementation when using GTK >= 2.6.
615 * GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
616 * BufferedImage and GtkImage rewrites. All image drawing operations
617   should now work correctly (flipping requires gtk+ >= 2.6)
618 * Future Graphics2D, Image and Text work is documented at:
619   http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
620 * Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
621   JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
622   can call add() and setLayout() directly on them, which will have the same
623   effect as calling getContentPane().add() and getContentPane().setLayout().
624 * The JTree interface has been completed. JTrees now recognizes mouse clicks
625   and selections work, but the visual implementation is not yet complete.
626   Work on expansion and collapsing of the tree nodes is being implemented.
627 * BoxLayout works properly now.
628 * Fixed GrayFilter to actually work.
629 * Metal SplitPane implemented.
630 * Lots of free swing text and editor stuff work now.
631
632 * When gtk+ 2.6 or higher is installed the default log handler will produce
633   stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
634
635 * The CORBA implementation is now a working prototype that should support
636   features up till 1.3 inclusive. 
637   We would invite groups writing CORBA dependent applications to
638   try Classpath implementation, reporting any possible bugs.
639
640   The CORBA prototype is interoperable with Sun's implementation v 1.4,
641   transferring object references, primitive types, narrow and wide 
642   strings, arrays, structures, trees, abstract interfaces and 
643   value types (feature of CORBA 2.3) between these two platforms. 
644   The remote exceptions are transferred and handled correctly.
645   The stringified object references (IORs) from various sources are
646   parsed as required. 
647   The transient (for current session) and permanent (till jre restart)
648   redirections work. 
649   Both Little and Big Endian encoded messages are accepted. 
650   The implementation is verified using tests from the former cost.omg.org.
651   The current release includes working examples (see the examples directory),
652   demonstrating the client-server communication, using either CORBA Request
653   or IDL-based  stub (usually generated by a IDL to java compiler).
654   These examples also show how to use the Classpath CORBA naming service.
655   The IDL to java compiler is not yet written, but as our library must be 
656   compatible, it naturally accepts the output of other idlj implementations.
657
658 * New --with-vm-classes configure option, and new 'build' setting
659   for --with-glibj. (Only for integrators.)
660
661 Runtime interface changes:
662
663 * Start of a generic JDWP framework in gnu/classpath/jdwp.
664   This is unfinished, but feedback (at classpath@gnu.org) from runtime
665   hackers is greatly appreciated. Although most of the work is currently
666   being done around gcj/gij we want this framework to be as VM neutral as
667   possible. Early design is described in:
668   http://gcc.gnu.org/ml/java/2005-05/msg00260.html
669 * Native method VMClass.getModifiers() now takes an additional
670   boolean parameter.
671 * Deprecated native method VMClassLoader.defineClass(ClassLoader,
672   String, byte[], int, int) has been replaced by
673   VMClassLoader.defineClass(ClassLoader, String, byte[], int, int,
674   ProtectionDomain)
675 * VMClassLoader.loadClass(String name, boolean resolve) is now native,
676   replacing the former version which just returned null.
677 * Deprecated native method VMClassLoader.getPrimitiveClass(String) has
678   been replaced by new native method VMClassLoader.getPrimitiveClass(char).
679 * Previously empty implementations of methods VMThread.countStackFrames(),
680   VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have
681   been removed; these methods are now native methods.
682 * Fields "exceptionTypes" and "parameterTypes" have been removed from
683   Contructor.java and getExceptionTypes() and getParameterTypes() are
684   now native methods.
685
686 New in release 0.15 (Apr 29, 2005)
687
688 * The old character encoding framework (gnu.java.io.EncodingManager)
689 has been replaced by a system based completely on nio.charset
690 providers. Many converters have been added, both the io, lang and nio
691 frameworks now use the same set of converters and the whole character
692 stream framework (Readers and Writers) have been optimized. For some
693 workloads this leads to 2x till 20x speedups.
694
695 The default charsets supported are:
696
697   Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861,
698   Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13,
699   ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6,
700   ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope,
701   MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman,
702   MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE,
703   UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250,
704   Windows1251, Windows1252, Windows1253, Windows1254, Windows1255,
705   Windows1256, Windows1257, Windows1258.
706
707 Many more encoding are supported through the new IconvProvider
708 depending on the platform iconv support. GNU libiconv is recommended.
709 The IconvProvider is currently not enabled by default. To enable it
710 define the system property gnu.classpath.nio.charset.provider.iconv=true.
711 Some runtimes might choose to enable this by default by setting it
712 through VMSystemProperties. We would like to get feedback on whether
713 enabling or disabling the IconvProvider by default results in the
714 highest speedups.
715
716 * Free swing metal and pluggable look and feels have been improved.
717 The GNU Classpath free swing example can now be run with different
718 "skins" by setting the system property swing.defaultlaf to the GNU,
719 Basic or Metal look and feel.
720
721 * Some of the org.omg.CORBA classes and packages have now been
722 implemented. The Savannah bug tracker contains additional tasks for
723 which we are seeking help.
724
725 * Fixed compatibility problems in the java.beans which affected
726 Eclipse's Visual Editor Project.
727
728 * New completely lock free (Inheritable)ThreadLocal implementation.
729
730 * javax.swing.text.rtf framework added which can handle simple (plain)
731 text tokens.
732
733 * Support for parsing html files into Level 2 Document Object Model
734 (org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of
735 javax.swing.text.html framework added.
736
737 Runtime interface changes:
738
739 * jni.h changed to better support compiling runtimes implementing jni;
740   see VM integration guide for details.
741 * New --enable-default-toolkit option to configure can be used to set
742   the fully qualified class name of the default AWT toolkit to use.
743   If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit
744   is used.
745 * New --disable-core-jni option can be used to disable building the
746   "core" JNI libraries.  This is primarily useful if your VM can use the
747   Gtk peers but not the core JNI libraries.
748 * New system property "gnu.classpath.boot.library.path" can be specified
749   to define the location of the JNI libraries. It is by all means meant
750   ONLY for VM implementors and GNU Classpath hackers. See the hacking
751   guide for more information.
752 * The helper methods currentLoader() and allocateObject() for
753   java.io.ObjectInputStream have been moved to a VMObjectInputStream class.
754   Reference implementations are provided.
755 * java.net.InetAddress now uses VMInetAddress for runtime/platform
756   specific methods getLocalHostname(), getHostByAddr() and
757   getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface
758   for runtime/platform specific getInterfaces() support. Default
759   (Posix/GNU JNI) implementations are provided.
760 * VMClass has a new method getModifiers(Class, boolean) which can be
761   used to get the real modifiers for an inner class or the ones
762   specified by the InnerClasses attribute.
763 * All (possible) runtime specific methods of Object and Double are now
764   in VMObject and VMDouble. Where possible generic reference
765   implementations are provided.
766 * The reference implementation of VMClassLoader now handles zip files
767   on the boot loader class path in getResources().
768
769 Other changes:
770
771 New in release 0.14 (Feb 25, 2005)
772
773 * Character encoders and decoders have been added for:
774   iso-8859-6 (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew),
775   iso-8859-9 (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
776   ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
777   UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little Endian).
778 * Full documentation for all classes can be generated (again) by using
779   the --with-gjdoc configure option.
780 * javax.awt.imageio support through gdkpixbuf.
781
782 Runtime interface changes:
783
784 * VMSecurityManager has been replaced by gnu.classpath.VMStackWalker.
785   currentClassLoader() is no longer needed, and there are also two new
786   methods with non-native implementations. VM implementors are encouraged
787   to provide more efficient versions.
788 * VMRuntime.nativeLoad() now takes an additional ClassLoader parameter.
789
790 New in release 0.13 (Jan 6, 2005)
791
792 * The http url protocol handler has been replaced with a full HTTP/1.1
793   version from GNU inetlib.
794 * A new ftp url protocol handler has been added also from GNU inetlib.
795 * java.beans has been updated to 1.4 including support for XMLEncoder
796   and XMLDecoder.
797 * The java.util.Locale support is now based on the Common Locale Data
798   Repository (CLDR) Project (see http://www.unicode.org/cldr/).
799   GNU Classpath provides support for more than 250 locales now.
800   This new support is experimental and the GNU Classpath hackers are
801   working together with runtime developers and the unicode consortium
802   to improve them in the future.
803   If your runtime misdetects your locale or if the default locale gives
804   problems please try running with -Duser.language=en and -Duser.region=US
805   to fall back on a known good locale.
806 * Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2) and
807   org.w3c.dom (DOM Level 3) interfaces. It is possible to switch between
808   different implementations AElfred2, GNU DOM, GNU XSL, libxmlj SAX,
809   libxmlj DOM and libxmlj XSL by setting different system properties.
810   Also provided is a preliminary XPath 1.0 implementation.
811   The libxmlj versions are build around libxml2 and libxslt and have to
812   be enabled during build time by the --enable-xmlj configure flag.
813   The current support is equal to the last released GNU JAXP 1.3 release.
814   These packages will be maintained as part of the GNU Classpath core classes
815   in the future. For more information, conformance results and documentation
816   on selecting different implementations see doc/README.jaxp.
817 * More AWT accessible support.
818 * AWT gtk+ peers component layout, dialog placement, keyboard focus
819   handling and text positioning have been improved.
820 * ImageIO interfaces are more complete.
821 * JList, JTable and JTree have been hugely improved.
822 * java.awt.Robot support with GdkRobot in the gtk+ awt peers.
823   Needs XTest Extension (libXtst) XServer support.
824 * New --disable-examples configure argument.
825
826 Runtime interface changes:
827
828 * Added a new method (VMRuntime.enableShutdownHooks) that enables the VM
829   to lazily register an exit handler.
830 * The java.lang.Class constructor now automatically sets the protection
831   domain for array classes, based on the protection domain of the component
832   type class.
833 * New gnu.classpath.VMSystemProperties class. This replaces the
834   system properties initialization in VMRuntime. Note that it is
835   now the VMs responsibility to set one additional property:
836   gnu.cpu.endian should be set to "big" or "little".
837 * VMRuntime.nativeGetLibname() has been renamed to VMRuntime.mapLibraryName()
838   and has only one argument, the name of the library.
839 * String and StringBuffer now call VMSystem.arraycopy() directly and don't
840   go through java.lang.System. Be careful to not initialize java.lang.System
841   early in the bootstrap sequence in your VM runtime interface classes.
842 * Some (wrong) documentation about the behavior of VMThread.sleep(0, 0)
843   has been updated. Also, VMThread.sleep() now has a default non-native
844   implementation, but it is a generic implementation that ignores the
845   nano-seconds argument. Runtime hackers are encouraged to provide a more
846   efficient version.
847 * There is prelimenary support for nio direct byte buffers.
848   See VMDirectByteBuffer. Please contact the GNU Classpath mailinglist when
849   you add support for this to your runtime.
850
851 New in release 0.12 (Nov 14, 2004)
852
853 * GNU Classpath's JAR implementation now has preliminary support for
854   signed entries, for so called "signed JAR" file support. Signed JAR
855   files are one of the key security features of managed runtimes, and
856   allows code to run privileged given unforgeable proofs of identity.
857 * A much improved version of X.509 certificates has been added,
858   including a robust certificate path checking algorithm. Also
859   included is an implementation of the RSA signature scheme.
860 * Full java.awt.color implementation, with all standard ICC profiles,
861   except for PhotoYCC color space.
862 * java.beans 1.4 updates and bug fixes.
863 * java.awt.image support updated to 1.4.
864 * Improved build process. Uses less memory with gcj and C code is
865   buildable with -Werror on most platform. Please configure with
866   --enable-Werror and report any remaining issues.
867 * Big-endian (PowerPC) fixes for native awt GTK+ peers.
868 * Checkstyle support, see scripts/checkstyle-config.xml.
869 * Better AWT focus management fro GTK+ peers.
870 * Much faster and better fonts support
871   (for both gdk Graphics and cairo Graphics2D)
872 * AWT Choice fixes for hidden components.
873 * HTTP Connection Handler fixes for POST support.
874 * Much fuller collection documentation.
875 * Lots of Calendar bug fixes.
876 * More javax.imageio support.
877 * Better AWT Help MenuBar support.
878 * Lookahead support for regular expressions.
879 * Serialization object stream fixes for multiple ClassLoader scenarios.
880 * Swing TabbedPane, ColorChooser and ComboBox improvements.
881 * Start of JTree functionality.
882 * Improved Eclipse 3 support for GNU Classpath based runtimes.
883
884 Runtime interface Changes:
885
886 * New --enable-java-lang-system-explicit-initialization configuration
887   option. (Warning, will be replaced in next release, please consult
888   the mailinglist.)
889 * The reference implementation of VMClassLoader has default
890   implementations for getResource(s) and provides support for a new
891   default getSystemClassLoader implementation.
892
893 New in release 0.11 (Sep 13, 2004)
894
895 * javax.swing.Spring and SpringLayout support.
896 * Added pluggable look and feel support for BasicTextFieldUI and
897   BasicToolBarSeparatorUI.
898 * java.swing.text support for (Default and Layered) Highlighter, FieldView,
899   PlainView, TabExpander and TabableView added.
900 * Start of JTable and JTree implementation.
901 * Internal Swing frames work.
902 * JMenu and JPopupMenu work.
903 * New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
904 * java.awt.image LookupTables and kernel support.
905 * Improved java.awt.image.BufferedImage support.
906 * AWT 1.0 event model support.
907 * GNU Classpath now comes with some example programs (see examples/README).
908 * New javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net,
909   javax.net.ssl, javax.security.auth, javax.security.auth.callback,
910   javax.security.auth.login, javax.security.auth.x500, javax.security.sasl
911   and org.ietf.jgss packages are now officially part of GNU Classpath.
912   Extra crypto algorithms can be obtained from the GNU Crypto project,
913   a full TLS implementation is provided by the Jessie project.
914   http://www.gnu.org/software/gnu-crypto/
915   http://www.nongnu.org/jessie/
916 * Frame.setIconImage() support.
917 * AWT GDKGraphics scaling.
918 * New configure flag --enable-gtk-cairo to build Graphics2D implementation
919   build on cairo and pangoft2.  Enabled at runtime by defining the system
920   property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
921 * javax.swing.JSpinner implemented.
922 * Extensive documentation update for java.util collection classes.
923 * java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D implemented.
924 * GNU JAXP is no longer included with GNU Classpath. Runtime, compiler and
925   tool integrators are encouraged to directly integrate GNU JAXP.
926   This release has been tested against GNU JAXP 1.1.
927   http://www.gnu.org/software/classpathx/jaxp/jaxp.html
928 * JColorChooser, JComboBox and JTextField implemented, including example
929   uses in GNU Classpath Examples swing Demo.
930
931 Runtime interface Changes:
932
933 * java.lang.Compiler now uses the new java.lang.VMCompiler; there is
934   a reference implementation that most VMs can use.
935 * java.lang.VMSystem has a new getenv(String) method and a reference C/JNI
936   implementation that should work on most Posix like systems.
937 * java.util.TimeZone has been split into a platform independent class and
938   a platform dependent class VMTimeZone.  GNU Classpath comes with a generic
939   way to get at the default time zone for Posix/GNU-like platforms.
940 * [VM]AccessController improvements.  In particular it handles
941   `doPrivileged' calls better, and allows for recursive `doPrivileged'
942   calls in the same Thread. (see vm/reference/java/security/)
943
944 New in release 0.10 (Jul 9, 2004)
945
946 * java.net.URL now uses application classloader to load URLStreamHandlers
947   and reuses URLStreamHandlers when URL is reset (but protocol isn't changed).
948 * java.io.File.deleteOnExit() implementation.
949 * java.text multiple new features and bug fixes
950   (only 2 out of the 1000+ java.text Mauve tests now fail).
951 * Better (non-black) default AWT System colors.
952 * AWT lists use GTK treeviews.
953 * Proper AWT focus management has been implemented.
954 * Swing menus and scrollpanes are beginning to work.
955 * Swing splitpanes, dialogs and internal frames were added.
956 * Swing repainting / double buffering was redone.
957 * Font management and Pango DPI conversion fixes.
958 * A lot of AWT imaging and event bugs have been picked out.
959 * More of javax.swing.text has been implemented.
960 * javax.swing.Timer has been reimplemented.
961 * java.security.AccessController has been implemented
962   (see runtime section).
963 * The default java.lang.SecurityManager now uses AccessController.
964 * New java.beans.Statement and Expression implementations.
965 * Small FileChannel implementation speed improvement for traditional
966   JNI based systems.
967 * Regenerated all included JNI header files with gcjh (3.5 CVS),
968   removes extra extern modifier and allows stricter compiler warning.
969 * More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and
970   -Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes,
971   made it compilable with C++ compilers and jni.h got renamed from jni.h.in).
972 * Double.toString() and Float.toString() now work properly on 64-bit 
973   PowerPC systems.
974 * PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes.
975 * Build system refactored and removed old Japhar specific support.
976 * The gnu.java.awt.EmbeddedWindow class has been improved, and now
977   supports embedding AWT windows in other top-level X windows.
978   This functionality is required by gcjwebplugin.
979 * gcjwebplugin, an applet viewer that can be embedded into several web
980   browsers, has been extensively tested with this release of classpath.
981   (See http://www.nongnu.org/gcjwebplugin/)
982 * Runtime environments based on GNU Classpath 0.10 should be able to
983   start up Eclipse 3.0 out of the box now.
984
985 Runtime interface Changes:
986
987 * VMProcess.destroy() default implementation fixes.
988 * Fixed the "portable native sync" code; it had been broken since
989   Classpath release 0.06, when we upgraded to GTK+2.    
990   Classpath's AWT peers use GTK+.  GTK+ uses GLIB.  GLIB by default uses
991   the platform's native threading model -- pthreads in most cases.
992   If the Java runtime doesn't use the native threading model, then you should
993   specify --portable-native-sync when configuring Classpath, so that GLIB will
994   use the Java threading primitives instead.  (For a superior alternative,
995   see below.)
996 * The VM can set the system property
997   gnu.classpath.awt.gtk.portable.native.sync instead of using the
998   --portable-native-sync configure-type option.
999   See doc/vmintegration.texinfo for details.
1000 * We intend that the next release of GNU Classpath will require the VM 
1001   to provide JNI 1.2.  Classpath currently uses only JNI 1.1, except for 
1002   one JNI 1.2 function: GetEnv(), in the JNI Invocation API. 
1003   If this poses problems, please raise them on the classpath mailing list.
1004 * The reference implementation of VMThread.holdsLock(Object) now has
1005   a default implementation written in java. For efficiency and to
1006   prevent spurious wakeups a real 'native' runtime version can be supplied.
1007 * There is a new java.security.VMAccessController class that runtimes need
1008   to implement to properly support SecurityManagers. The default
1009   implementation that comes with GNU Classpath makes sure that ANY attempt
1010   to access a protected resource is denied when a SecurityManager is
1011   installed. Which is pretty secure, but also no very useful.
1012   Please see the documentation in
1013   vm/reference/java/security/VMAccessController.java,
1014   and please give feedback on the GNU Classpath mailinglist whether or not
1015   the current AccessController framework is flexible enough.
1016
1017 New in release 0.09 (May 2, 2004)
1018
1019 * Includes updated GNU JAXP version from 2004-02-01.
1020 * Native C code is now -ansi -pedantic (C89) clean and (almost) -Wall clean.
1021 * java.io is now implemented by delegating most tasks directly to java.nio.
1022 * Reworked/Optimized implementations of java.nio.Buffer and subclasses.
1023 * New javax.print, javax.print.attribute[.standard] and javax.print.event
1024   packages and classes.
1025 * java.text attributed iterators support.
1026 * New javax.imageio, javax.imageio.event and javax.imageio.spi packages and
1027   classes.
1028 * GNU Classpath can now load service providers that are described via
1029   META-INF/services/* resources in extension JARs. This is useful for
1030   implementing the various APIs that are supposed to be extensible via
1031   custom plugins. For details, please see the documentation of
1032   gnu.classpath.ServiceFactory.
1033   Application developers are strongly discouraged from calling glibj
1034   internal packages.  Instead, they might want invoke the newly implemented
1035   javax.imageio.spi.ServiceRegistry.lookupProviders, which is a standard 
1036   method for loading plug-ins.
1037 * New developers wanting to help the GNU Classpath project might want to
1038   review the greatly expanded Hacker Guide included in the doc directory
1039   or online at http://www.gnu.org/software/classpath/docs/hacking.html
1040   Also the FAQ has been expanded. And when working from CVS you can now use
1041   a simple autogen.sh script to get all autotools magic done automagically.
1042 * New configure option --with-glibj which defines how to install the glibj
1043   class files as zip, as flat directory files or both (zip|flat|both)
1044   [default=zip].  When working with multiple runtimes some of which might
1045   not support bootstrap classes in zip files the --with-glibj=both option
1046   is recommended (this does take extra disc space).
1047 * Two big code drops from the libgcj gui branch updating various java.awt
1048   and javax.swing classes.
1049 * Multiple java.net.InetAdress fixes and java.rmi fixes.
1050 * ServerSocket.accept() now restarts listening when system call interrupted.
1051 * Much cleanups to make standard API doc valid XHTML (not completed yet).
1052 * A scan for unused variables and non-static invocation of static methods
1053   turned up a couple of subtle bugs which have now all been fixed.
1054 * The Mauve testsuite has been cleaned up considerable and lots of issues
1055   in the GNU Classpath core class implementation have been fixed.
1056
1057 VM Interface changes:
1058
1059 * java.lang.Class/VMClass interface was changed. The interface now no
1060   longer requires an instance of VMClass for each Class instance. Instead
1061   the field vmdata in Class is now of type Object.
1062 * GNU Classpath now assumes that JNI calls SetXField can modify final
1063   fields. This was previously used silently for System.in/out/err and should
1064   be considered as a feature now.
1065 * A new VMProcess and a sample JNI C implementation are now provided to
1066   make Runtime.exec() work out of the box on some systems.  This requires
1067   a small change to VMRuntime.exec() when a runtime wants to use it as the
1068   default java.lang.Process implementation.
1069 * The implementation of most of java.io through java.nio moved serveral
1070   runtime specific I/O methods. Most methods do have a generic default native
1071   C JNI implementation in native/jni/java-nio.
1072 * Runtime support methods for java.io.File have been moved to VMFile which
1073   also comes with a default JNI C implementation.
1074 * To support the new service provider mechanism runtimes must make sure that
1075   extension JARs are made accessible via the default context class loader.
1076
1077 New in release 0.08 (2004/12/03)
1078
1079 * java.util.regexp implementation through gnu.regexp wrappers.
1080 * java.net.URI implementation.
1081 * Working implementation of javax.swing.undo.
1082 * java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and quadratic
1083   equations; implementation adapted from the GNU Scientific Library.
1084 * Lots of java.awt and gtk+ peer improvements. Also more Swing work. Start
1085   of EmbeddedWindow support.
1086 * BufferedReader speed improvements.
1087 * Improved useabilty of java.text implementation for several applications.
1088 * ObjectInputStream is much faster and more compatible with other
1089   implementations.
1090 * Fix handling of alias methods, where a method has been deprecated in
1091   favour of a new one with the same funtion but a different name.
1092   (See Deprecated Methods section in the GNU Classpath Hacking Guide.)
1093 * javax.print.attribute.standard added.
1094 * Lots of java.nio, java.net, java.io
1095 * Depend on autoconf 2.59+ and automake 1.7+, GCJ 3.3+, jikes 1.18+.
1096
1097 VM Interface changes:
1098 * Split native methods in java.lang.Runtime into java.lang.VMRuntime.
1099 * Resources are now also loaded/needed through the bootstrap classloader
1100   (gnu.regexp needs MessageBundle included in glibj.zip
1101
1102 Fixed Classpath bugs:
1103   #6095 java.awt.geom.QuadCurve2D.solveQuadratic sometimes gives
1104         wrong results
1105   #7099 EventListenerList.getListenerCount should accept null argument
1106   #7104 EventListenerList.add does not work
1107   #7105 EventListenerList.remove does not work
1108   #7107 DefaultBoundedRangeModel.setValue and friends should not throw
1109   And lots more.
1110
1111 New in release 0.07 (2003/30/11)
1112
1113 * Works with libtool 1.5 (and 1.4.3).
1114 * java.awt gtk+ peers now depend on gtk+ 2.2.x and uses pango.
1115   Lots and lots improvements on the peers.
1116 * java.awt.geom.CubicCurve2D, java.awt.geom.QuadCurve2D:
1117   Subdivision and flatness calculation implemented.
1118 * java.awt.geom.FlatteningPathIterator: Working implementation.
1119 * gnu.java.awt.BitwiseXORComposite helper class.
1120 * New rmic compilers (jikes, kjc) support.
1121 * java.text bug fixing and 1.4 updates (Currency).
1122 * Hashtable and HashMap function more similar to other implementations.
1123 * javax.naming and java.beans classloader fixes.
1124 * URL parsing, URLConnection, protocol and (needed) permission fixes.
1125 * More java.nio implementation
1126   (API complete, but implementation not finished yet).
1127 * Lots of java.net code cleanup.
1128 * Improved documentation.
1129 * Numerous bug fixes in almost every package, and lots of updates for
1130   1.4 functionality.
1131 * Fixed Classpath bugs:
1132   #2944 Incorrect synchronization in java.util.logging.ErrorManager
1133   #6075 java.awt.geom.GeneralPath.getCurrentPoint returns wrong results
1134   #6076 java.awt.geom.GeneralPath constructor sometimes hangs
1135   #6089 java.awt.geom.GeneralPath.getPathIterator does not work
1136   [...]
1137
1138 VM Interface changes:
1139
1140 * Thread has been split in a VM-independent Thread class and a VM-dependent
1141   VMThread class.
1142
1143 New in release 0.06 (2003/22/08)
1144
1145 * Update java.awt peers to GTK+2.
1146 * java.awt.GridBagLayout implementation.
1147 * javax.swing.border implementation.
1148 * java.security and java.security.cert updated to 1.4 spec.
1149 * New JNI native target code layer. See native/target/readme.txt.
1150 * --enable-regen-headers configure flag for automatic jni .h file generation.
1151 * Removed workaround for gcj 3.2 and lower, gcj 3.3+ or jikes 1.18+ is now
1152   needed for compiling.
1153 * Lots of improvements and/or new classes for java.awt, java.awt.dnd,
1154   java.awt.font, java.awt.geom, java.awt.image, java.io, java.math, java.net,
1155   java.nio, java.rmi, java.text, java.util, javax.swing, javax.swing.plaf,
1156   javax.swing.text.
1157
1158 VM Interface changes:
1159
1160 * VMClassLoader.loadClass(), the bootstrap classloader called by
1161   Class.forName() and ClassLoader.loadClass(), may now return null when
1162   a class is not found instead of throwing a new ClassNotFoundException.
1163   This is a performance optimization in some cases. This also changes
1164   the Class.forName() reference code.
1165 * Native methods in Class have been moved to VMClass.  A few additional
1166   methods are also available in VMClass to provide optional performance
1167   improvements.
1168 * A VM can now supply its own String.intern() strategy through the
1169   VMString class. The supplied VMString reference class implements the
1170   original WeakHashMap strategy.
1171 * Float and Double to/from bits conversion functions can now be supplied by
1172   the VM through VMFloat and VMDouble. Default JNI conversion methods are
1173   supplied.
1174
1175 New in release 0.05 (2003/02/15)
1176 * Supports free Java VMs Jikes RVM and Kissme out of the box, perhaps others.
1177 * Supports GNU Crypto 1.1 as the official provider of cryptographic primitives
1178   and tools for GNU Classpath, available separately from 
1179   http://www.gnu.org/software/classpathx/crypto/crypto.html. 
1180 * Supports GNU Classpath Tools sub-project of GNU Classpath, official provider
1181   of standard tools such as gjdoc, a javadoc replacement, and others.  Future
1182   releases of GNU Classpath will begin to include these tools, available
1183   separately from http://www.gnu.org/software/cp-tools/.
1184 * Java primitives can be used to support AWT native threading, see 
1185   the --enable-portable-native-sync configure option which may become the
1186   default in a future release.
1187 * Include file jni.h has been updated to the 1.4 specification.
1188 * VM specific internal types for jobject, jfieldID, and jmethodID are
1189   supported in jni.h.  More details can be found by reading the comment
1190   in include/jni.h.in.  By default the old definitions are used instead.
1191 * New VM helper class java.io.VMObjectStreamClass which should provide
1192   the hasClassInitializer() method. Previously ObjectStreamClass used
1193   Class.getDeclaredMethod("<clinit>") but according to the spec this
1194   should always throw NoSuchMethodException for class initialization methods.
1195   A JNI reference implementation is provided as
1196   vm/reference/java-io/java_io_VMObjectStreamClass.c
1197 * There have been numerous infrastructure improvements
1198   * Configure option --enable-gjdoc to generate javadoc-like output 
1199   * Gjdoc output is included with distribution, see doc/api/html/
1200   * DESTDIR fully supported for install and uninstall
1201 * Runtime.execInternal contract changed to allow for null `env'
1202   and to accept `dir' argument.
1203 * VMObject.getClass() removed. It was never used.
1204 * java.lang.Throwable is now a 'normal' GNU Classpath class that uses the
1205   VM specific java.lang.VMThrowable to get at the VM state and (if needed)
1206   the StackTraceElements for a particular exception. A default implementation
1207   (that does nothing) is provided in vm/reference/java/lang/VMThrowable.java.
1208 * The vm/reference classes from the gnu.vm.stack and their counterparts
1209   ExecutionStack and StackFrame in gnu.java.lang have been removed since they
1210   are not actually part of the VM interface anyway.
1211 * The GPLed com.sun.javadoc classes have been moved to the gjdoc application
1212   from the GNU Classpath Tools project. See for more information the homepage
1213   at: <http://www.gnu.org/software/cp-tools/>.
1214
1215 New in release 0.04 (2002/05/05)
1216 * Additional configure options to disable zip creation and installation as
1217   well as disable gtk peer native compilation.
1218 * Addition of java.nio, java.util.logging, and javax.swing.
1219 * Integration of most or all of the ORP patches to date, the purpose of 
1220   which are to make it possible to use JBOSS with ORP and Classpath.  This
1221   is still in a testing phase however.
1222 * Significant changes in the reference VM interface that may require
1223   support from the JVMs.
1224 * Lots of bugfixes.
1225
1226 New in release 0.03 (2002/02/08)
1227 * More merges with libgcj have been performed including java.math which now
1228   provides a pure Java implementation of that package.
1229   Current status at <http://gcc.gnu.org/java/libgcj-classpath-compare.html>
1230 * A pure Java implementation (Jazzlib) of java.util.zip is available.
1231 * Added the java.rmi implementation that Transvirtual donated to the FSF.
1232 * Includes jni.h now, eliminating the need to specify a particular VM
1233   via configure.
1234 * No proprietary classes or programs are required to compile.
1235   Compiles out of the box with jikes or gcj.
1236 * Separation of compiling Java source and native libraries through the 
1237   configure mechanism.  If given no arguments, configure will setup the
1238   subsequent build to only produce Java bytecode (.class files).  More
1239   information is available in INSTALLING.
1240 * Support for compiling in a separate directory, as an example you may
1241   cd classpath-0.03; mkdir build; cd build; ../configure; make
1242 * Works with Orp 1.0.9 out of the box. Build instructions can be found at
1243   <http://www.gnu.org/software/classpath/doc/orp.html>
1244 * Lots of bugfixes that were found by using Classpath with the gcj, Orp,
1245   SableVM, KissMe and Jaos VMs. Please use our bugdatabase at
1246   <http://savannah.gnu.org/support/?group_id=85>
1247 * Lots of updates to make Classpath more compliant with the 1.2, 1.3 and 1.4
1248   API specification. The current status can be found at
1249   <http://www.gnu.org/software/classpath/status.html>
1250 * All files are now distributed under the same terms. Added clarification to
1251   GPL exception.
1252
1253 New in release 0.02 (2001/01/06)
1254 * Support for printing exceptions with Japhar 0.09 + patch included in
1255   resource/japhar-0.09.patch.1.
1256 * Typos, assorted bugfixes.
1257
1258 New in release 0.01 (2000/11/20)
1259 * More packages are included now, though many remain untested.
1260 * Support for Japhar 0.09 included.
1261
1262 New in release 0.00 (1999/02/01)
1263 * First official development release of clean room class library for Java
1264 * Following packages included:
1265         -- java.beans
1266         -- java.io
1267         -- java.lang
1268         -- java.lang.reflect
1269         -- java.math
1270         -- java.net
1271         -- java.security (partial and non-functioning)
1272         -- java.security.acl
1273         -- java.security.interfaces
1274         -- java.util
1275 * Code is mostly Java 2 (see JDK 1.2) compatible with some functionality
1276   missing and/or untested.
1277 * Support for Japhar (http://www.japhar.org/) virtual machine is included.
1278   Requires the current Japhar from CVS.
1279 * Extensive javadoc comments for public API included
1280 * Licensed under the GNU Library General Public License (see COPYING.LIB)
1281 * Does not depend on any non-free code - developed in a "clean room"
1282   environment.
1283