| 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. |
| |