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