Sync libgcj with GNU Classpath 0.98.
[gcc.git] / libjava / classpath / NEWS
1 New in release 0.98 (Feb 05, 2009)
2
3 * Native support for BigInteger is now provided using the GMP
4 library. A new option, --enable/disable-gmp is provided, and
5 the option is enabled by default if GMP is found.
6 * Classpath now makes use of a new StringBuilder implementation
7 internally called CPStringBuilder. In addition to being
8 unsynchronised, like StringBuilder, this also avoids copying the
9 array when toString or substring is called. While StringBuffer/Builder
10 always retain their own array, which is only altered during resizing,
11 CPStringBuilder gives away its array when the result is generated
12 by toString()/substring() and starts afresh. The default capacity of
13 CPStringBuilder can also be configured using the
14 gnu.classpath.cpstringbuilder.capacity property. (PR21869)
15 * gjdoc is now built as part of tools.zip.
16 * Import of the Java Activation Framework from ClasspathX to provide
17 javax.activation (part of 1.6).
18 * Preliminary version of java.util.Scanner (PR30436)
19 * Reduce cost of ThreadLocal(s) to improve Jython performance (PR33690)
20 * Updated to use CLDR 1.5.1 (PR35237)
21 * Many bug fixes including:
22 - PR22851: zoneStrings in gnu/java/locale/LocaleInformation*
23 - PR31895: setCurrency(Currency) does not actually change the currency.
24 - PR32028: Make fails at gjdoc
25 - PR34840: Mismatch between Sun and Classpath's java.lang.Appendable
26 - PR35487: gcj causes ConcurrentModificationException during tomcat5
27 - PR35690: javax.tools.FileObject.toUri is in wrong case
28 - PR36085: java.util.regex escape-sequence handling
29 - PR36147: Apache Tomcat fails to read descriptors using GNU XML
30 - PR36219: gnu.xml.transform.SortKey isn't subclass
31 - PR36220: NPEs in gnu.xml.transform.* clone methods
32 - PR36221: DomDOMException running SPEC jvm 2008 xml.transform
33 - PR36477: OOME in CPStringBuilder when running Eclipse
34 - PR36522: Policy file is not read at all
35 - PR36636: gjar -u doesn't work
36 - PR36637: --without-fastjar doesn't wor
37 - PR36677: Omission bug in JDWP VirtualMachineCommandSet
38 - PR38417: gnu.java.security.util.PRNG produces easily predictable values
39 - PR38473: Segmentation fault in retrieving font outline decomposition
40 - PR38861: Support XULRunner 1.9.1.
41 - PR38912: XMLParser not interning element names
42
43 Runtime interface changes:
44
45 * VMSecureRandom has moved to gnu.java.security.jce.prng.VMSecureRandom
46 as part of the fix for PR38417.
47 * gnu.java.lang.VMCPStringBuilder has been added and should be added to
48 avoid the inefficency of reflection when creating non-copied String objects.
49
50 Bug fixes in release 0.97.2 (Jun 06, 2007)
51
52 * Include headers in the release tarball.
53 * Allow the building of tools to be optional.
54 * Only check for a Java compiler when required.
55 * Allow VMOperatingSystemMXBeanImpl to compile on Solaris.
56 * Documentation typo fixes
57 * Fix memory leak in native/jni/classpath/jcl.c
58 * Web page updates (PR classpath/22883)
59 * Fixes to pass the JSR166 TCK
60 * Use awk to construct the classlist on building
61 * Fix deadlock in Logger (PR classpath/35974)
62 * Fix regression in java.lang.String (PR classpath/35482)
63 * Allow Classpath tools to handle @file options.
64 * Allow parseInt to handle a + prefix correctly.
65 * Remove use of 1.5 language constructs in the VM layer.
66
67 Bug fixes in release 0.97.1 (Mar 11, 2007)
68
69 * Include documentation for JSR166 (java.util.concurrent)
70 * Fix STaX API compatability.
71 * Include the tools properties file in the release tarball.
72
73 New in release 0.97 (Feb 22, 2007)
74
75 Build changes:
76
77 * A copy of javah (to produce C header files from Java source code)
78 is now required to generate the files in include.
79 * The javac check has been changed so that it attempts to find ecj,
80 javac and gcj (in that order). You may override this by using
81 JAVAC=<preferred javac>
82
83 Runtime interface changes:
84
85 * Removed VMFloat.floatToIntBits amd VMDouble.doubleToLongBits.
86 * Added new getParameterAnnotations() methods in Constructor and Method.
87
88 New in release 0.96.1 (Oct 16, 2007)
89
90 * Small compile, configure and build fixes.
91
92 New in release 0.96 (Oct 15, 2007)
93
94 * New experimental GStreamer javax.sound peer (see README.gstreamer)
95 * The JNI interface has been updated to 1.6
96 * Better support for the OpenJDK javac compiler
97 * Support for using javah via tools.zip and com.sun.tools.javah.Main
98 * Much improved Escher AWT peers
99 * Many bug fixes including improvements to AWT and Swing support
100
101 Runtime interface changes:
102
103 * Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default
104 implementations are the same as previous behavior.
105 * Add new default implementations of VMMemoryMXBean.getHeapUsage()
106 and VMMemoryMXBean.getNonHeapUsage() via iteration over the memory
107 pools of the appropriate type.
108
109 New in release 0.95 (Apr 23, 2007)
110
111 * Full merge of 1.5 generics work.
112 * Added 1.6 java.util.ServiceLoader support.
113 * The ASM library is now included. A separate copy is no longer
114 needed. gjavah works out of the box now.
115 * The setReadTimeout and getReadTimeout methods have been added to
116 java.net.URLConnection. They are now fully implemented for http URLs.
117 * The java.lang.management implementation now includes the new features
118 added in 1.6
119 * java.util.TimeZone now reads time zone information from the system
120 zoneinfo files (see also runtime interface changes below).
121 * The collection classes have been updated to support all the 1.6
122 additions.
123 * java.util.spi 1.6 package has been added and is used in java.text.
124 * Bootstrappable with OpenJDK javac compiler
125 (use configure --with-javac).
126 * Large speedups (and locking behaviour updated) in Graphics2D cairo
127 and freetype support.
128 * Better detection of browser plugin mechanism for mozilla, iceweasel,
129 firefox on various platforms.
130 * Inclusion of generic javadoc classes in tools.zip to support more
131 javadoc processing tools.
132 * Added documentation for command lines options for the included GNU
133 Classpath Tools gjar, gjavah, gnative2ascii, gorbd, grmid,
134 grmiregistry, gserialver and gtnameserv.
135
136 Runtime interface changes:
137
138 * gnu.java.lang.management.VMThreadMXBeanImpl has gained three new
139 optional native methods to allow the 1.6 version of the threading
140 bean to be supported. One (getMonitorInfo) fills in information
141 about object monitor locks held by a thread and is only required
142 if the monitoring of object monitor locks is supported by the VM.
143 The other two (findDeadlockedThreads and getLockInfo) are related
144 to ownable synchronizers (part of the java.util.concurrent suite)
145 and only required if monitoring of locks relating to these is
146 supported by the VM.
147 * java.util.VMTimeZone and java.util.TimeZone have been refactored
148 to simplify the reference implementation. VMTimeZone.readtzFile()
149 and VMTimeZone.skipFully() have been removed, and a new method
150 VMTimeZone.readSysconfigClockFile() has been introduced.
151 * VMs need to set the system property "gnu.java.util.zoneinfo.dir"
152 to point to the directory where zoneinfo files live. In libgcj
153 this is set to the value of the TZDATA environment variable, or
154 "/usr/share/zoneinfo" if this is not set.
155 * VMFile has been extended to support new 1.6 methods (canExecute,
156 setReadable, setWritable, setExecutable).
157
158 New in release 0.93 (Dec 8, 2006)
159
160 * CORBA objects that exist on the same virtual machine and only are connected
161 to another ORB are now accessed directly and no longer via network. It is
162 the same feature that RMI implementation provides. These faster calls should
163 be completely transparent, as the parameters are cloned, where required.
164 Currently the direct calls are only possible for the non-deprecated objects
165 that are connected to the ORB via POA.
166 * The 'javah' tool has been added. It requires the ASM library
167 (see asm.objectweb.org); it can be enabled with the --with-asm
168 option to configure
169 * Added the rmi and corbaname URL context factories for JNDI.
170 * Fixes in the JNDI InitialContext now allows to plug-in user implementation.
171 * Removed currentClassLoader method from
172 vm/reference/java/io/ObjectInputStream.java.
173 * Added firstNonNullClassLoader method to
174 vm/reference/gnu/classpath/VMStackWalker.java. VMs are encouraged to
175 provide a more efficient implementation.
176 * Added aton method to vm/reference/java/net/VMInetAddress.java.
177 * NetworkInterface has been implemented for systems that provide the
178 `getifaddrs' function.
179 * java.nio.channels.Selector implementations have been added that use
180 the kqueue notification mechanism on Mac OS X and *BSD, and that use
181 the epoll notification mechanism on Linux 2.6.
182 * java.nio has been refactored to support more non-blocking operations
183 natively. Blocking IO classes have been refactored to call
184 non-blocking classes. Non-blocking accepts, connects, and
185 scatter-gather IO should now be better supported.
186 * HTML support for Swing has been greatly enhanced.
187
188 Runtime interface changes:
189
190 * java.net.VMNetworkInterface and java.net.NetworkInterface have been
191 updated to keep native-modified state in the former, and to simplify
192 the native code in our reference implementation.
193 * gnu.java.nio.VMChannel has been expanded to better support native
194 non-blocking IO. Most native state data (such as file descriptor
195 integers) has been abstracted away into private state in the runtime
196 interface.
197 * gnu.java.nio.VMPipe has been similarly changed.
198 * gnu.java.net.VMPlainSocketImpl has been changed to remove some
199 functionality now provided by VMChannel; datagram socket-specific
200 methods have also been moved here, deprecating VMPlainDatagramSocketImpl.
201 * gnu.java.net.VMPlainDatagramSocketImpl removed.
202
203 New in release 0.92 (Aug 9, 2006)
204
205 * GConf is used as a backend for java.util.prefs. GNU Classpath
206 thanks to Mario Torre for this contribution!
207 * libjawtgnu.so has been renamed libjawt.so for binary compatibility.
208 libjawt.so should be installed in a VM-specific directory rather
209 than directly in /usr/lib. Proprietary VMs put their libjawt.so
210 implementations in VM-specific directories but search /usr/lib first.
211 If GNU Classpath's libjawt.so is installed in /usr/lib it will create
212 problems for people who use a proprietary VM to run AWT Native
213 Interface applications.
214 * The GdkGraphics2D backend has been made the default. There is no
215 longer an explicit dependency on Cairo, the --enable-gtk-cairo
216 configure option is gone, and GTK 2.8 or higher is now required to
217 build the GTK peers.
218 * A Mozilla plugin, 'gcjwebplugin', is now included. It introduces a
219 dependency on the Mozilla plugin support headers and libraries.
220 * New java implementations of png and gif imageio readers and writers.
221 * A tools.texinfo document has been created and now includes
222 documentation about:
223 * appletviewer
224 * gcjwebplugin
225 * jarsigner
226 * keytool
227 * Several new tools are now included:
228 * appletviewer
229 * jar
230 * native2ascii
231 * serialver
232 * keytool
233 * jarsigner
234 A new configure option --enable-tool-wrappers causes wrapper
235 binaries to be built for VMs that support the JNI Invocation API.
236 * We've imported the JSR 166 (concurrency) reference implementation.
237 * javax.sound.midi providers have been added to read and
238 write standard MIDI files.
239 * A javax.sound.sampled .au and .wav file readers have been added.
240 * New Java Virtual Machine Tool Interface header, jvmti.h.
241 * AWT peers for X Windows based on Escher (a pure java X protocol
242 implementation) have been added. So far it supports AWT 1.1 style
243 Graphics, image loading via ImageIO (PNG, GIF and BMP images in this
244 release), top level components as well as mouse and keyboard input.
245 It is capable of running many Swing applications. Graphics2D and
246 AWT widgets are not yet supported with this peer set.
247 * GConf based util.peers backend (see the --enable-gconf-peer and
248 --enable-default-preferences-peer configure options).
249 * Support for batch importing trusted certificates for use with ssl
250 connections (see script/import-cacerts.sh).
251 * NIO scatter-gather channel support.
252
253 Runtime interface changes:
254
255 * A new class, VMURLConnection, is used to implement
256 URLConnection.guessContentTypeFromStream. The reference
257 implementation uses libmagic (and falls back to doing nothing if
258 libmagic is not available).
259 * The method gnu.java.io.PlatformHelper.toCanonicalForm() has been
260 replaced with a JNI implementation of VMFile.toCanonicalForm() for
261 GNU/Posix systems.
262 * A new class, VMRuntimeMXBeanImpl, is used to implement
263 the low-level support of the runtime management bean.
264 VMs should use it to supply the input arguments and start
265 time of the VM. In addition, one of sun.boot.class.path
266 or java.boot.class.path should be defined by the VM to
267 support the optional boot class path access functionality.
268 * The Unsafe class was moved back to the place expected by the JSR 166
269 reference implementation. We've also added a couple other new VM
270 classes to support the JSR 166 code -- sun.reflect.Reflection and
271 sun.reflect.misc.ReflectUtil.
272 * Another new class, VMClassLoadingMXBeanImpl, is used to implement
273 the low-level support of the class loading management bean.
274 VMs need to supply it with information about how many classes
275 are currently loaded, how many have been unloaded and whether
276 verbose class loading output is on or off. Provision should also
277 be made for the latter to be toggled at runtime.
278 * VMThreadMXBeanImpl is used to implement the low-level support
279 of the thread management bean. Providing this interface requires
280 providing a fair amount of information about threads, including
281 optional time and contention monitoring, and instances of the
282 new ThreadInfo class in java.lang.management. getState() has also
283 been added to the VMThread interface; this is required by the bean
284 as well as java.lang.Thread.
285 * VMMemoryMXBeanImpl is used to implement the low-level support
286 of the memory management bean. Providing this interface requires
287 providing information about the levels of heap and non-heap memory,
288 and the number of objects eligible for garbage collection.
289 * VMCompilationMXBeanImpl is used to allow for optional compilation
290 time support for Just-In-Time compilers.
291 * VMMemoryPoolMXBeanImpl is used to implement the low-level support
292 of the memory pool beans. Providing this interface requires
293 providing memory usage statistics for each supported bean.
294 * VMManagementFactory provides the names of the memory pools,
295 memory managers and garbage collectors maintained by the virtual
296 machine. These are used to create the beans by the ManagementFactory.
297 * VMMemoryManagerMXBeanImpl and VMGarbageCollectorMXBeanImpl provide
298 low-level support for memory managers (including the specific subclass
299 of garbage collecting memory managers). The interfaces for these
300 require no more than enumerating the number of collections and the
301 time spent (for garbage collectors) and a relationship to the memory
302 pools (for all), along with a validity check.
303
304 New in release 0.91 (May 15, 2006)
305
306 * Experimental activation (java.rmi.activation) support, including RMI
307 activation daemon and persistent naming service tools.
308 * Experimental printing support: The API implementation of the javax.print
309 packages has been finished and work on the printing provider implementation
310 started. Currently supported features from the Java Print Service API are
311 print service discovery (CUPS registered printers), single document print
312 jobs and support for client-formatted print data. An example application
313 (see: examples/gnu/classpath/examples/print/Demo) has been added to show
314 the API usage for service discovery and printing of files.
315 * The GTKToolkit now gives access to the both the system clipboard and
316 system selection.
317 * Custom mouse cursor support has been added to the gtk+ peers. And cursors
318 can now also be set on light-weight components.
319 * Free Swing improvements: Support for OceanTheme has been mostly completed
320 and turned on as default Metal theme. X11-style Copy and Paste behavior in
321 text components with the middle mouse button. Support cursor changes on
322 various components when resizing. Support for Look and Feel window
323 decorations has been added.
324 * Updated locale data information to CLDR 1.3.
325 * Various bugs in Classpath's SecureRandom implementations have been
326 fixed; that class now respects the "securerandom.source" security
327 property and the "java.security.egd" system property.
328 * Support for assistive technologies has been added to AWT and Swing.
329
330 Runtime interface changes:
331
332 * A new class, VMArray, is now available which separates the native
333 array creation method from java.lang.reflect.Array.
334 * A new class, gnu.classpath.Unsafe, is provided for handling the
335 new low-level operations required by java.util.concurrent.
336 * The reference implementations of Method, Constructor, and Field
337 now have a new native getModifiersInternal() method. The public
338 getModifiers() method in each case has been rewritten in terms of
339 this method.
340 * The reference implementation of VMThread has been updated to handle
341 the new Thread.UncaughtExceptionHandler support.
342 * A new class, java.security.VMSecureRandom, is now available that is
343 used to generate random numbers for seeding cryptographically-secure
344 pseudo-random number generators.
345 * VMClass and the reference implementations of Method, Constructor and Field
346 now include a number of 1.5 methods imported from the generics branch.
347 These are all optional (in the sense that the methods associated with them
348 merely fail on use if the VM doesn't provide them, rather than the
349 VM failing altogether), but VMs should aim to support them where possible.
350 * The implementation of java.lang.instrument has been merged to the main
351 branch from the generics branch.
352 * The VM interfaces of the main branch and the generics branch are now
353 consistent with one another. As a result, the main branch includes an
354 additional environ() function in VMSystem and an additional argument has
355 been added to nativeSpawn() in VMProcess.
356 * Annotation support is now available in the main branch, if the VM supports
357 it. The VM should implement VMClass.getDeclaredAnnotations,
358 Constructor.getAnnotation, Constructor.getDeclaredAnnotations,
359 Field.getAnnotation, Field.getDeclaredAnnotations, Method.getAnnotation and
360 Method.getDeclaredAnnotations.
361 * java.lang.Package now has a new constructor that takes the defining
362 ClassLoader as an extra argument. If you use a custom version of
363 VMClassLoader, please switch it to use this constructor.
364 * The reference implementation of VMClassLoader.getBootPackages() now
365 reads the META-INF/INDEX.LIST resource using the java.boot.class.path
366 system property.
367
368 New in release 0.90 (March 6, 2006)
369
370 * Free Swing improvements: JTable columns are rearrangeable and
371 resizeable with mouse. Painting and scrolling are now much
372 faster. Plain text components now support highlighting and
373 copy+paste to the system clipboard. Support for styled text has been
374 improved, including some very basic HTML support. JFileChooser is
375 now usable. Global event dispatching has been implemented. Memory
376 consumption of Swing components has been reduced. Lots of general
377 bugfixes. Added new system property to turn off Graphics2D use in
378 Swing, even if Graphics2D is available: gnu.javax.swing.noGraphics2D
379
380 * AWT. Improved support for mixing "lightweight" and "heavyweight"
381 Components in Containers. Better support for dynamically updated
382 menus. Better 1.0 event model support for Scrollbars. Better class
383 documentation of gtk+ awt peers.
384
385 * GNU Crypto and Jessie have been merged into GNU Classpath; this
386 provides Classpath with a wide array of cryptographic algorithms
387 (ciphers, message digests, etc.) and implementations of SSL version
388 3 and TLS version 1. These roughly complement the public
389 `java.security.' `javax.crypto,' and `javax.net.ssl' packages, and
390 are service providers implementing the underlying algorithms.
391
392 * Updated HTTP and FTP URLConnection protocol handlers. HTTPS support
393 out of the box.
394
395 * Unicode 4.0.0 is supported. Character now includes support for using
396 ether a char or an int to identify code points.
397
398 * More correct handling of Object methods and serialization support
399 for Proxy and abstract classes.
400
401 * The new folder tools includes GIOP and RMI stub and tie source code
402 generators, IOR parser and both transient and persistent GIOP naming
403 services.
404
405 * Added experimental support for dynamic creation of the RMI stubs
406 using proxy classes. The rmic compiler is no longer required (unless
407 for research and specific stubs).
408
409 * XML validaton support for RELAX NG and W3C XML schema namespace
410 URIs. RELAX NG pluggable XML schema datatype library API and an
411 implementation for XML Schema Datatypes
412 (http://www.w3.org/TR/xmlschema-2/).
413
414 * Updated StAX implementaton to be compatible with final JSWDP 2.0.
415
416 * The default back end for java.util.prefs has been changed. The new
417 default is capable of saving and restoring preferences to and from
418 the file system.
419
420 * javax.imageio.plugins.bmp implementation.
421
422 * Added --enable-collections configure option which builds
423 "collections.jar", a 1.1 VM compatibility jar.
424
425 * gnu.regexp updated from GNU/Posix syntax to support util.regex
426 syntax including various Unicode blocks, categories and properties.
427
428 Runtime interface changes:
429
430 * A new class, VMMath, is now available which separates the native
431 mathematical functions from java.lang.Math. The previous fdlibm
432 implementation now forms the reference material for this class.
433
434 * Updated VMObjectInputStream class to return Thread context class
435 loader if no other class loader is found.
436
437 * Updated documentation on InstrumentationImpl in vmintegration guide.
438
439 New in release 0.20 (Jan 13, 2006)
440
441 * New StAX pull parser and SAX-over-StAX driver. Lots of DOM, SAX/StAX,
442 XPath and XSLT improvements. Support for XInclude and XML Base added.
443 Conformance is now regularly tested against various test-suites at
444 http://builder.classpath.org/xml/ See also doc/README.jaxp.
445
446 * Full beans XMLEncoder implementation.
447
448 * javax.sound.sampled implementation.
449
450 * javax.print.attribute and javax.print.event implementated.
451
452 * Lots of new datatransfer, print swing and swing.text work and optimization.
453
454 * Additional 1.5 support. Including new (separate) generic branch release.
455
456 * SecurityManager cleanups and start of review of all Permission checks
457 (includes adding lots of new checks to the Mauve test-suite).
458
459 * Buildable on cygwin.
460
461 * Fully buildable as "in-workspace" library-plus-vm inside (native) Eclipse
462 see http://developer.classpath.org/mediation/ClasspathHackingWithEclipse
463
464 * Full example that shows a real world CORBA and Free Swing implementation.
465 See examples/gnu/classpath/examples/CORBA/swing/README.html
466
467 * A list of bug fixes can be found at:
468 http://gcc.gnu.org/bugzilla/buglist.cgi?product=classpath&target_milestone=0.20
469
470 Runtime interface changes:
471
472 * New method VMStackWalker.getClassLoader() was added to avoid an infinite
473 loop between getCallingClassLoader() and Class.getClassLoader().
474
475 * The included fdlibm implementation has seen several cleanups to handle
476 new architectures and namespacing issues (in particular for ppc, darwin
477 and non-C99 compilers). Please double check any arithmetic test against
478 new platforms/runtimes.
479
480 * The gnu.java.net.Plain[Datagram]Socket implementations have been
481 turned into VM reference classes with JNI/Posix implementations.
482
483 New in release 0.19 (Nov 2, 2005)
484
485 * The Swing RepaintManager has been reworked for more efficient painting,
486 especially for large GUIs.
487
488 * The Swing layout manager OverlayLayout has been implemented, the BoxLayout
489 has been rewritten to make use of the SizeRequirements utility class and
490 caching for more efficient layout.
491
492 * Improved accessibility support for Swing.
493
494 * The java.net.HttpURLConnection implementation no longer buffers the
495 entire response body in memory. This means that response bodies
496 larger than available memory can now be handled.
497
498 * The Andrew Watson, Vice President and Technical Director of the Object
499 Management Group, has officially assigned us 20 bit Vendor Minor Code Id:
500 0x47430 ("GC") that will mark remote Classpath - specific system exceptions.
501 Obtaining the VMCID means that GNU Classpath now is a recogniseable type of
502 node in a highly interoperable CORBA world.
503
504 * Classpath now includes the first working draft to support the RMI over
505 IIOP protocol. The current implementation is capable for remote invocations,
506 transferring various Serializables and Externalizables via RMI-IIOP protocol.
507 It can flatten graphs and, at least for the simple cases, is interoperable
508 with Sun's jdk 1.5.
509
510 * Qt4 configury switches for OS-X. Additional to the --enable-qt-peer, OS-X
511 users with a Qt4 installation can build the qt-peers with the argument
512 --with-qt4dir=<Qt4-installation-dir>.
513
514 * Significant progress has been made in the implementation of the
515 javax.swing.plaf.metal.* package, with most UI delegates in a working state
516 now. Please test this with your own applications and provide feedback that
517 will help us to improve this package.
518
519 * The GUI demo (gnu.classpath.examples.swing.Demo) has been extended to
520 highlight various features in our free-swing implementation. And includes
521 a look and feel switcher (Metal default, Ocean or GNU).
522
523 Runtime interface changes:
524
525 * Changed implementation of VMClassLoader.getPackage(s) : new method
526 VMClassLoader.getBootPackages should be implemented by the vm, and sould
527 return a string array of boot package names ("java.lang", "java.net", ...).
528 Feedback from vm implementors for usability and relevance of the
529 getBootPackages method would be greatly appreciated.
530
531 New in release 0.18 (Sep 6, 2005)
532
533 * GNU JAWT implementation, the AWT Native Interface, which allows direct
534 access to native screen resources from within a Canvas's paint method.
535 GNU Classpath Examples comes with a Demo, see examples/README.
536 * awt.datatransfer updated to 1.5 with supports for FlavorEvents.
537 The gtk+ awt peers now allow copy/paste of text, images, uris/files
538 and serialized objects with other applications and tracking
539 clipboard change events with gtk+ 2.6 (for gtk+ 2.4 only text and
540 serialized objects are supported). A GNU Classpath Examples
541 datatransfer Demo was added to show the new functionality.
542 * org.omg.PortableInterceptor and related functionality in other packages
543 is now implemented:
544 - The sever and client interceptors work as required since 1.4.
545 - The IOR interceptor works as needed for 1.5.
546 * The org.omg.DynamicAny package is completed and passes the prepared tests.
547 * The Portable Object Adapter should now support the output of the
548 recent IDL to java compilers. These compilers now generate servants and
549 not CORBA objects as before, making the output depended on the existing
550 POA implementation. Completing POA means that such code can already be
551 tried to run on Classpath. Our POA is tested for the following usager
552 scenarios:
553 - POA converts servant to the CORBA object.
554 - Servant provides to the CORBA object.
555 - POA activates new CORBA object with the given Object Id (byte array)
556 that is later accessible for the servant.
557 - During the first call, the ServantActivator provides servant for this
558 and all subsequent calls on the current object.
559 - During each call, the ServantLocator provides servant for this call
560 only.
561 - ServantLocator or ServantActivator forwards call to another server.
562 - POA has a single servant, responsible for all objects.
563 - POA has a default servant, but some objects are explicitly connected
564 to they specific servants.
565 The POA is verified using tests from the former cost.omg.org.
566 * The javax.swing.plaf.multi.* package is now implemented.
567 * Editing and several key actions for JTree and JTable were implemented.
568 * Lots of icons and look and feel improvements for Free Swing basic and
569 metal themes were added. Try running the GNU Classpath Swing Demo in
570 examples (gnu.classpath.examples.swing.Demo) with:
571 -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeel
572 -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
573 * Start of styled text capabilites for java.swing.text.
574 * NIO FileChannel.map implementation, fast bulk put implementation for
575 DirectByteBuffer (speeds up this method 10x).
576 * Split gtk+ awt peers event handling in two threads and improve gdk lock
577 handling (solves several AWT lock ups).
578 * Speed up awt Image loading.
579 * Updated TimeZone data against Olson tzdata2005l.
580 * Make zip and jar UTF-8 "clean".
581 * "native" code builds and compiles (warning free) on Darwin and Solaris.
582
583 Runtime interface changes:
584
585 * All native resource "pointers" in the VM interface classes are now exposed
586 as gnu.classpath.Pointer objects. This might impact runtimes that
587 optimize and support java.nio.DirectByteBuffers. Creating these classes
588 and accessing the contents as void * pointers for the native reference JNI
589 implementation is done through the JCL_NewRawDataObject and JCL_GetRawData
590 functions.
591 * Simplified the Class/VMClass interface.
592 * Removed loadedClasses map from ClassLoader. It's now the VMs responsibility
593 to manage the list of defined and loaded classes for each class loader.
594 * Moved native methods from java.lang.reflect.Proxy to VMProxy.
595 * Added hook to VMClassLoader to allow VM to do class caching.
596
597 New Untested/Disabled Features:
598
599 The following new features are included, but not ready for production
600 yet. They are explicitly disabled and not supported. But if you want
601 to help with the development of these new features we are interested
602 in feedback. You will have to explicitly enable them to try them out
603 (and they will most likely contain bugs). If you are interested in any
604 of these then please join the mailing-list and follow development in
605 CVS.
606
607 * QT4 AWT peers, enable by giving configure --enable-qt-peer.
608 * JDWP framework, enable by deleting the jdwp references from
609 lib/standard.omit and vm/reference/standard.omit. No default
610 implementation is provided. Work is being done on gcj/gij integration.
611 * StAX java.xml.stream, enable by deleting the gnu.xml.stream and
612 java.xml.stream references in lib/standard.omit.
613
614 New in release 0.17 (Jul 15, 2005)
615
616 * gnu.xml fix for nodes created outside a namespace context.
617 * Add support for output indenting and cdata-section-elements output
618 instruction in xml.transform.
619 * xml.xpath corrections for cases where elements/attributes might have
620 been created in non-namespace-aware mode. Corrections to handling of
621 XSL variables and minor conformance updates.
622 * DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
623 traversal enumerations implemented.
624 * JInternalFrame colors and titlebar draw properly.
625 * JTree is working up to par (icons, selection and keyboard traversal).
626 * JMenus were made more compatible in visual and programmatic behavior.
627 * JTable changeSelection and multiple selections implemented.
628 * JButton and JToggleButton change states work properly now.
629 * JFileChooser fixes.
630 * revalidate and repaint fixes which make Free Swing much more responsive.
631 * Correctly handle system call interrupts and timeouts in native nio
632 and net functions.
633 * MetalIconFactory implemented.
634 * Handle image loading errors correctly for gdkpixbuf and MediaTracker.
635 * Added Tree World to GNU Classpath examples Free Swing demo.
636 * FileChannel.lock() and FileChannel.force() implemented.
637 * java.util.logging.FileHandler now rotates files.
638 * Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).
639 * Corba bug fixes and documentation updates.
640 * Updated gcj build infrastructure.
641 * Documentation fixes all over the place.
642 See http://developer.classpath.org/doc/
643 * VM Integration Guide updates with a full section on VM/Classpath hooks.
644
645 New in release 0.16 (Jun 30, 2005)
646
647 * Better GTK scrollbar peer implementation when using GTK >= 2.6.
648 * GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
649 * BufferedImage and GtkImage rewrites. All image drawing operations
650 should now work correctly (flipping requires gtk+ >= 2.6)
651 * Future Graphics2D, Image and Text work is documented at:
652 http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
653 * Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
654 JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
655 can call add() and setLayout() directly on them, which will have the same
656 effect as calling getContentPane().add() and getContentPane().setLayout().
657 * The JTree interface has been completed. JTrees now recognizes mouse clicks
658 and selections work, but the visual implementation is not yet complete.
659 Work on expansion and collapsing of the tree nodes is being implemented.
660 * BoxLayout works properly now.
661 * Fixed GrayFilter to actually work.
662 * Metal SplitPane implemented.
663 * Lots of free swing text and editor stuff work now.
664
665 * When gtk+ 2.6 or higher is installed the default log handler will produce
666 stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
667
668 * The CORBA implementation is now a working prototype that should support
669 features up till 1.3 inclusive.
670 We would invite groups writing CORBA dependent applications to
671 try Classpath implementation, reporting any possible bugs.
672
673 The CORBA prototype is interoperable with Sun's implementation v 1.4,
674 transferring object references, primitive types, narrow and wide
675 strings, arrays, structures, trees, abstract interfaces and
676 value types (feature of CORBA 2.3) between these two platforms.
677 The remote exceptions are transferred and handled correctly.
678 The stringified object references (IORs) from various sources are
679 parsed as required.
680 The transient (for current session) and permanent (till jre restart)
681 redirections work.
682 Both Little and Big Endian encoded messages are accepted.
683 The implementation is verified using tests from the former cost.omg.org.
684 The current release includes working examples (see the examples directory),
685 demonstrating the client-server communication, using either CORBA Request
686 or IDL-based stub (usually generated by a IDL to java compiler).
687 These examples also show how to use the Classpath CORBA naming service.
688 The IDL to java compiler is not yet written, but as our library must be
689 compatible, it naturally accepts the output of other idlj implementations.
690
691 * New --with-vm-classes configure option, and new 'build' setting
692 for --with-glibj. (Only for integrators.)
693
694 Runtime interface changes:
695
696 * Start of a generic JDWP framework in gnu/classpath/jdwp.
697 This is unfinished, but feedback (at classpath@gnu.org) from runtime
698 hackers is greatly appreciated. Although most of the work is currently
699 being done around gcj/gij we want this framework to be as VM neutral as
700 possible. Early design is described in:
701 http://gcc.gnu.org/ml/java/2005-05/msg00260.html
702 * Native method VMClass.getModifiers() now takes an additional
703 boolean parameter.
704 * Deprecated native method VMClassLoader.defineClass(ClassLoader,
705 String, byte[], int, int) has been replaced by
706 VMClassLoader.defineClass(ClassLoader, String, byte[], int, int,
707 ProtectionDomain)
708 * VMClassLoader.loadClass(String name, boolean resolve) is now native,
709 replacing the former version which just returned null.
710 * Deprecated native method VMClassLoader.getPrimitiveClass(String) has
711 been replaced by new native method VMClassLoader.getPrimitiveClass(char).
712 * Previously empty implementations of methods VMThread.countStackFrames(),
713 VMThrowable.fillInStackTrace(), and VMThrowable.getStackTrace() have
714 been removed; these methods are now native methods.
715 * Fields "exceptionTypes" and "parameterTypes" have been removed from
716 Contructor.java and getExceptionTypes() and getParameterTypes() are
717 now native methods.
718
719 New in release 0.15 (Apr 29, 2005)
720
721 * The old character encoding framework (gnu.java.io.EncodingManager)
722 has been replaced by a system based completely on nio.charset
723 providers. Many converters have been added, both the io, lang and nio
724 frameworks now use the same set of converters and the whole character
725 stream framework (Readers and Writers) have been optimized. For some
726 workloads this leads to 2x till 20x speedups.
727
728 The default charsets supported are:
729
730 Cp424, Cp437, Cp737, Cp775, Cp850, Cp852, Cp855, Cp857, Cp860, Cp861,
731 Cp862, Cp863, Cp864, Cp865, Cp866, Cp869, Cp874, ISO_8859_1, ISO_8859_13,
732 ISO_8859_15, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6,
733 ISO_8859_7, ISO_8859_8, ISO_8859_9, KOI_8, MS874, MacCentralEurope,
734 MacCroatian, MacCyrillic, MacDingbat, MacGreek, MacIceland, MacRoman,
735 MacRomania, MacSymbol, MacThai, MacTurkish, US_ASCII, UTF_16, UTF_16BE,
736 UTF_16Decoder, UTF_16Encoder, UTF_16LE, UTF_8, UnicodeLittle, Windows1250,
737 Windows1251, Windows1252, Windows1253, Windows1254, Windows1255,
738 Windows1256, Windows1257, Windows1258.
739
740 Many more encoding are supported through the new IconvProvider
741 depending on the platform iconv support. GNU libiconv is recommended.
742 The IconvProvider is currently not enabled by default. To enable it
743 define the system property gnu.classpath.nio.charset.provider.iconv=true.
744 Some runtimes might choose to enable this by default by setting it
745 through VMSystemProperties. We would like to get feedback on whether
746 enabling or disabling the IconvProvider by default results in the
747 highest speedups.
748
749 * Free swing metal and pluggable look and feels have been improved.
750 The GNU Classpath free swing example can now be run with different
751 "skins" by setting the system property swing.defaultlaf to the GNU,
752 Basic or Metal look and feel.
753
754 * Some of the org.omg.CORBA classes and packages have now been
755 implemented. The Savannah bug tracker contains additional tasks for
756 which we are seeking help.
757
758 * Fixed compatibility problems in the java.beans which affected
759 Eclipse's Visual Editor Project.
760
761 * New completely lock free (Inheritable)ThreadLocal implementation.
762
763 * javax.swing.text.rtf framework added which can handle simple (plain)
764 text tokens.
765
766 * Support for parsing html files into Level 2 Document Object Model
767 (org.w3c.dom.html2 and javax.swing.text.html.parser). And a start of
768 javax.swing.text.html framework added.
769
770 Runtime interface changes:
771
772 * jni.h changed to better support compiling runtimes implementing jni;
773 see VM integration guide for details.
774 * New --enable-default-toolkit option to configure can be used to set
775 the fully qualified class name of the default AWT toolkit to use.
776 If not given, the old default of gnu.java.awt.peerk.gtk.GtkToolkit
777 is used.
778 * New --disable-core-jni option can be used to disable building the
779 "core" JNI libraries. This is primarily useful if your VM can use the
780 Gtk peers but not the core JNI libraries.
781 * New system property "gnu.classpath.boot.library.path" can be specified
782 to define the location of the JNI libraries. It is by all means meant
783 ONLY for VM implementors and GNU Classpath hackers. See the hacking
784 guide for more information.
785 * The helper methods currentLoader() and allocateObject() for
786 java.io.ObjectInputStream have been moved to a VMObjectInputStream class.
787 Reference implementations are provided.
788 * java.net.InetAddress now uses VMInetAddress for runtime/platform
789 specific methods getLocalHostname(), getHostByAddr() and
790 getHostByName(). java.net.NetworkInterface now uses VMNetworkInterface
791 for runtime/platform specific getInterfaces() support. Default
792 (Posix/GNU JNI) implementations are provided.
793 * VMClass has a new method getModifiers(Class, boolean) which can be
794 used to get the real modifiers for an inner class or the ones
795 specified by the InnerClasses attribute.
796 * All (possible) runtime specific methods of Object and Double are now
797 in VMObject and VMDouble. Where possible generic reference
798 implementations are provided.
799 * The reference implementation of VMClassLoader now handles zip files
800 on the boot loader class path in getResources().
801
802 Other changes:
803
804 New in release 0.14 (Feb 25, 2005)
805
806 * Character encoders and decoders have been added for:
807 iso-8859-6 (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew),
808 iso-8859-9 (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
809 ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
810 UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little Endian).
811 * Full documentation for all classes can be generated (again) by using
812 the --with-gjdoc configure option.
813 * javax.awt.imageio support through gdkpixbuf.
814
815 Runtime interface changes:
816
817 * VMSecurityManager has been replaced by gnu.classpath.VMStackWalker.
818 currentClassLoader() is no longer needed, and there are also two new
819 methods with non-native implementations. VM implementors are encouraged
820 to provide more efficient versions.
821 * VMRuntime.nativeLoad() now takes an additional ClassLoader parameter.
822
823 New in release 0.13 (Jan 6, 2005)
824
825 * The http url protocol handler has been replaced with a full HTTP/1.1
826 version from GNU inetlib.
827 * A new ftp url protocol handler has been added also from GNU inetlib.
828 * java.beans has been updated to 1.4 including support for XMLEncoder
829 and XMLDecoder.
830 * The java.util.Locale support is now based on the Common Locale Data
831 Repository (CLDR) Project (see http://www.unicode.org/cldr/).
832 GNU Classpath provides support for more than 250 locales now.
833 This new support is experimental and the GNU Classpath hackers are
834 working together with runtime developers and the unicode consortium
835 to improve them in the future.
836 If your runtime misdetects your locale or if the default locale gives
837 problems please try running with -Duser.language=en and -Duser.region=US
838 to fall back on a known good locale.
839 * Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2) and
840 org.w3c.dom (DOM Level 3) interfaces. It is possible to switch between
841 different implementations AElfred2, GNU DOM, GNU XSL, libxmlj SAX,
842 libxmlj DOM and libxmlj XSL by setting different system properties.
843 Also provided is a preliminary XPath 1.0 implementation.
844 The libxmlj versions are build around libxml2 and libxslt and have to
845 be enabled during build time by the --enable-xmlj configure flag.
846 The current support is equal to the last released GNU JAXP 1.3 release.
847 These packages will be maintained as part of the GNU Classpath core classes
848 in the future. For more information, conformance results and documentation
849 on selecting different implementations see doc/README.jaxp.
850 * More AWT accessible support.
851 * AWT gtk+ peers component layout, dialog placement, keyboard focus
852 handling and text positioning have been improved.
853 * ImageIO interfaces are more complete.
854 * JList, JTable and JTree have been hugely improved.
855 * java.awt.Robot support with GdkRobot in the gtk+ awt peers.
856 Needs XTest Extension (libXtst) XServer support.
857 * New --disable-examples configure argument.
858
859 Runtime interface changes:
860
861 * Added a new method (VMRuntime.enableShutdownHooks) that enables the VM
862 to lazily register an exit handler.
863 * The java.lang.Class constructor now automatically sets the protection
864 domain for array classes, based on the protection domain of the component
865 type class.
866 * New gnu.classpath.VMSystemProperties class. This replaces the
867 system properties initialization in VMRuntime. Note that it is
868 now the VMs responsibility to set one additional property:
869 gnu.cpu.endian should be set to "big" or "little".
870 * VMRuntime.nativeGetLibname() has been renamed to VMRuntime.mapLibraryName()
871 and has only one argument, the name of the library.
872 * String and StringBuffer now call VMSystem.arraycopy() directly and don't
873 go through java.lang.System. Be careful to not initialize java.lang.System
874 early in the bootstrap sequence in your VM runtime interface classes.
875 * Some (wrong) documentation about the behavior of VMThread.sleep(0, 0)
876 has been updated. Also, VMThread.sleep() now has a default non-native
877 implementation, but it is a generic implementation that ignores the
878 nano-seconds argument. Runtime hackers are encouraged to provide a more
879 efficient version.
880 * There is prelimenary support for nio direct byte buffers.
881 See VMDirectByteBuffer. Please contact the GNU Classpath mailinglist when
882 you add support for this to your runtime.
883
884 New in release 0.12 (Nov 14, 2004)
885
886 * GNU Classpath's JAR implementation now has preliminary support for
887 signed entries, for so called "signed JAR" file support. Signed JAR
888 files are one of the key security features of managed runtimes, and
889 allows code to run privileged given unforgeable proofs of identity.
890 * A much improved version of X.509 certificates has been added,
891 including a robust certificate path checking algorithm. Also
892 included is an implementation of the RSA signature scheme.
893 * Full java.awt.color implementation, with all standard ICC profiles,
894 except for PhotoYCC color space.
895 * java.beans 1.4 updates and bug fixes.
896 * java.awt.image support updated to 1.4.
897 * Improved build process. Uses less memory with gcj and C code is
898 buildable with -Werror on most platform. Please configure with
899 --enable-Werror and report any remaining issues.
900 * Big-endian (PowerPC) fixes for native awt GTK+ peers.
901 * Checkstyle support, see scripts/checkstyle-config.xml.
902 * Better AWT focus management fro GTK+ peers.
903 * Much faster and better fonts support
904 (for both gdk Graphics and cairo Graphics2D)
905 * AWT Choice fixes for hidden components.
906 * HTTP Connection Handler fixes for POST support.
907 * Much fuller collection documentation.
908 * Lots of Calendar bug fixes.
909 * More javax.imageio support.
910 * Better AWT Help MenuBar support.
911 * Lookahead support for regular expressions.
912 * Serialization object stream fixes for multiple ClassLoader scenarios.
913 * Swing TabbedPane, ColorChooser and ComboBox improvements.
914 * Start of JTree functionality.
915 * Improved Eclipse 3 support for GNU Classpath based runtimes.
916
917 Runtime interface Changes:
918
919 * New --enable-java-lang-system-explicit-initialization configuration
920 option. (Warning, will be replaced in next release, please consult
921 the mailinglist.)
922 * The reference implementation of VMClassLoader has default
923 implementations for getResource(s) and provides support for a new
924 default getSystemClassLoader implementation.
925
926 New in release 0.11 (Sep 13, 2004)
927
928 * javax.swing.Spring and SpringLayout support.
929 * Added pluggable look and feel support for BasicTextFieldUI and
930 BasicToolBarSeparatorUI.
931 * java.swing.text support for (Default and Layered) Highlighter, FieldView,
932 PlainView, TabExpander and TabableView added.
933 * Start of JTable and JTree implementation.
934 * Internal Swing frames work.
935 * JMenu and JPopupMenu work.
936 * New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
937 * java.awt.image LookupTables and kernel support.
938 * Improved java.awt.image.BufferedImage support.
939 * AWT 1.0 event model support.
940 * GNU Classpath now comes with some example programs (see examples/README).
941 * New javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net,
942 javax.net.ssl, javax.security.auth, javax.security.auth.callback,
943 javax.security.auth.login, javax.security.auth.x500, javax.security.sasl
944 and org.ietf.jgss packages are now officially part of GNU Classpath.
945 Extra crypto algorithms can be obtained from the GNU Crypto project,
946 a full TLS implementation is provided by the Jessie project.
947 http://www.gnu.org/software/gnu-crypto/
948 http://www.nongnu.org/jessie/
949 * Frame.setIconImage() support.
950 * AWT GDKGraphics scaling.
951 * New configure flag --enable-gtk-cairo to build Graphics2D implementation
952 build on cairo and pangoft2. Enabled at runtime by defining the system
953 property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
954 * javax.swing.JSpinner implemented.
955 * Extensive documentation update for java.util collection classes.
956 * java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D implemented.
957 * GNU JAXP is no longer included with GNU Classpath. Runtime, compiler and
958 tool integrators are encouraged to directly integrate GNU JAXP.
959 This release has been tested against GNU JAXP 1.1.
960 http://www.gnu.org/software/classpathx/jaxp/jaxp.html
961 * JColorChooser, JComboBox and JTextField implemented, including example
962 uses in GNU Classpath Examples swing Demo.
963
964 Runtime interface Changes:
965
966 * java.lang.Compiler now uses the new java.lang.VMCompiler; there is
967 a reference implementation that most VMs can use.
968 * java.lang.VMSystem has a new getenv(String) method and a reference C/JNI
969 implementation that should work on most Posix like systems.
970 * java.util.TimeZone has been split into a platform independent class and
971 a platform dependent class VMTimeZone. GNU Classpath comes with a generic
972 way to get at the default time zone for Posix/GNU-like platforms.
973 * [VM]AccessController improvements. In particular it handles
974 `doPrivileged' calls better, and allows for recursive `doPrivileged'
975 calls in the same Thread. (see vm/reference/java/security/)
976
977 New in release 0.10 (Jul 9, 2004)
978
979 * java.net.URL now uses application classloader to load URLStreamHandlers
980 and reuses URLStreamHandlers when URL is reset (but protocol isn't changed).
981 * java.io.File.deleteOnExit() implementation.
982 * java.text multiple new features and bug fixes
983 (only 2 out of the 1000+ java.text Mauve tests now fail).
984 * Better (non-black) default AWT System colors.
985 * AWT lists use GTK treeviews.
986 * Proper AWT focus management has been implemented.
987 * Swing menus and scrollpanes are beginning to work.
988 * Swing splitpanes, dialogs and internal frames were added.
989 * Swing repainting / double buffering was redone.
990 * Font management and Pango DPI conversion fixes.
991 * A lot of AWT imaging and event bugs have been picked out.
992 * More of javax.swing.text has been implemented.
993 * javax.swing.Timer has been reimplemented.
994 * java.security.AccessController has been implemented
995 (see runtime section).
996 * The default java.lang.SecurityManager now uses AccessController.
997 * New java.beans.Statement and Expression implementations.
998 * Small FileChannel implementation speed improvement for traditional
999 JNI based systems.
1000 * Regenerated all included JNI header files with gcjh (3.5 CVS),
1001 removes extra extern modifier and allows stricter compiler warning.
1002 * More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and
1003 -Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes,
1004 made it compilable with C++ compilers and jni.h got renamed from jni.h.in).
1005 * Double.toString() and Float.toString() now work properly on 64-bit
1006 PowerPC systems.
1007 * PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes.
1008 * Build system refactored and removed old Japhar specific support.
1009 * The gnu.java.awt.EmbeddedWindow class has been improved, and now
1010 supports embedding AWT windows in other top-level X windows.
1011 This functionality is required by gcjwebplugin.
1012 * gcjwebplugin, an applet viewer that can be embedded into several web
1013 browsers, has been extensively tested with this release of classpath.
1014 (See http://www.nongnu.org/gcjwebplugin/)
1015 * Runtime environments based on GNU Classpath 0.10 should be able to
1016 start up Eclipse 3.0 out of the box now.
1017
1018 Runtime interface Changes:
1019
1020 * VMProcess.destroy() default implementation fixes.
1021 * Fixed the "portable native sync" code; it had been broken since
1022 Classpath release 0.06, when we upgraded to GTK+2.
1023 Classpath's AWT peers use GTK+. GTK+ uses GLIB. GLIB by default uses
1024 the platform's native threading model -- pthreads in most cases.
1025 If the Java runtime doesn't use the native threading model, then you should
1026 specify --portable-native-sync when configuring Classpath, so that GLIB will
1027 use the Java threading primitives instead. (For a superior alternative,
1028 see below.)
1029 * The VM can set the system property
1030 gnu.classpath.awt.gtk.portable.native.sync instead of using the
1031 --portable-native-sync configure-type option.
1032 See doc/vmintegration.texinfo for details.
1033 * We intend that the next release of GNU Classpath will require the VM
1034 to provide JNI 1.2. Classpath currently uses only JNI 1.1, except for
1035 one JNI 1.2 function: GetEnv(), in the JNI Invocation API.
1036 If this poses problems, please raise them on the classpath mailing list.
1037 * The reference implementation of VMThread.holdsLock(Object) now has
1038 a default implementation written in java. For efficiency and to
1039 prevent spurious wakeups a real 'native' runtime version can be supplied.
1040 * There is a new java.security.VMAccessController class that runtimes need
1041 to implement to properly support SecurityManagers. The default
1042 implementation that comes with GNU Classpath makes sure that ANY attempt
1043 to access a protected resource is denied when a SecurityManager is
1044 installed. Which is pretty secure, but also no very useful.
1045 Please see the documentation in
1046 vm/reference/java/security/VMAccessController.java,
1047 and please give feedback on the GNU Classpath mailinglist whether or not
1048 the current AccessController framework is flexible enough.
1049
1050 New in release 0.09 (May 2, 2004)
1051
1052 * Includes updated GNU JAXP version from 2004-02-01.
1053 * Native C code is now -ansi -pedantic (C89) clean and (almost) -Wall clean.
1054 * java.io is now implemented by delegating most tasks directly to java.nio.
1055 * Reworked/Optimized implementations of java.nio.Buffer and subclasses.
1056 * New javax.print, javax.print.attribute[.standard] and javax.print.event
1057 packages and classes.
1058 * java.text attributed iterators support.
1059 * New javax.imageio, javax.imageio.event and javax.imageio.spi packages and
1060 classes.
1061 * GNU Classpath can now load service providers that are described via
1062 META-INF/services/* resources in extension JARs. This is useful for
1063 implementing the various APIs that are supposed to be extensible via
1064 custom plugins. For details, please see the documentation of
1065 gnu.classpath.ServiceFactory.
1066 Application developers are strongly discouraged from calling glibj
1067 internal packages. Instead, they might want invoke the newly implemented
1068 javax.imageio.spi.ServiceRegistry.lookupProviders, which is a standard
1069 method for loading plug-ins.
1070 * New developers wanting to help the GNU Classpath project might want to
1071 review the greatly expanded Hacker Guide included in the doc directory
1072 or online at http://www.gnu.org/software/classpath/docs/hacking.html
1073 Also the FAQ has been expanded. And when working from CVS you can now use
1074 a simple autogen.sh script to get all autotools magic done automagically.
1075 * New configure option --with-glibj which defines how to install the glibj
1076 class files as zip, as flat directory files or both (zip|flat|both)
1077 [default=zip]. When working with multiple runtimes some of which might
1078 not support bootstrap classes in zip files the --with-glibj=both option
1079 is recommended (this does take extra disc space).
1080 * Two big code drops from the libgcj gui branch updating various java.awt
1081 and javax.swing classes.
1082 * Multiple java.net.InetAdress fixes and java.rmi fixes.
1083 * ServerSocket.accept() now restarts listening when system call interrupted.
1084 * Much cleanups to make standard API doc valid XHTML (not completed yet).
1085 * A scan for unused variables and non-static invocation of static methods
1086 turned up a couple of subtle bugs which have now all been fixed.
1087 * The Mauve testsuite has been cleaned up considerable and lots of issues
1088 in the GNU Classpath core class implementation have been fixed.
1089
1090 VM Interface changes:
1091
1092 * java.lang.Class/VMClass interface was changed. The interface now no
1093 longer requires an instance of VMClass for each Class instance. Instead
1094 the field vmdata in Class is now of type Object.
1095 * GNU Classpath now assumes that JNI calls SetXField can modify final
1096 fields. This was previously used silently for System.in/out/err and should
1097 be considered as a feature now.
1098 * A new VMProcess and a sample JNI C implementation are now provided to
1099 make Runtime.exec() work out of the box on some systems. This requires
1100 a small change to VMRuntime.exec() when a runtime wants to use it as the
1101 default java.lang.Process implementation.
1102 * The implementation of most of java.io through java.nio moved serveral
1103 runtime specific I/O methods. Most methods do have a generic default native
1104 C JNI implementation in native/jni/java-nio.
1105 * Runtime support methods for java.io.File have been moved to VMFile which
1106 also comes with a default JNI C implementation.
1107 * To support the new service provider mechanism runtimes must make sure that
1108 extension JARs are made accessible via the default context class loader.
1109
1110 New in release 0.08 (2004/12/03)
1111
1112 * java.util.regexp implementation through gnu.regexp wrappers.
1113 * java.net.URI implementation.
1114 * Working implementation of javax.swing.undo.
1115 * java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and quadratic
1116 equations; implementation adapted from the GNU Scientific Library.
1117 * Lots of java.awt and gtk+ peer improvements. Also more Swing work. Start
1118 of EmbeddedWindow support.
1119 * BufferedReader speed improvements.
1120 * Improved useabilty of java.text implementation for several applications.
1121 * ObjectInputStream is much faster and more compatible with other
1122 implementations.
1123 * Fix handling of alias methods, where a method has been deprecated in
1124 favour of a new one with the same funtion but a different name.
1125 (See Deprecated Methods section in the GNU Classpath Hacking Guide.)
1126 * javax.print.attribute.standard added.
1127 * Lots of java.nio, java.net, java.io
1128 * Depend on autoconf 2.59+ and automake 1.7+, GCJ 3.3+, jikes 1.18+.
1129
1130 VM Interface changes:
1131 * Split native methods in java.lang.Runtime into java.lang.VMRuntime.
1132 * Resources are now also loaded/needed through the bootstrap classloader
1133 (gnu.regexp needs MessageBundle included in glibj.zip
1134
1135 Fixed Classpath bugs:
1136 #6095 java.awt.geom.QuadCurve2D.solveQuadratic sometimes gives
1137 wrong results
1138 #7099 EventListenerList.getListenerCount should accept null argument
1139 #7104 EventListenerList.add does not work
1140 #7105 EventListenerList.remove does not work
1141 #7107 DefaultBoundedRangeModel.setValue and friends should not throw
1142 And lots more.
1143
1144 New in release 0.07 (2003/30/11)
1145
1146 * Works with libtool 1.5 (and 1.4.3).
1147 * java.awt gtk+ peers now depend on gtk+ 2.2.x and uses pango.
1148 Lots and lots improvements on the peers.
1149 * java.awt.geom.CubicCurve2D, java.awt.geom.QuadCurve2D:
1150 Subdivision and flatness calculation implemented.
1151 * java.awt.geom.FlatteningPathIterator: Working implementation.
1152 * gnu.java.awt.BitwiseXORComposite helper class.
1153 * New rmic compilers (jikes, kjc) support.
1154 * java.text bug fixing and 1.4 updates (Currency).
1155 * Hashtable and HashMap function more similar to other implementations.
1156 * javax.naming and java.beans classloader fixes.
1157 * URL parsing, URLConnection, protocol and (needed) permission fixes.
1158 * More java.nio implementation
1159 (API complete, but implementation not finished yet).
1160 * Lots of java.net code cleanup.
1161 * Improved documentation.
1162 * Numerous bug fixes in almost every package, and lots of updates for
1163 1.4 functionality.
1164 * Fixed Classpath bugs:
1165 #2944 Incorrect synchronization in java.util.logging.ErrorManager
1166 #6075 java.awt.geom.GeneralPath.getCurrentPoint returns wrong results
1167 #6076 java.awt.geom.GeneralPath constructor sometimes hangs
1168 #6089 java.awt.geom.GeneralPath.getPathIterator does not work
1169 [...]
1170
1171 VM Interface changes:
1172
1173 * Thread has been split in a VM-independent Thread class and a VM-dependent
1174 VMThread class.
1175
1176 New in release 0.06 (2003/22/08)
1177
1178 * Update java.awt peers to GTK+2.
1179 * java.awt.GridBagLayout implementation.
1180 * javax.swing.border implementation.
1181 * java.security and java.security.cert updated to 1.4 spec.
1182 * New JNI native target code layer. See native/target/readme.txt.
1183 * --enable-regen-headers configure flag for automatic jni .h file generation.
1184 * Removed workaround for gcj 3.2 and lower, gcj 3.3+ or jikes 1.18+ is now
1185 needed for compiling.
1186 * Lots of improvements and/or new classes for java.awt, java.awt.dnd,
1187 java.awt.font, java.awt.geom, java.awt.image, java.io, java.math, java.net,
1188 java.nio, java.rmi, java.text, java.util, javax.swing, javax.swing.plaf,
1189 javax.swing.text.
1190
1191 VM Interface changes:
1192
1193 * VMClassLoader.loadClass(), the bootstrap classloader called by
1194 Class.forName() and ClassLoader.loadClass(), may now return null when
1195 a class is not found instead of throwing a new ClassNotFoundException.
1196 This is a performance optimization in some cases. This also changes
1197 the Class.forName() reference code.
1198 * Native methods in Class have been moved to VMClass. A few additional
1199 methods are also available in VMClass to provide optional performance
1200 improvements.
1201 * A VM can now supply its own String.intern() strategy through the
1202 VMString class. The supplied VMString reference class implements the
1203 original WeakHashMap strategy.
1204 * Float and Double to/from bits conversion functions can now be supplied by
1205 the VM through VMFloat and VMDouble. Default JNI conversion methods are
1206 supplied.
1207
1208 New in release 0.05 (2003/02/15)
1209 * Supports free Java VMs Jikes RVM and Kissme out of the box, perhaps others.
1210 * Supports GNU Crypto 1.1 as the official provider of cryptographic primitives
1211 and tools for GNU Classpath, available separately from
1212 http://www.gnu.org/software/classpathx/crypto/crypto.html.
1213 * Supports GNU Classpath Tools sub-project of GNU Classpath, official provider
1214 of standard tools such as gjdoc, a javadoc replacement, and others. Future
1215 releases of GNU Classpath will begin to include these tools, available
1216 separately from http://www.gnu.org/software/cp-tools/.
1217 * Java primitives can be used to support AWT native threading, see
1218 the --enable-portable-native-sync configure option which may become the
1219 default in a future release.
1220 * Include file jni.h has been updated to the 1.4 specification.
1221 * VM specific internal types for jobject, jfieldID, and jmethodID are
1222 supported in jni.h. More details can be found by reading the comment
1223 in include/jni.h.in. By default the old definitions are used instead.
1224 * New VM helper class java.io.VMObjectStreamClass which should provide
1225 the hasClassInitializer() method. Previously ObjectStreamClass used
1226 Class.getDeclaredMethod("<clinit>") but according to the spec this
1227 should always throw NoSuchMethodException for class initialization methods.
1228 A JNI reference implementation is provided as
1229 vm/reference/java-io/java_io_VMObjectStreamClass.c
1230 * There have been numerous infrastructure improvements
1231 * Configure option --enable-gjdoc to generate javadoc-like output
1232 * Gjdoc output is included with distribution, see doc/api/html/
1233 * DESTDIR fully supported for install and uninstall
1234 * Runtime.execInternal contract changed to allow for null `env'
1235 and to accept `dir' argument.
1236 * VMObject.getClass() removed. It was never used.
1237 * java.lang.Throwable is now a 'normal' GNU Classpath class that uses the
1238 VM specific java.lang.VMThrowable to get at the VM state and (if needed)
1239 the StackTraceElements for a particular exception. A default implementation
1240 (that does nothing) is provided in vm/reference/java/lang/VMThrowable.java.
1241 * The vm/reference classes from the gnu.vm.stack and their counterparts
1242 ExecutionStack and StackFrame in gnu.java.lang have been removed since they
1243 are not actually part of the VM interface anyway.
1244 * The GPLed com.sun.javadoc classes have been moved to the gjdoc application
1245 from the GNU Classpath Tools project. See for more information the homepage
1246 at: <http://www.gnu.org/software/cp-tools/>.
1247
1248 New in release 0.04 (2002/05/05)
1249 * Additional configure options to disable zip creation and installation as
1250 well as disable gtk peer native compilation.
1251 * Addition of java.nio, java.util.logging, and javax.swing.
1252 * Integration of most or all of the ORP patches to date, the purpose of
1253 which are to make it possible to use JBOSS with ORP and Classpath. This
1254 is still in a testing phase however.
1255 * Significant changes in the reference VM interface that may require
1256 support from the JVMs.
1257 * Lots of bugfixes.
1258
1259 New in release 0.03 (2002/02/08)
1260 * More merges with libgcj have been performed including java.math which now
1261 provides a pure Java implementation of that package.
1262 Current status at <http://gcc.gnu.org/java/libgcj-classpath-compare.html>
1263 * A pure Java implementation (Jazzlib) of java.util.zip is available.
1264 * Added the java.rmi implementation that Transvirtual donated to the FSF.
1265 * Includes jni.h now, eliminating the need to specify a particular VM
1266 via configure.
1267 * No proprietary classes or programs are required to compile.
1268 Compiles out of the box with jikes or gcj.
1269 * Separation of compiling Java source and native libraries through the
1270 configure mechanism. If given no arguments, configure will setup the
1271 subsequent build to only produce Java bytecode (.class files). More
1272 information is available in INSTALLING.
1273 * Support for compiling in a separate directory, as an example you may
1274 cd classpath-0.03; mkdir build; cd build; ../configure; make
1275 * Works with Orp 1.0.9 out of the box. Build instructions can be found at
1276 <http://www.gnu.org/software/classpath/doc/orp.html>
1277 * Lots of bugfixes that were found by using Classpath with the gcj, Orp,
1278 SableVM, KissMe and Jaos VMs. Please use our bugdatabase at
1279 <http://savannah.gnu.org/support/?group_id=85>
1280 * Lots of updates to make Classpath more compliant with the 1.2, 1.3 and 1.4
1281 API specification. The current status can be found at
1282 <http://www.gnu.org/software/classpath/status.html>
1283 * All files are now distributed under the same terms. Added clarification to
1284 GPL exception.
1285
1286 New in release 0.02 (2001/01/06)
1287 * Support for printing exceptions with Japhar 0.09 + patch included in
1288 resource/japhar-0.09.patch.1.
1289 * Typos, assorted bugfixes.
1290
1291 New in release 0.01 (2000/11/20)
1292 * More packages are included now, though many remain untested.
1293 * Support for Japhar 0.09 included.
1294
1295 New in release 0.00 (1999/02/01)
1296 * First official development release of clean room class library for Java
1297 * Following packages included:
1298 -- java.beans
1299 -- java.io
1300 -- java.lang
1301 -- java.lang.reflect
1302 -- java.math
1303 -- java.net
1304 -- java.security (partial and non-functioning)
1305 -- java.security.acl
1306 -- java.security.interfaces
1307 -- java.util
1308 * Code is mostly Java 2 (see JDK 1.2) compatible with some functionality
1309 missing and/or untested.
1310 * Support for Japhar (http://www.japhar.org/) virtual machine is included.
1311 Requires the current Japhar from CVS.
1312 * Extensive javadoc comments for public API included
1313 * Licensed under the GNU Library General Public License (see COPYING.LIB)
1314 * Does not depend on any non-free code - developed in a "clean room"
1315 environment.
1316