Merge GNU Classpath 0.99 into libjava.
[gcc.git] / libjava / classpath / NEWS
index 55cb064c982c69687f722853bd7b19c8df666c25..dd2e1568ff26c426d294f7c7f33157497c2a47ae 100644 (file)
@@ -1,3 +1,666 @@
+New in release 0.99 (Mar 08, 2012)
+
+* Addition of java.util.regex.Pattern.quote.
+* Addition of java.io.IOError.
+* Addition of java.io.Console.
+* Bug fixes:
+  - PR39408: gjavah doesn't generate constants in header files where they occur in a superclass
+  - PR40590: namespace namespace broken in CNI
+  - PR40630: java.util.Scanner fails when used for charset generation by the OpenJDK build
+  - PR40653: Issue with XML stream writer and namespaces
+  - PR40663: Support Stax API 1.0.1
+  - PR39177: trunk revision 144128 - jar: internal error: java.lang.NullPointerException
+  - PR41696: java.util.zip.Inflater:finished () returns false when it should return true
+  - PR43536: CopyOnWriteArrayList bug in delete() when empty
+  - PR36560: java.util.zip: Error parsing zip file with larger files in it
+  - Restrict access to VM classes.
+  - Cleanup use of message resources.
+  - Throw exception when encrypted zip file entries are encountered.
+  - Fix infinite recursion in javax.print.attribute.standard.JobStateReasons.add.
+  - Native code cleanups in GtkToolkit.c and jcl.c.
+  - Only log when debugging is on.
+  - PR44411: System.nanoTime() is not independent of wall-clock time
+  - PR46775: Calling Policy.setPolicy with a new Policy object has no effect on the DefaultSecurityManager
+  - Use implementation of VMClass.getSimpleName from gcj.
+  - Simplify security determination in ProtectionDomain in situations where all permissions are available.
+  - PR42390: Missing Security Manager checks in classpath apis
+  - Throw NullPointerExceptions appropriately for compatibility with OpenJDK.
+  - Use Integer.parseInt in preference to Integer.decode in java.util.Formatter.
+  - Use same default capacity in java.util.HashMap as documented in OpenJDK.
+  - Check for hashcode equality before calling equals in java.util.HashMap.put
+  - Make sure match is within input data limits in java.util.regex.Matcher.find.
+  - Fix misuse of ArrayList.set in javax.swing.text.html.StyleSheet.resolveStyle.
+  - PR48131: java.util.zip.ZipException: incomplete dynamic bit lengths tree
+  - Check for negative capacity in VMDirectByteBuffer's native code.
+  - PR42823: tcp/ip sockets read/write operations causes memory leak 
+  - Generate META-INF/INDEX.LST for glibj.zip
+  - Fix issues when building with -Werror and gcc 4.6.
+  - PR40188: javah creates constants using name of superclass
+  - PR45527: gjavah encodes $ as used in inner classes as 00024 where Oracle's javah does not
+  - PR45526: gjavah does not implicitly produce header files for inner classes
+  - Fix NullPointerException for null keys in java.util.HashMap.put.
+  - Fix BEAST security issue in gnu.javax.net.ssl.provider.
+  - RH712013: pdftk crashes with java.lang.ArrayIndexOutOfBoundsException
+* Updated to libtool 2.x.
+* Lots of warning fixes / addition of generics.
+* Fix license headers in tools.
+* Normalise whitespace.
+* Maintenance work on javac detection.
+* Mark plugin as unmaintained and disable by default.
+
+New in release 0.98 (Feb 05, 2009)
+
+* Native support for BigInteger is now provided using the GMP
+library.  A new option, --enable/disable-gmp is provided, and
+the option is enabled by default if GMP is found.
+* Classpath now makes use of a new StringBuilder implementation
+internally called CPStringBuilder.  In addition to being
+unsynchronised, like StringBuilder, this also avoids copying the
+array when toString or substring is called.  While StringBuffer/Builder
+always retain their own array, which is only altered during resizing,
+CPStringBuilder gives away its array when the result is generated
+by toString()/substring() and starts afresh.  The default capacity of
+CPStringBuilder can also be configured using the
+gnu.classpath.cpstringbuilder.capacity property. (PR21869)
+* gjdoc is now built as part of tools.zip.
+* Import of the Java Activation Framework from ClasspathX to provide
+javax.activation (part of 1.6).
+* Preliminary version of java.util.Scanner (PR30436)
+* Reduce cost of ThreadLocal(s) to improve Jython performance (PR33690)
+* Updated to use CLDR 1.5.1 (PR35237)
+* Many bug fixes including:
+  - PR22851: zoneStrings in gnu/java/locale/LocaleInformation*
+  - PR31895: setCurrency(Currency) does not actually change the currency.
+  - PR32028: Make fails at gjdoc
+  - PR34840: Mismatch between Sun and Classpath's java.lang.Appendable
+  - PR35487: gcj causes ConcurrentModificationException during tomcat5
+  - PR35690: javax.tools.FileObject.toUri is in wrong case
+  - PR36085: java.util.regex escape-sequence handling 
+  - PR36147: Apache Tomcat fails to read descriptors using GNU XML
+  - PR36219: gnu.xml.transform.SortKey isn't subclass
+  - PR36220: NPEs in gnu.xml.transform.* clone methods 
+  - PR36221: DomDOMException running SPEC jvm 2008 xml.transform
+  - PR36477: OOME in CPStringBuilder when running Eclipse
+  - PR36522: Policy file is not read at all
+  - PR36636: gjar -u doesn't work
+  - PR36637: --without-fastjar doesn't wor
+  - PR36677: Omission bug in JDWP VirtualMachineCommandSet 
+  - PR38417: gnu.java.security.util.PRNG produces easily predictable values
+  - PR38473: Segmentation fault in retrieving font outline decomposition 
+  - PR38861: Support XULRunner 1.9.1.
+  - PR38912: XMLParser not interning element names 
+
+Runtime interface changes:
+
+  * VMSecureRandom has moved to gnu.java.security.jce.prng.VMSecureRandom
+  as part of the fix for PR38417.
+  * gnu.java.lang.VMCPStringBuilder has been added and should be added to
+  avoid the inefficency of reflection when creating non-copied String objects.
+
+Bug fixes in release 0.97.2 (Jun 06, 2007)
+
+* Include headers in the release tarball.
+* Allow the building of tools to be optional.
+* Only check for a Java compiler when required.
+* Allow VMOperatingSystemMXBeanImpl to compile on Solaris.
+* Documentation typo fixes
+* Fix memory leak in native/jni/classpath/jcl.c
+* Web page updates (PR classpath/22883)
+* Fixes to pass the JSR166 TCK
+* Use awk to construct the classlist on building
+* Fix deadlock in Logger (PR classpath/35974)
+* Fix regression in java.lang.String (PR classpath/35482)
+* Allow Classpath tools to handle @file options.
+* Allow parseInt to handle a + prefix correctly.
+* Remove use of 1.5 language constructs in the VM layer.
+
+Bug fixes in release 0.97.1 (Mar 11, 2007)
+
+* Include documentation for JSR166 (java.util.concurrent)
+* Fix STaX API compatability.
+* Include the tools properties file in the release tarball.
+
+New in release 0.97 (Feb 22, 2007)
+
+Build changes:
+
+* A copy of javah (to produce C header files from Java source code)
+is now required to generate the files in include.
+* The javac check has been changed so that it attempts to find ecj,
+javac and gcj (in that order).  You may override this by using
+JAVAC=<preferred javac>
+
+Runtime interface changes:
+
+* Removed VMFloat.floatToIntBits amd VMDouble.doubleToLongBits.
+* Added new getParameterAnnotations() methods in Constructor and Method.
+
+New in release 0.96.1 (Oct 16, 2007)
+
+* Small compile, configure and build fixes.
+
+New in release 0.96 (Oct 15, 2007)
+
+* New experimental GStreamer javax.sound peer (see README.gstreamer)
+* The JNI interface has been updated to 1.6
+* Better support for the OpenJDK javac compiler
+* Support for using javah via tools.zip and com.sun.tools.javah.Main
+* Much improved Escher AWT peers
+* Many bug fixes including improvements to AWT and Swing support
+
+Runtime interface changes:
+
+* Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default
+  implementations are the same as previous behavior.
+* Add new default implementations of VMMemoryMXBean.getHeapUsage()
+  and VMMemoryMXBean.getNonHeapUsage() via iteration over the memory
+  pools of the appropriate type.
+
+New in release 0.95 (Apr 23, 2007)
+
+* Full merge of 1.5 generics work.
+* Added 1.6 java.util.ServiceLoader support.
+* The ASM library is now included.  A separate copy is no longer
+  needed.  gjavah works out of the box now.
+* The setReadTimeout and getReadTimeout methods have been added to
+  java.net.URLConnection.  They are now fully implemented for http URLs.
+* The java.lang.management implementation now includes the new features
+  added in 1.6
+* java.util.TimeZone now reads time zone information from the system
+  zoneinfo files (see also runtime interface changes below).
+* The collection classes have been updated to support all the 1.6
+  additions.
+* java.util.spi 1.6 package has been added and is used in java.text.
+* Bootstrappable with OpenJDK javac compiler
+  (use configure --with-javac).
+* Large speedups (and locking behaviour updated) in Graphics2D cairo
+  and freetype support.
+* Better detection of browser plugin mechanism for mozilla, iceweasel,
+  firefox on various platforms.
+* Inclusion of generic javadoc classes in tools.zip to support more
+  javadoc processing tools.
+* Added documentation for command lines options for the included GNU
+  Classpath Tools gjar, gjavah, gnative2ascii, gorbd, grmid,
+  grmiregistry, gserialver and gtnameserv.
+
+Runtime interface changes:
+
+* gnu.java.lang.management.VMThreadMXBeanImpl has gained three new
+  optional native methods to allow the 1.6 version of the threading
+  bean to be supported.  One (getMonitorInfo) fills in information
+  about object monitor locks held by a thread and is only required
+  if the monitoring of object monitor locks is supported by the VM.
+  The other two (findDeadlockedThreads and getLockInfo) are related
+  to ownable synchronizers (part of the java.util.concurrent suite)
+  and only required if monitoring of locks relating to these is
+  supported by the VM.
+* java.util.VMTimeZone and java.util.TimeZone have been refactored
+  to simplify the reference implementation.  VMTimeZone.readtzFile()
+  and VMTimeZone.skipFully() have been removed, and a new method
+  VMTimeZone.readSysconfigClockFile() has been introduced.
+* VMs need to set the system property "gnu.java.util.zoneinfo.dir"
+  to point to the directory where zoneinfo files live.  In libgcj
+  this is set to the value of the TZDATA environment variable, or
+  "/usr/share/zoneinfo" if this is not set.
+* VMFile has been extended to support new 1.6 methods (canExecute,
+  setReadable, setWritable, setExecutable).
+
+New in release 0.93 (Dec 8, 2006)
+
+* CORBA objects that exist on the same virtual machine and only are connected
+  to another ORB are now accessed directly and no longer via network. It is
+  the same feature that RMI implementation provides. These faster calls should
+  be completely transparent, as the parameters are cloned, where required. 
+  Currently the direct calls are only possible for the non-deprecated objects
+  that are connected to the ORB via POA.
+* The 'javah' tool has been added.  It requires the ASM library
+  (see asm.objectweb.org); it can be enabled with the --with-asm
+  option to configure
+* Added the rmi and corbaname URL context factories for JNDI.
+* Fixes in the JNDI InitialContext now allows to plug-in user implementation.
+* Removed currentClassLoader method from
+  vm/reference/java/io/ObjectInputStream.java.
+* Added firstNonNullClassLoader method to
+  vm/reference/gnu/classpath/VMStackWalker.java. VMs are encouraged to
+  provide a more efficient implementation.
+* Added aton method to vm/reference/java/net/VMInetAddress.java.
+* NetworkInterface has been implemented for systems that provide the
+  `getifaddrs' function.
+* java.nio.channels.Selector implementations have been added that use
+  the kqueue notification mechanism on Mac OS X and *BSD, and that use
+  the epoll notification mechanism on Linux 2.6.
+* java.nio has been refactored to support more non-blocking operations
+  natively. Blocking IO classes have been refactored to call
+  non-blocking classes. Non-blocking accepts, connects, and
+  scatter-gather IO should now be better supported.
+* HTML support for Swing has been greatly enhanced.
+
+Runtime interface changes:
+
+* java.net.VMNetworkInterface and java.net.NetworkInterface have been
+  updated to keep native-modified state in the former, and to simplify
+  the native code in our reference implementation.
+* gnu.java.nio.VMChannel has been expanded to better support native
+  non-blocking IO. Most native state data (such as file descriptor
+  integers) has been abstracted away into private state in the runtime
+  interface.
+* gnu.java.nio.VMPipe has been similarly changed.
+* gnu.java.net.VMPlainSocketImpl has been changed to remove some
+  functionality now provided by VMChannel; datagram socket-specific
+  methods have also been moved here, deprecating VMPlainDatagramSocketImpl.
+* gnu.java.net.VMPlainDatagramSocketImpl removed.
+
+New in release 0.92 (Aug 9, 2006)
+
+* GConf is used as a backend for java.util.prefs. GNU Classpath 
+  thanks to Mario Torre for this contribution!
+* libjawtgnu.so has been renamed libjawt.so for binary compatibility.
+  libjawt.so should be installed in a VM-specific directory rather
+  than directly in /usr/lib.  Proprietary VMs put their libjawt.so
+  implementations in VM-specific directories but search /usr/lib first.
+  If GNU Classpath's libjawt.so is installed in /usr/lib it will create
+  problems for people who use a proprietary VM to run AWT Native
+  Interface applications.
+* The GdkGraphics2D backend has been made the default.  There is no
+  longer an explicit dependency on Cairo, the --enable-gtk-cairo
+  configure option is gone, and GTK 2.8 or higher is now required to
+  build the GTK peers.
+* A Mozilla plugin, 'gcjwebplugin', is now included.  It introduces a
+  dependency on the Mozilla plugin support headers and libraries.
+* New java implementations of png and gif imageio readers and writers.
+* A tools.texinfo document has been created and now includes
+  documentation about:
+  * appletviewer
+  * gcjwebplugin
+  * jarsigner
+  * keytool
+* Several new tools are now included:
+  * appletviewer
+  * jar
+  * native2ascii
+  * serialver
+  * keytool
+  * jarsigner
+  A new configure option --enable-tool-wrappers causes wrapper
+  binaries to be built for VMs that support the JNI Invocation API.
+* We've imported the JSR 166 (concurrency) reference implementation.
+* javax.sound.midi providers have been added to read and
+  write standard MIDI files.
+* A javax.sound.sampled .au and .wav file readers have been added.
+* New Java Virtual Machine Tool Interface header, jvmti.h. 
+* AWT peers for X Windows based on Escher (a pure java X protocol
+  implementation) have been added. So far it supports AWT 1.1 style
+  Graphics, image loading via ImageIO (PNG, GIF and BMP images in this
+  release), top level components as well as mouse and keyboard input.
+  It is capable of running many Swing applications. Graphics2D and
+  AWT widgets are not yet supported with this peer set.
+* GConf based util.peers backend (see the --enable-gconf-peer and
+  --enable-default-preferences-peer configure options).
+* Support for batch importing trusted certificates for use with ssl
+  connections (see script/import-cacerts.sh).
+* NIO scatter-gather channel support.
+
+Runtime interface changes:
+
+* A new class, VMURLConnection, is used to implement
+  URLConnection.guessContentTypeFromStream.  The reference
+  implementation uses libmagic (and falls back to doing nothing if
+  libmagic is not available).
+* The method gnu.java.io.PlatformHelper.toCanonicalForm() has been
+  replaced with a JNI implementation of VMFile.toCanonicalForm() for
+  GNU/Posix systems.
+* A new class, VMRuntimeMXBeanImpl, is used to implement
+  the low-level support of the runtime management bean.
+  VMs should use it to supply the input arguments and start
+  time of the VM.  In addition, one of sun.boot.class.path
+  or java.boot.class.path should be defined by the VM to
+  support the optional boot class path access functionality.
+* The Unsafe class was moved back to the place expected by the JSR 166
+  reference implementation.  We've also added a couple other new VM
+  classes to support the JSR 166 code -- sun.reflect.Reflection and
+  sun.reflect.misc.ReflectUtil.
+* Another new class, VMClassLoadingMXBeanImpl, is used to implement
+  the low-level support of the class loading management bean.
+  VMs need to supply it with information about how many classes
+  are currently loaded, how many have been unloaded and whether
+  verbose class loading output is on or off.  Provision should also
+  be made for the latter to be toggled at runtime.
+* VMThreadMXBeanImpl is used to implement the low-level support
+  of the thread management bean.  Providing this interface requires
+  providing a fair amount of information about threads, including
+  optional time and contention monitoring, and instances of the
+  new ThreadInfo class in java.lang.management.  getState() has also
+  been added to the VMThread interface; this is required by the bean
+  as well as java.lang.Thread.
+* VMMemoryMXBeanImpl is used to implement the low-level support
+  of the memory management bean.  Providing this interface requires
+  providing information about the levels of heap and non-heap memory,
+  and the number of objects eligible for garbage collection.
+* VMCompilationMXBeanImpl is used to allow for optional compilation
+  time support for Just-In-Time compilers.
+* VMMemoryPoolMXBeanImpl is used to implement the low-level support
+  of the memory pool beans.  Providing this interface requires
+  providing memory usage statistics for each supported bean.
+* VMManagementFactory provides the names of the memory pools,
+  memory managers and garbage collectors maintained by the virtual
+  machine.  These are used to create the beans by the ManagementFactory.
+* VMMemoryManagerMXBeanImpl and VMGarbageCollectorMXBeanImpl provide
+  low-level support for memory managers (including the specific subclass
+  of garbage collecting memory managers).  The interfaces for these
+  require no more than enumerating the number of collections and the
+  time spent (for garbage collectors) and a relationship to the memory
+  pools (for all), along with a validity check.
+
+New in release 0.91 (May 15, 2006)
+
+* Experimental activation (java.rmi.activation) support, including RMI
+  activation daemon and persistent naming service tools.
+* Experimental printing support: The API implementation of the javax.print 
+  packages has been finished and work on the printing provider implementation
+  started. Currently supported features from the Java Print Service API are 
+  print service discovery (CUPS registered printers), single document print 
+  jobs and support for client-formatted print data. An example application
+  (see: examples/gnu/classpath/examples/print/Demo) has been added to show 
+  the API usage for service discovery and printing of files.
+* The GTKToolkit now gives access to the both the system clipboard and
+  system selection.
+* Custom mouse cursor support has been added to the gtk+ peers. And cursors
+  can now also be set on light-weight components.
+* Free Swing improvements: Support for OceanTheme has been mostly completed
+  and turned on as default Metal theme. X11-style Copy and Paste behavior in
+  text components with the middle mouse button. Support cursor changes on
+  various components when resizing. Support for Look and Feel window
+  decorations has been added.
+* Updated locale data information to CLDR 1.3.
+* Various bugs in Classpath's SecureRandom implementations have been
+  fixed; that class now respects the "securerandom.source" security
+  property and the "java.security.egd" system property.
+* Support for assistive technologies has been added to AWT and Swing.
+
+Runtime interface changes:
+
+* A new class, VMArray, is now available which separates the native
+  array creation method from java.lang.reflect.Array.  
+* A new class, gnu.classpath.Unsafe, is provided for handling the
+  new low-level operations required by java.util.concurrent.
+* The reference implementations of Method, Constructor, and Field
+  now have a new native getModifiersInternal() method.  The public
+  getModifiers() method in each case has been rewritten in terms of
+  this method.
+* The reference implementation of VMThread has been updated to handle
+  the new Thread.UncaughtExceptionHandler support.
+* A new class, java.security.VMSecureRandom, is now available that is
+  used to generate random numbers for seeding cryptographically-secure
+  pseudo-random number generators.
+* VMClass and the reference implementations of Method, Constructor and Field
+  now include a number of 1.5 methods imported from the generics branch.
+  These are all optional (in the sense that the methods associated with them
+  merely fail on use if the VM doesn't provide them, rather than the
+  VM failing altogether), but VMs should aim to support them where possible.
+* The implementation of java.lang.instrument has been merged to the main
+  branch from the generics branch.
+* The VM interfaces of the main branch and the generics branch are now
+  consistent with one another.  As a result, the main branch includes an
+  additional environ() function in VMSystem and an additional argument has
+  been added to nativeSpawn() in VMProcess.
+* Annotation support is now available in the main branch, if the VM supports
+  it. The VM should implement VMClass.getDeclaredAnnotations,
+  Constructor.getAnnotation, Constructor.getDeclaredAnnotations,
+  Field.getAnnotation, Field.getDeclaredAnnotations, Method.getAnnotation and
+  Method.getDeclaredAnnotations.
+* java.lang.Package now has a new constructor that takes the defining
+  ClassLoader as an extra argument. If you use a custom version of
+  VMClassLoader, please switch it to use this constructor.
+* The reference implementation of VMClassLoader.getBootPackages() now
+  reads the META-INF/INDEX.LIST resource using the java.boot.class.path
+  system property.
+
+New in release 0.90 (March 6, 2006)
+
+* Free Swing improvements: JTable columns are rearrangeable and
+  resizeable with mouse. Painting and scrolling are now much
+  faster. Plain text components now support highlighting and
+  copy+paste to the system clipboard. Support for styled text has been
+  improved, including some very basic HTML support. JFileChooser is
+  now usable. Global event dispatching has been implemented. Memory
+  consumption of Swing components has been reduced. Lots of general
+  bugfixes. Added new system property to turn off Graphics2D use in
+  Swing, even if Graphics2D is available: gnu.javax.swing.noGraphics2D
+
+* AWT. Improved support for mixing "lightweight" and "heavyweight"
+  Components in Containers. Better support for dynamically updated
+  menus. Better 1.0 event model support for Scrollbars. Better class
+  documentation of gtk+ awt peers.
+
+* GNU Crypto and Jessie have been merged into GNU Classpath; this
+  provides Classpath with a wide array of cryptographic algorithms
+  (ciphers, message digests, etc.) and implementations of SSL version
+  3 and TLS version 1. These roughly complement the public
+  `java.security.' `javax.crypto,' and `javax.net.ssl' packages, and
+  are service providers implementing the underlying algorithms.
+* Updated HTTP and FTP URLConnection protocol handlers. HTTPS support
+  out of the box.
+
+* Unicode 4.0.0 is supported. Character now includes support for using
+  ether a char or an int to identify code points.
+
+* More correct handling of Object methods and serialization support
+  for Proxy and abstract classes.
+
+* The new folder tools includes GIOP and RMI stub and tie source code
+  generators, IOR parser and both transient and persistent GIOP naming
+  services.
+
+* Added experimental support for dynamic creation of the RMI stubs
+  using proxy classes. The rmic compiler is no longer required (unless
+  for research and specific stubs).
+
+* XML validaton support for RELAX NG and W3C XML schema namespace
+  URIs. RELAX NG pluggable XML schema datatype library API and an
+  implementation for XML Schema Datatypes
+  (http://www.w3.org/TR/xmlschema-2/).
+
+* Updated StAX implementaton to be compatible with final JSWDP 2.0.
+
+* The default back end for java.util.prefs has been changed.  The new
+  default is capable of saving and restoring preferences to and from
+  the file system.
+
+* javax.imageio.plugins.bmp implementation.
+
+* Added --enable-collections configure option which builds
+  "collections.jar", a 1.1 VM compatibility jar.
+
+* gnu.regexp updated from GNU/Posix syntax to support util.regex
+  syntax including various Unicode blocks, categories and properties.
+
+Runtime interface changes:
+
+* A new class, VMMath, is now available which separates the native
+  mathematical functions from java.lang.Math.  The previous fdlibm
+  implementation now forms the reference material for this class.
+
+* Updated VMObjectInputStream class to return Thread context class
+  loader if no other class loader is found.
+
+* Updated documentation on InstrumentationImpl in vmintegration guide.
+
+New in release 0.20 (Jan 13, 2006)
+
+* New StAX pull parser and SAX-over-StAX driver. Lots of DOM, SAX/StAX,
+  XPath and XSLT improvements.  Support for XInclude and XML Base added.
+  Conformance is now regularly tested against various test-suites at
+  http://builder.classpath.org/xml/ See also doc/README.jaxp.
+
+* Full beans XMLEncoder implementation.
+
+* javax.sound.sampled implementation.
+
+* javax.print.attribute and javax.print.event implementated.
+
+* Lots of new datatransfer, print swing and swing.text work and optimization.
+
+* Additional 1.5 support. Including new (separate) generic branch release.
+
+* SecurityManager cleanups and start of review of all Permission checks
+  (includes adding lots of new checks to the Mauve test-suite).
+
+* Buildable on cygwin.
+
+* Fully buildable as "in-workspace" library-plus-vm inside (native) Eclipse
+  see http://developer.classpath.org/mediation/ClasspathHackingWithEclipse
+
+* Full example that shows a real world CORBA and Free Swing implementation.
+  See examples/gnu/classpath/examples/CORBA/swing/README.html
+
+* A list of bug fixes can be found at:
+http://gcc.gnu.org/bugzilla/buglist.cgi?product=classpath&target_milestone=0.20
+
+Runtime interface changes:
+
+* New method VMStackWalker.getClassLoader() was added to avoid an infinite
+  loop between getCallingClassLoader() and Class.getClassLoader().
+
+* The included fdlibm implementation has seen several cleanups to handle
+  new architectures and namespacing issues (in particular for ppc, darwin
+  and non-C99 compilers). Please double check any arithmetic test against
+  new platforms/runtimes.
+
+* The gnu.java.net.Plain[Datagram]Socket implementations have been
+  turned into VM reference classes with JNI/Posix implementations.
+
+New in release 0.19 (Nov 2, 2005)
+
+* The Swing RepaintManager has been reworked for more efficient painting,
+  especially for large GUIs.
+
+* The Swing layout manager OverlayLayout has been implemented, the BoxLayout
+  has been rewritten to make use of the SizeRequirements utility class and
+  caching for more efficient layout.
+
+* Improved accessibility support for Swing.
+
+* The java.net.HttpURLConnection implementation no longer buffers the
+  entire response body in memory.  This means that response bodies
+  larger than available memory can now be handled.
+
+* The Andrew Watson, Vice President and Technical Director of the Object
+  Management Group, has officially assigned us 20 bit Vendor Minor Code Id: 
+  0x47430 ("GC") that will mark remote Classpath - specific system exceptions.
+  Obtaining the VMCID means that GNU Classpath now is a recogniseable type of
+  node in a highly interoperable CORBA world. 
+
+* Classpath now includes the first working draft to support the RMI over
+  IIOP protocol. The current implementation is capable for remote invocations,
+  transferring various Serializables and Externalizables via RMI-IIOP protocol.
+  It can flatten graphs and, at least for the simple cases, is interoperable
+  with Sun's jdk 1.5.
+
+* Qt4 configury switches for OS-X. Additional to the --enable-qt-peer, OS-X
+  users with a Qt4 installation can build the qt-peers with the argument
+  --with-qt4dir=<Qt4-installation-dir>.
+
+* Significant progress has been made in the implementation of the 
+  javax.swing.plaf.metal.* package, with most UI delegates in a working state
+  now.  Please test this with your own applications and provide feedback that 
+  will help us to improve this package.
+
+* The GUI demo (gnu.classpath.examples.swing.Demo) has been extended to 
+  highlight various features in our free-swing implementation. And includes
+  a look and feel switcher (Metal default, Ocean or GNU).
+
+Runtime interface changes:
+
+* Changed implementation of VMClassLoader.getPackage(s) : new method
+  VMClassLoader.getBootPackages should be implemented by the vm, and sould
+  return a string array of boot package names ("java.lang", "java.net", ...).
+  Feedback from vm implementors for usability and relevance of the
+  getBootPackages method would be greatly appreciated.
+  
+New in release 0.18 (Sep 6, 2005)
+
+* GNU JAWT implementation, the AWT Native Interface, which allows direct
+  access to native screen resources from within a Canvas's paint method.
+  GNU Classpath Examples comes with a Demo, see examples/README.
+* awt.datatransfer updated to 1.5 with supports for FlavorEvents.
+  The gtk+ awt peers now allow copy/paste of text, images, uris/files
+  and serialized objects with other applications and tracking
+  clipboard change events with gtk+ 2.6 (for gtk+ 2.4 only text and
+  serialized objects are supported). A GNU Classpath Examples
+  datatransfer Demo was added to show the new functionality.
+* org.omg.PortableInterceptor and related functionality in other packages
+  is now implemented:
+    - The sever and client interceptors work as required since 1.4.
+    - The IOR interceptor works as needed for 1.5. 
+* The org.omg.DynamicAny package is completed and passes the prepared tests.
+* The Portable Object Adapter should now support the output of the
+  recent IDL to java compilers. These compilers now generate servants and 
+  not CORBA objects as before, making the output depended on the existing 
+  POA implementation. Completing POA means that such code can already be 
+  tried to run on Classpath. Our POA is tested for the following usager
+  scenarios:
+    - POA converts servant to the CORBA object.
+    - Servant provides to the CORBA object.
+    - POA activates new CORBA object with the given Object Id (byte array) 
+      that is later accessible for the servant.
+    - During the first call, the ServantActivator provides servant for this 
+      and all subsequent calls on the current object.
+    - During each call, the ServantLocator provides servant for this call
+      only.
+    - ServantLocator or ServantActivator forwards call to another server.
+    - POA has a single servant, responsible for all objects.
+    - POA has a default servant, but some objects are explicitly connected 
+      to they specific servants.
+  The POA is verified using tests from the former cost.omg.org.      
+* The javax.swing.plaf.multi.* package is now implemented.
+* Editing and several key actions for JTree and JTable were implemented.
+* Lots of icons and look and feel improvements for Free Swing basic and
+  metal themes were added.  Try running the GNU Classpath Swing Demo in
+  examples (gnu.classpath.examples.swing.Demo) with:
+  -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeel
+  -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
+* Start of styled text capabilites for java.swing.text.
+* NIO FileChannel.map implementation, fast bulk put implementation for
+  DirectByteBuffer (speeds up this method 10x).
+* Split gtk+ awt peers event handling in two threads and improve gdk lock
+  handling (solves several AWT lock ups).
+* Speed up awt Image loading.
+* Updated TimeZone data against Olson tzdata2005l.
+* Make zip and jar UTF-8 "clean".
+* "native" code  builds and compiles (warning free) on Darwin and Solaris.
+
+Runtime interface changes:
+
+* All native resource "pointers" in the VM interface classes are now exposed
+  as gnu.classpath.Pointer objects. This might impact runtimes that
+  optimize and support java.nio.DirectByteBuffers. Creating these classes
+  and accessing the contents as void * pointers for the native reference JNI
+  implementation is done through the JCL_NewRawDataObject and JCL_GetRawData
+  functions.
+* Simplified the Class/VMClass interface.
+* Removed loadedClasses map from ClassLoader. It's now the VMs responsibility
+  to manage the list of defined and loaded classes for each class loader.
+* Moved native methods from java.lang.reflect.Proxy to VMProxy.
+* Added hook to VMClassLoader to allow VM to do class caching.
+
+New Untested/Disabled Features:
+
+  The following new features are included, but not ready for production
+  yet. They are explicitly disabled and not supported. But if you want
+  to help with the development of these new features we are interested
+  in feedback. You will have to explicitly enable them to try them out
+  (and they will most likely contain bugs). If you are interested in any
+  of these then please join the mailing-list and follow development in
+  CVS.
+
+* QT4 AWT peers, enable by giving configure --enable-qt-peer.
+* JDWP framework, enable by deleting the jdwp references from
+  lib/standard.omit and vm/reference/standard.omit. No default
+  implementation is provided. Work is being done on gcj/gij integration.
+* StAX java.xml.stream, enable by deleting the gnu.xml.stream and
+  java.xml.stream references in lib/standard.omit.
+
 New in release 0.17 (Jul 15, 2005)
 
 * gnu.xml fix for nodes created outside a namespace context.