diff options
Diffstat (limited to 'libjava/classpath/NEWS')
-rw-r--r-- | libjava/classpath/NEWS | 1318 |
1 files changed, 1318 insertions, 0 deletions
diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS new file mode 100644 index 000000000..095f9700b --- /dev/null +++ b/libjava/classpath/NEWS @@ -0,0 +1,1318 @@ +New in release 0.99 (XXX XX, XXXX) + +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. +* Add support for output indenting and cdata-section-elements output + instruction in xml.transform. +* xml.xpath corrections for cases where elements/attributes might have + been created in non-namespace-aware mode. Corrections to handling of + XSL variables and minor conformance updates. +* DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst + traversal enumerations implemented. +* JInternalFrame colors and titlebar draw properly. +* JTree is working up to par (icons, selection and keyboard traversal). +* JMenus were made more compatible in visual and programmatic behavior. +* JTable changeSelection and multiple selections implemented. +* JButton and JToggleButton change states work properly now. +* JFileChooser fixes. +* revalidate and repaint fixes which make Free Swing much more responsive. +* Correctly handle system call interrupts and timeouts in native nio + and net functions. +* MetalIconFactory implemented. +* Handle image loading errors correctly for gdkpixbuf and MediaTracker. +* Added Tree World to GNU Classpath examples Free Swing demo. +* FileChannel.lock() and FileChannel.force() implemented. +* java.util.logging.FileHandler now rotates files. +* Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk). +* Corba bug fixes and documentation updates. +* Updated gcj build infrastructure. +* Documentation fixes all over the place. + See http://developer.classpath.org/doc/ +* VM Integration Guide updates with a full section on VM/Classpath hooks. + +New in release 0.16 (Jun 30, 2005) + +* Better GTK scrollbar peer implementation when using GTK >= 2.6. +* GdkGraphics2D has been updated to use Cairo 0.5.x APIs. +* BufferedImage and GtkImage rewrites. All image drawing operations + should now work correctly (flipping requires gtk+ >= 2.6) +* Future Graphics2D, Image and Text work is documented at: + http://developer.classpath.org/mediation/ClasspathGraphicsImagesText +* Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet, + JInternalFrame, and JWindow are now 1.5 compatible in the sense that you + can call add() and setLayout() directly on them, which will have the same + effect as calling getContentPane().add() and getContentPane().setLayout(). +* The JTree interface has been completed. JTrees now recognizes mouse clicks + and selections work, but the visual implementation is not yet complete. + Work on expansion and collapsing of the tree nodes is being implemented. +* BoxLayout works properly now. +* Fixed GrayFilter to actually work. +* Metal SplitPane implemented. +* Lots of free swing text and editor stuff work now. + +* When gtk+ 2.6 or higher is installed the default log handler will produce + stack traces whenever a WARNING, CRITICAL or ERROR message is produced. + +* The CORBA implementation is now a working prototype that should support + features up till 1.3 inclusive. + We would invite groups writing CORBA dependent applications to + try Classpath implementation, reporting any possible bugs. + + The CORBA prototype is interoperable with Sun's implementation v 1.4, + transferring object references, primitive types, narrow and wide + strings, arrays, structures, trees, abstract interfaces and + value types (feature of CORBA 2.3) between these two platforms. + The remote exceptions are transferred and handled correctly. + The stringified object references (IORs) from various sources are + parsed as required. + The transient (for current session) and permanent (till jre restart) + redirections work. + Both Little and Big Endian encoded messages are accepted. + The implementation is verified using tests from the former cost.omg.org. + The current release includes working examples (see the examples directory), + demonstrating the client-server communication, using either CORBA Request + or IDL-based stub (usually generated by a IDL to java compiler). + These examples also show how to use the Classpath CORBA naming service. + The IDL to java compiler is not yet written, but as our library must be + compatible, it naturally accepts the output of other idlj implementations. + +* New --with-vm-classes configure option, and new 'build' setting + for --with-glibj. (Only for integrators.) + +Runtime interface changes: + +* Start of a generic JDWP framework in gnu/classpath/jdwp. + This is unfinished, but feedback (at classpath@gnu.org) from runtime + hackers is greatly appreciated. Although most of the work is currently + being done around gcj/gij we want this framework to be as VM neutral as + possible. Early design is described in: + http://gcc.gnu.org/ml/java/2005-05/msg00260.html +* Native method VMClass.getModifiers() now takes an additional + boolean parameter. +* Deprecated native method VMClassLoader.defineClass(ClassLoader, + String, byte[], int, int) has been replaced by + VMClassLoader.defineClass(ClassLoader, String, byte[], int, int, + ProtectionDomain) +* VMClassLoader.loadClass(String name, boolean resolve) is now native, + replacing the former version which just returned null. +* Deprecated native method VMClassLoader.getPrimitiveClass(String) has + been replaced by new native method VMClassLoader.getPrimitiveClass(char). +* Previously empty implementations of methods VMThread.countStackFrames(), + VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have + been removed; these methods are now native methods. +* Fields "exceptionTypes" and "parameterTypes" have been removed from + Contructor.java and getExceptionTypes() and getParameterTypes() are + now native methods. + +New in release 0.15 (Apr 29, 2005) + +* The old character encoding framework (gnu.java.io.EncodingManager) +has been replaced by a system based completely on nio.charset +providers. Many converters have been added, both the io, lang and nio +frameworks now use the same set of converters and the whole character +stream framework (Readers and Writers) have been optimized. For some +workloads this leads to 2x till 20x speedups. + +The default charsets supported are: + + Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861, + Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13, + ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6, + ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope, + MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman, + MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE, + UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250, + Windows1251, Windows1252, Windows1253, Windows1254, Windows1255, + Windows1256, Windows1257, Windows1258. + +Many more encoding are supported through the new IconvProvider +depending on the platform iconv support. GNU libiconv is recommended. +The IconvProvider is currently not enabled by default. To enable it +define the system property gnu.classpath.nio.charset.provider.iconv=true. +Some runtimes might choose to enable this by default by setting it +through VMSystemProperties. We would like to get feedback on whether +enabling or disabling the IconvProvider by default results in the +highest speedups. + +* Free swing metal and pluggable look and feels have been improved. +The GNU Classpath free swing example can now be run with different +"skins" by setting the system property swing.defaultlaf to the GNU, +Basic or Metal look and feel. + +* Some of the org.omg.CORBA classes and packages have now been +implemented. The Savannah bug tracker contains additional tasks for +which we are seeking help. + +* Fixed compatibility problems in the java.beans which affected +Eclipse's Visual Editor Project. + +* New completely lock free (Inheritable)ThreadLocal implementation. + +* javax.swing.text.rtf framework added which can handle simple (plain) +text tokens. + +* Support for parsing html files into Level 2 Document Object Model +(org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of +javax.swing.text.html framework added. + +Runtime interface changes: + +* jni.h changed to better support compiling runtimes implementing jni; + see VM integration guide for details. +* New --enable-default-toolkit option to configure can be used to set + the fully qualified class name of the default AWT toolkit to use. + If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit + is used. +* New --disable-core-jni option can be used to disable building the + "core" JNI libraries. This is primarily useful if your VM can use the + Gtk peers but not the core JNI libraries. +* New system property "gnu.classpath.boot.library.path" can be specified + to define the location of the JNI libraries. It is by all means meant + ONLY for VM implementors and GNU Classpath hackers. See the hacking + guide for more information. +* The helper methods currentLoader() and allocateObject() for + java.io.ObjectInputStream have been moved to a VMObjectInputStream class. + Reference implementations are provided. +* java.net.InetAddress now uses VMInetAddress for runtime/platform + specific methods getLocalHostname(), getHostByAddr() and + getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface + for runtime/platform specific getInterfaces() support. Default + (Posix/GNU JNI) implementations are provided. +* VMClass has a new method getModifiers(Class, boolean) which can be + used to get the real modifiers for an inner class or the ones + specified by the InnerClasses attribute. +* All (possible) runtime specific methods of Object and Double are now + in VMObject and VMDouble. Where possible generic reference + implementations are provided. +* The reference implementation of VMClassLoader now handles zip files + on the boot loader class path in getResources(). + +Other changes: + +New in release 0.14 (Feb 25, 2005) + +* Character encoders and decoders have been added for: + iso-8859-6 (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew), + iso-8859-9 (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic), + ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian), + UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little Endian). +* Full documentation for all classes can be generated (again) by using + the --with-gjdoc configure option. +* javax.awt.imageio support through gdkpixbuf. + +Runtime interface changes: + +* VMSecurityManager has been replaced by gnu.classpath.VMStackWalker. + currentClassLoader() is no longer needed, and there are also two new + methods with non-native implementations. VM implementors are encouraged + to provide more efficient versions. +* VMRuntime.nativeLoad() now takes an additional ClassLoader parameter. + +New in release 0.13 (Jan 6, 2005) + +* The http url protocol handler has been replaced with a full HTTP/1.1 + version from GNU inetlib. +* A new ftp url protocol handler has been added also from GNU inetlib. +* java.beans has been updated to 1.4 including support for XMLEncoder + and XMLDecoder. +* The java.util.Locale support is now based on the Common Locale Data + Repository (CLDR) Project (see http://www.unicode.org/cldr/). + GNU Classpath provides support for more than 250 locales now. + This new support is experimental and the GNU Classpath hackers are + working together with runtime developers and the unicode consortium + to improve them in the future. + If your runtime misdetects your locale or if the default locale gives + problems please try running with -Duser.language=en and -Duser.region=US + to fall back on a known good locale. +* Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2) and + org.w3c.dom (DOM Level 3) interfaces. It is possible to switch between + different implementations AElfred2, GNU DOM, GNU XSL, libxmlj SAX, + libxmlj DOM and libxmlj XSL by setting different system properties. + Also provided is a preliminary XPath 1.0 implementation. + The libxmlj versions are build around libxml2 and libxslt and have to + be enabled during build time by the --enable-xmlj configure flag. + The current support is equal to the last released GNU JAXP 1.3 release. + These packages will be maintained as part of the GNU Classpath core classes + in the future. For more information, conformance results and documentation + on selecting different implementations see doc/README.jaxp. +* More AWT accessible support. +* AWT gtk+ peers component layout, dialog placement, keyboard focus + handling and text positioning have been improved. +* ImageIO interfaces are more complete. +* JList, JTable and JTree have been hugely improved. +* java.awt.Robot support with GdkRobot in the gtk+ awt peers. + Needs XTest Extension (libXtst) XServer support. +* New --disable-examples configure argument. + +Runtime interface changes: + +* Added a new method (VMRuntime.enableShutdownHooks) that enables the VM + to lazily register an exit handler. +* The java.lang.Class constructor now automatically sets the protection + domain for array classes, based on the protection domain of the component + type class. +* New gnu.classpath.VMSystemProperties class. This replaces the + system properties initialization in VMRuntime. Note that it is + now the VMs responsibility to set one additional property: + gnu.cpu.endian should be set to "big" or "little". +* VMRuntime.nativeGetLibname() has been renamed to VMRuntime.mapLibraryName() + and has only one argument, the name of the library. +* String and StringBuffer now call VMSystem.arraycopy() directly and don't + go through java.lang.System. Be careful to not initialize java.lang.System + early in the bootstrap sequence in your VM runtime interface classes. +* Some (wrong) documentation about the behavior of VMThread.sleep(0, 0) + has been updated. Also, VMThread.sleep() now has a default non-native + implementation, but it is a generic implementation that ignores the + nano-seconds argument. Runtime hackers are encouraged to provide a more + efficient version. +* There is prelimenary support for nio direct byte buffers. + See VMDirectByteBuffer. Please contact the GNU Classpath mailinglist when + you add support for this to your runtime. + +New in release 0.12 (Nov 14, 2004) + +* GNU Classpath's JAR implementation now has preliminary support for + signed entries, for so called "signed JAR" file support. Signed JAR + files are one of the key security features of managed runtimes, and + allows code to run privileged given unforgeable proofs of identity. +* A much improved version of X.509 certificates has been added, + including a robust certificate path checking algorithm. Also + included is an implementation of the RSA signature scheme. +* Full java.awt.color implementation, with all standard ICC profiles, + except for PhotoYCC color space. +* java.beans 1.4 updates and bug fixes. +* java.awt.image support updated to 1.4. +* Improved build process. Uses less memory with gcj and C code is + buildable with -Werror on most platform. Please configure with + --enable-Werror and report any remaining issues. +* Big-endian (PowerPC) fixes for native awt GTK+ peers. +* Checkstyle support, see scripts/checkstyle-config.xml. +* Better AWT focus management fro GTK+ peers. +* Much faster and better fonts support + (for both gdk Graphics and cairo Graphics2D) +* AWT Choice fixes for hidden components. +* HTTP Connection Handler fixes for POST support. +* Much fuller collection documentation. +* Lots of Calendar bug fixes. +* More javax.imageio support. +* Better AWT Help MenuBar support. +* Lookahead support for regular expressions. +* Serialization object stream fixes for multiple ClassLoader scenarios. +* Swing TabbedPane, ColorChooser and ComboBox improvements. +* Start of JTree functionality. +* Improved Eclipse 3 support for GNU Classpath based runtimes. + +Runtime interface Changes: + +* New --enable-java-lang-system-explicit-initialization configuration + option. (Warning, will be replaced in next release, please consult + the mailinglist.) +* The reference implementation of VMClassLoader has default + implementations for getResource(s) and provides support for a new + default getSystemClassLoader implementation. + +New in release 0.11 (Sep 13, 2004) + +* javax.swing.Spring and SpringLayout support. +* Added pluggable look and feel support for BasicTextFieldUI and + BasicToolBarSeparatorUI. +* java.swing.text support for (Default and Layered) Highlighter, FieldView, + PlainView, TabExpander and TabableView added. +* Start of JTable and JTree implementation. +* Internal Swing frames work. +* JMenu and JPopupMenu work. +* New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher. +* java.awt.image LookupTables and kernel support. +* Improved java.awt.image.BufferedImage support. +* AWT 1.0 event model support. +* GNU Classpath now comes with some example programs (see examples/README). +* New javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net, + javax.net.ssl, javax.security.auth, javax.security.auth.callback, + javax.security.auth.login, javax.security.auth.x500, javax.security.sasl + and org.ietf.jgss packages are now officially part of GNU Classpath. + Extra crypto algorithms can be obtained from the GNU Crypto project, + a full TLS implementation is provided by the Jessie project. + http://www.gnu.org/software/gnu-crypto/ + http://www.nongnu.org/jessie/ +* Frame.setIconImage() support. +* AWT GDKGraphics scaling. +* New configure flag --enable-gtk-cairo to build Graphics2D implementation + build on cairo and pangoft2. Enabled at runtime by defining the system + property gnu.java.awt.peer.gtk.Graphics=Graphics2D. +* javax.swing.JSpinner implemented. +* Extensive documentation update for java.util collection classes. +* java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D implemented. +* GNU JAXP is no longer included with GNU Classpath. Runtime, compiler and + tool integrators are encouraged to directly integrate GNU JAXP. + This release has been tested against GNU JAXP 1.1. + http://www.gnu.org/software/classpathx/jaxp/jaxp.html +* JColorChooser, JComboBox and JTextField implemented, including example + uses in GNU Classpath Examples swing Demo. + +Runtime interface Changes: + +* java.lang.Compiler now uses the new java.lang.VMCompiler; there is + a reference implementation that most VMs can use. +* java.lang.VMSystem has a new getenv(String) method and a reference C/JNI + implementation that should work on most Posix like systems. +* java.util.TimeZone has been split into a platform independent class and + a platform dependent class VMTimeZone. GNU Classpath comes with a generic + way to get at the default time zone for Posix/GNU-like platforms. +* [VM]AccessController improvements. In particular it handles + `doPrivileged' calls better, and allows for recursive `doPrivileged' + calls in the same Thread. (see vm/reference/java/security/) + +New in release 0.10 (Jul 9, 2004) + +* java.net.URL now uses application classloader to load URLStreamHandlers + and reuses URLStreamHandlers when URL is reset (but protocol isn't changed). +* java.io.File.deleteOnExit() implementation. +* java.text multiple new features and bug fixes + (only 2 out of the 1000+ java.text Mauve tests now fail). +* Better (non-black) default AWT System colors. +* AWT lists use GTK treeviews. +* Proper AWT focus management has been implemented. +* Swing menus and scrollpanes are beginning to work. +* Swing splitpanes, dialogs and internal frames were added. +* Swing repainting / double buffering was redone. +* Font management and Pango DPI conversion fixes. +* A lot of AWT imaging and event bugs have been picked out. +* More of javax.swing.text has been implemented. +* javax.swing.Timer has been reimplemented. +* java.security.AccessController has been implemented + (see runtime section). +* The default java.lang.SecurityManager now uses AccessController. +* New java.beans.Statement and Expression implementations. +* Small FileChannel implementation speed improvement for traditional + JNI based systems. +* Regenerated all included JNI header files with gcjh (3.5 CVS), + removes extra extern modifier and allows stricter compiler warning. +* More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and + -Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes, + made it compilable with C++ compilers and jni.h got renamed from jni.h.in). +* Double.toString() and Float.toString() now work properly on 64-bit + PowerPC systems. +* PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes. +* Build system refactored and removed old Japhar specific support. +* The gnu.java.awt.EmbeddedWindow class has been improved, and now + supports embedding AWT windows in other top-level X windows. + This functionality is required by gcjwebplugin. +* gcjwebplugin, an applet viewer that can be embedded into several web + browsers, has been extensively tested with this release of classpath. + (See http://www.nongnu.org/gcjwebplugin/) +* Runtime environments based on GNU Classpath 0.10 should be able to + start up Eclipse 3.0 out of the box now. + +Runtime interface Changes: + +* VMProcess.destroy() default implementation fixes. +* Fixed the "portable native sync" code; it had been broken since + Classpath release 0.06, when we upgraded to GTK+2. + Classpath's AWT peers use GTK+. GTK+ uses GLIB. GLIB by default uses + the platform's native threading model -- pthreads in most cases. + If the Java runtime doesn't use the native threading model, then you should + specify --portable-native-sync when configuring Classpath, so that GLIB will + use the Java threading primitives instead. (For a superior alternative, + see below.) +* The VM can set the system property + gnu.classpath.awt.gtk.portable.native.sync instead of using the + --portable-native-sync configure-type option. + See doc/vmintegration.texinfo for details. +* We intend that the next release of GNU Classpath will require the VM + to provide JNI 1.2. Classpath currently uses only JNI 1.1, except for + one JNI 1.2 function: GetEnv(), in the JNI Invocation API. + If this poses problems, please raise them on the classpath mailing list. +* The reference implementation of VMThread.holdsLock(Object) now has + a default implementation written in java. For efficiency and to + prevent spurious wakeups a real 'native' runtime version can be supplied. +* There is a new java.security.VMAccessController class that runtimes need + to implement to properly support SecurityManagers. The default + implementation that comes with GNU Classpath makes sure that ANY attempt + to access a protected resource is denied when a SecurityManager is + installed. Which is pretty secure, but also no very useful. + Please see the documentation in + vm/reference/java/security/VMAccessController.java, + and please give feedback on the GNU Classpath mailinglist whether or not + the current AccessController framework is flexible enough. + +New in release 0.09 (May 2, 2004) + +* Includes updated GNU JAXP version from 2004-02-01. +* Native C code is now -ansi -pedantic (C89) clean and (almost) -Wall clean. +* java.io is now implemented by delegating most tasks directly to java.nio. +* Reworked/Optimized implementations of java.nio.Buffer and subclasses. +* New javax.print, javax.print.attribute[.standard] and javax.print.event + packages and classes. +* java.text attributed iterators support. +* New javax.imageio, javax.imageio.event and javax.imageio.spi packages and + classes. +* GNU Classpath can now load service providers that are described via + META-INF/services/* resources in extension JARs. This is useful for + implementing the various APIs that are supposed to be extensible via + custom plugins. For details, please see the documentation of + gnu.classpath.ServiceFactory. + Application developers are strongly discouraged from calling glibj + internal packages. Instead, they might want invoke the newly implemented + javax.imageio.spi.ServiceRegistry.lookupProviders, which is a standard + method for loading plug-ins. +* New developers wanting to help the GNU Classpath project might want to + review the greatly expanded Hacker Guide included in the doc directory + or online at http://www.gnu.org/software/classpath/docs/hacking.html + Also the FAQ has been expanded. And when working from CVS you can now use + a simple autogen.sh script to get all autotools magic done automagically. +* New configure option --with-glibj which defines how to install the glibj + class files as zip, as flat directory files or both (zip|flat|both) + [default=zip]. When working with multiple runtimes some of which might + not support bootstrap classes in zip files the --with-glibj=both option + is recommended (this does take extra disc space). +* Two big code drops from the libgcj gui branch updating various java.awt + and javax.swing classes. +* Multiple java.net.InetAdress fixes and java.rmi fixes. +* ServerSocket.accept() now restarts listening when system call interrupted. +* Much cleanups to make standard API doc valid XHTML (not completed yet). +* A scan for unused variables and non-static invocation of static methods + turned up a couple of subtle bugs which have now all been fixed. +* The Mauve testsuite has been cleaned up considerable and lots of issues + in the GNU Classpath core class implementation have been fixed. + +VM Interface changes: + +* java.lang.Class/VMClass interface was changed. The interface now no + longer requires an instance of VMClass for each Class instance. Instead + the field vmdata in Class is now of type Object. +* GNU Classpath now assumes that JNI calls SetXField can modify final + fields. This was previously used silently for System.in/out/err and should + be considered as a feature now. +* A new VMProcess and a sample JNI C implementation are now provided to + make Runtime.exec() work out of the box on some systems. This requires + a small change to VMRuntime.exec() when a runtime wants to use it as the + default java.lang.Process implementation. +* The implementation of most of java.io through java.nio moved serveral + runtime specific I/O methods. Most methods do have a generic default native + C JNI implementation in native/jni/java-nio. +* Runtime support methods for java.io.File have been moved to VMFile which + also comes with a default JNI C implementation. +* To support the new service provider mechanism runtimes must make sure that + extension JARs are made accessible via the default context class loader. + +New in release 0.08 (2004/12/03) + +* java.util.regexp implementation through gnu.regexp wrappers. +* java.net.URI implementation. +* Working implementation of javax.swing.undo. +* java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and quadratic + equations; implementation adapted from the GNU Scientific Library. +* Lots of java.awt and gtk+ peer improvements. Also more Swing work. Start + of EmbeddedWindow support. +* BufferedReader speed improvements. +* Improved useabilty of java.text implementation for several applications. +* ObjectInputStream is much faster and more compatible with other + implementations. +* Fix handling of alias methods, where a method has been deprecated in + favour of a new one with the same funtion but a different name. + (See Deprecated Methods section in the GNU Classpath Hacking Guide.) +* javax.print.attribute.standard added. +* Lots of java.nio, java.net, java.io +* Depend on autoconf 2.59+ and automake 1.7+, GCJ 3.3+, jikes 1.18+. + +VM Interface changes: +* Split native methods in java.lang.Runtime into java.lang.VMRuntime. +* Resources are now also loaded/needed through the bootstrap classloader + (gnu.regexp needs MessageBundle included in glibj.zip + +Fixed Classpath bugs: + #6095 java.awt.geom.QuadCurve2D.solveQuadratic sometimes gives + wrong results + #7099 EventListenerList.getListenerCount should accept null argument + #7104 EventListenerList.add does not work + #7105 EventListenerList.remove does not work + #7107 DefaultBoundedRangeModel.setValue and friends should not throw + And lots more. + +New in release 0.07 (2003/30/11) + +* Works with libtool 1.5 (and 1.4.3). +* java.awt gtk+ peers now depend on gtk+ 2.2.x and uses pango. + Lots and lots improvements on the peers. +* java.awt.geom.CubicCurve2D, java.awt.geom.QuadCurve2D: + Subdivision and flatness calculation implemented. +* java.awt.geom.FlatteningPathIterator: Working implementation. +* gnu.java.awt.BitwiseXORComposite helper class. +* New rmic compilers (jikes, kjc) support. +* java.text bug fixing and 1.4 updates (Currency). +* Hashtable and HashMap function more similar to other implementations. +* javax.naming and java.beans classloader fixes. +* URL parsing, URLConnection, protocol and (needed) permission fixes. +* More java.nio implementation + (API complete, but implementation not finished yet). +* Lots of java.net code cleanup. +* Improved documentation. +* Numerous bug fixes in almost every package, and lots of updates for + 1.4 functionality. +* Fixed Classpath bugs: + #2944 Incorrect synchronization in java.util.logging.ErrorManager + #6075 java.awt.geom.GeneralPath.getCurrentPoint returns wrong results + #6076 java.awt.geom.GeneralPath constructor sometimes hangs + #6089 java.awt.geom.GeneralPath.getPathIterator does not work + [...] + +VM Interface changes: + +* Thread has been split in a VM-independent Thread class and a VM-dependent + VMThread class. + +New in release 0.06 (2003/22/08) + +* Update java.awt peers to GTK+2. +* java.awt.GridBagLayout implementation. +* javax.swing.border implementation. +* java.security and java.security.cert updated to 1.4 spec. +* New JNI native target code layer. See native/target/readme.txt. +* --enable-regen-headers configure flag for automatic jni .h file generation. +* Removed workaround for gcj 3.2 and lower, gcj 3.3+ or jikes 1.18+ is now + needed for compiling. +* Lots of improvements and/or new classes for java.awt, java.awt.dnd, + java.awt.font, java.awt.geom, java.awt.image, java.io, java.math, java.net, + java.nio, java.rmi, java.text, java.util, javax.swing, javax.swing.plaf, + javax.swing.text. + +VM Interface changes: + +* VMClassLoader.loadClass(), the bootstrap classloader called by + Class.forName() and ClassLoader.loadClass(), may now return null when + a class is not found instead of throwing a new ClassNotFoundException. + This is a performance optimization in some cases. This also changes + the Class.forName() reference code. +* Native methods in Class have been moved to VMClass. A few additional + methods are also available in VMClass to provide optional performance + improvements. +* A VM can now supply its own String.intern() strategy through the + VMString class. The supplied VMString reference class implements the + original WeakHashMap strategy. +* Float and Double to/from bits conversion functions can now be supplied by + the VM through VMFloat and VMDouble. Default JNI conversion methods are + supplied. + +New in release 0.05 (2003/02/15) +* Supports free Java VMs Jikes RVM and Kissme out of the box, perhaps others. +* Supports GNU Crypto 1.1 as the official provider of cryptographic primitives + and tools for GNU Classpath, available separately from + http://www.gnu.org/software/classpathx/crypto/crypto.html. +* Supports GNU Classpath Tools sub-project of GNU Classpath, official provider + of standard tools such as gjdoc, a javadoc replacement, and others. Future + releases of GNU Classpath will begin to include these tools, available + separately from http://www.gnu.org/software/cp-tools/. +* Java primitives can be used to support AWT native threading, see + the --enable-portable-native-sync configure option which may become the + default in a future release. +* Include file jni.h has been updated to the 1.4 specification. +* VM specific internal types for jobject, jfieldID, and jmethodID are + supported in jni.h. More details can be found by reading the comment + in include/jni.h.in. By default the old definitions are used instead. +* New VM helper class java.io.VMObjectStreamClass which should provide + the hasClassInitializer() method. Previously ObjectStreamClass used + Class.getDeclaredMethod("<clinit>") but according to the spec this + should always throw NoSuchMethodException for class initialization methods. + A JNI reference implementation is provided as + vm/reference/java-io/java_io_VMObjectStreamClass.c +* There have been numerous infrastructure improvements + * Configure option --enable-gjdoc to generate javadoc-like output + * Gjdoc output is included with distribution, see doc/api/html/ + * DESTDIR fully supported for install and uninstall +* Runtime.execInternal contract changed to allow for null `env' + and to accept `dir' argument. +* VMObject.getClass() removed. It was never used. +* java.lang.Throwable is now a 'normal' GNU Classpath class that uses the + VM specific java.lang.VMThrowable to get at the VM state and (if needed) + the StackTraceElements for a particular exception. A default implementation + (that does nothing) is provided in vm/reference/java/lang/VMThrowable.java. +* The vm/reference classes from the gnu.vm.stack and their counterparts + ExecutionStack and StackFrame in gnu.java.lang have been removed since they + are not actually part of the VM interface anyway. +* The GPLed com.sun.javadoc classes have been moved to the gjdoc application + from the GNU Classpath Tools project. See for more information the homepage + at: <http://www.gnu.org/software/cp-tools/>. + +New in release 0.04 (2002/05/05) +* Additional configure options to disable zip creation and installation as + well as disable gtk peer native compilation. +* Addition of java.nio, java.util.logging, and javax.swing. +* Integration of most or all of the ORP patches to date, the purpose of + which are to make it possible to use JBOSS with ORP and Classpath. This + is still in a testing phase however. +* Significant changes in the reference VM interface that may require + support from the JVMs. +* Lots of bugfixes. + +New in release 0.03 (2002/02/08) +* More merges with libgcj have been performed including java.math which now + provides a pure Java implementation of that package. + Current status at <http://gcc.gnu.org/java/libgcj-classpath-compare.html> +* A pure Java implementation (Jazzlib) of java.util.zip is available. +* Added the java.rmi implementation that Transvirtual donated to the FSF. +* Includes jni.h now, eliminating the need to specify a particular VM + via configure. +* No proprietary classes or programs are required to compile. + Compiles out of the box with jikes or gcj. +* Separation of compiling Java source and native libraries through the + configure mechanism. If given no arguments, configure will setup the + subsequent build to only produce Java bytecode (.class files). More + information is available in INSTALLING. +* Support for compiling in a separate directory, as an example you may + cd classpath-0.03; mkdir build; cd build; ../configure; make +* Works with Orp 1.0.9 out of the box. Build instructions can be found at + <http://www.gnu.org/software/classpath/doc/orp.html> +* Lots of bugfixes that were found by using Classpath with the gcj, Orp, + SableVM, KissMe and Jaos VMs. Please use our bugdatabase at + <http://savannah.gnu.org/support/?group_id=85> +* Lots of updates to make Classpath more compliant with the 1.2, 1.3 and 1.4 + API specification. The current status can be found at + <http://www.gnu.org/software/classpath/status.html> +* All files are now distributed under the same terms. Added clarification to + GPL exception. + +New in release 0.02 (2001/01/06) +* Support for printing exceptions with Japhar 0.09 + patch included in + resource/japhar-0.09.patch.1. +* Typos, assorted bugfixes. + +New in release 0.01 (2000/11/20) +* More packages are included now, though many remain untested. +* Support for Japhar 0.09 included. + +New in release 0.00 (1999/02/01) +* First official development release of clean room class library for Java +* Following packages included: + -- java.beans + -- java.io + -- java.lang + -- java.lang.reflect + -- java.math + -- java.net + -- java.security (partial and non-functioning) + -- java.security.acl + -- java.security.interfaces + -- java.util +* Code is mostly Java 2 (see JDK 1.2) compatible with some functionality + missing and/or untested. +* Support for Japhar (http://www.japhar.org/) virtual machine is included. + Requires the current Japhar from CVS. +* Extensive javadoc comments for public API included +* Licensed under the GNU Library General Public License (see COPYING.LIB) +* Does not depend on any non-free code - developed in a "clean room" + environment. + |