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