+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,