This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Documenting what changed since 4.0 (gcj core libraries)


Hi,

Here is a summary of changes of the gcj core library support between 4.0
and 4.1. 4.0 was based on GNU Classpath 0.15 from around a year ago, 4.1
is based on GNU Classpath 0.19+. So there are lots of cool new features.
The following is a summary of the most important (imho of course)
updates between then and now. Plus a list of people and a summary of
their contributions. I am sure I forgot things or people, my apologies.
Please provide updates.

Where should this be added?

Cheers,

Mark

GCJ Core library updates based on GNU Classpath 0.15 - 0.19+

- Networking

* The java.net.HttpURLConnection implementation no longer buffers the
  entire response body in memory.  This means that response bodies
  larger than available memory can now be handled.

- (N)IO

* NIO FileChannel.map implementation, fast bulk put implementation for
  DirectByteBuffer (speeds up this method 10x).

* FileChannel.lock() and FileChannel.force() implemented.

- XML

* gnu.xml fix for nodes created outside a namespace context.

* Add support for output indenting and cdata-section-elements output
  instruction in xml.transform.

* xml.xpath corrections for cases where elements/attributes might have
  been created in non-namespace-aware mode. Corrections to handling of
  XSL variables and minor conformance updates.

- AWT

* Qt4 configury switches for OS-X. Additional to the --enable-qt-peer, OS-X
  users with a Qt4 installation can build the qt-peers with the argument
  --with-qt4dir=<Qt4-installation-dir>.

* GNU JAWT implementation, the AWT Native Interface, which allows direct
  access to native screen resources from within a Canvas's paint method.
  GNU Classpath Examples comes with a Demo,
  see libjava/classpath/examples/README.

* awt.datatransfer updated to 1.5 with supports for FlavorEvents.
  The gtk+ awt peers now allow copy/paste of text, images, uris/files
  and serialized objects with other applications and tracking
  clipboard change events with gtk+ 2.6 (for gtk+ 2.4 only text and
  serialized objects are supported). A GNU Classpath Examples
  datatransfer Demo was added to show the new functionality.

* Split gtk+ awt peers event handling in two threads and improve gdk lock
  handling (solves several AWT lock ups).

* Speed up awt Image loading.

* Better GTK scrollbar peer implementation when using GTK >= 2.6.

* Handle image loading errors correctly for gdkpixbuf and MediaTracker.

* Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).

* GdkGraphics2D has been updated to use Cairo 0.5.x APIs.

* BufferedImage and GtkImage rewrites. All image drawing operations
  should now work correctly (flipping requires gtk+ >= 2.6)

* Future Graphics2D, Image and Text work is documented at:
  http://developer.classpath.org/mediation/ClasspathGraphicsImagesText

* When gtk+ 2.6 or higher is installed the default log handler will produce
  stack traces whenever a WARNING, CRITICAL or ERROR message is produced.

- Free Swing

* The Swing RepaintManager has been reworked for more efficient painting,
  especially for large GUIs.

* The Swing layout manager OverlayLayout has been implemented, the BoxLayout
  has been rewritten to make use of the SizeRequirements utility class and
  caching for more efficient layout.

* Improved accessibility support for Swing.

* Significant progress has been made in the implementation of the
  javax.swing.plaf.metal.* package, with most UI delegates in a working state
  now.  Please test this with your own applications and provide feedback that
  will help us to improve this package.

* The GUI demo (gnu.classpath.examples.swing.Demo) has been extended to
  highlight various features in our free-swing implementation. And includes
  a look and feel switcher (Metal default, Ocean or GNU).

* The javax.swing.plaf.multi.* package is now implemented.

* Editing and several key actions for JTree and JTable were implemented.

* Lots of icons and look and feel improvements for Free Swing basic and
  metal themes were added.  Try running the GNU Classpath Swing Demo in
  examples (gnu.classpath.examples.swing.Demo) with:
  -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeel
  -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel

* Start of styled text capabilites for java.swing.text.

* DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
  traversal enumerations implemented.

* JInternalFrame colors and titlebar draw properly.

* JTree is working up to par (icons, selection and keyboard traversal).

* JMenus were made more compatible in visual and programmatic behavior.

* JTable changeSelection and multiple selections implemented.

* JButton and JToggleButton change states work properly now.

* JFileChooser fixes.

* revalidate and repaint fixes which make Free Swing much more responsive.

* MetalIconFactory implemented.

* Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
  JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
  can call add() and setLayout() directly on them, which will have the same
  effect as calling getContentPane().add() and getContentPane().setLayout().

* The JTree interface has been completed. JTrees now recognizes mouse clicks
  and selections work, but the visual implementation is not yet complete.
  Work on expansion and collapsing of the tree nodes is being implemented.

* BoxLayout works properly now.

* Fixed GrayFilter to actually work.

* Metal SplitPane implemented.

* Lots of free swing text and editor stuff work now.

- Free RMI and Corba

* The Andrew Watson, Vice President and Technical Director of the Object
  Management Group, has officially assigned us 20 bit Vendor Minor Code Id:
  0x47430 ("GC") that will mark remote Classpath - specific system exceptions.
  Obtaining the VMCID means that GNU Classpath now is a recogniseable type of
  node in a highly interoperable CORBA world.

* Classpath now includes the first working draft to support the RMI over
  IIOP protocol. The current implementation is capable for remote invocations,
  transferring various Serializables and Externalizables via RMI-IIOP protocol.
  It can flatten graphs and, at least for the simple cases, is interoperable
  with Sun's jdk 1.5.

* org.omg.PortableInterceptor and related functionality in other packages
  is now implemented:
    - The sever and client interceptors work as required since 1.4.
    - The IOR interceptor works as needed for 1.5.

* The org.omg.DynamicAny package is completed and passes the prepared tests.

* The Portable Object Adapter should now support the output of the
  recent IDL to java compilers. These compilers now generate servants and
  not CORBA objects as before, making the output depended on the existing
  POA implementation. Completing POA means that such code can already be
  tried to run on Classpath. Our POA is tested for the following usager
  scenarios:
    - POA converts servant to the CORBA object.
    - Servant provides to the CORBA object.
    - POA activates new CORBA object with the given Object Id (byte array)
      that is later accessible for the servant.
    - During the first call, the ServantActivator provides servant for this
      and all subsequent calls on the current object.
    - During each call, the ServantLocator provides servant for this call
      only.
    - ServantLocator or ServantActivator forwards call to another server.
    - POA has a single servant, responsible for all objects.
    - POA has a default servant, but some objects are explicitly connected
      to they specific servants.
  The POA is verified using tests from the former cost.omg.org.

* The CORBA implementation is now a working prototype that should support
  features up till 1.3 inclusive.
  We would invite groups writing CORBA dependent applications to
  try Classpath implementation, reporting any possible bugs.

  The CORBA prototype is interoperable with Sun's implementation v 1.4,
  transferring object references, primitive types, narrow and wide
  strings, arrays, structures, trees, abstract interfaces and
  value types (feature of CORBA 2.3) between these two platforms.
  The remote exceptions are transferred and handled correctly.
  The stringified object references (IORs) from various sources are
  parsed as required.
  The transient (for current session) and permanent (till jre restart)
  redirections work.
  Both Little and Big Endian encoded messages are accepted.
  The implementation is verified using tests from the former cost.omg.org.
  The current release includes working examples (see the examples directory),
  demonstrating the client-server communication, using either CORBA Request
  or IDL-based  stub (usually generated by a IDL to java compiler).
  These examples also show how to use the Classpath CORBA naming service.
  The IDL to java compiler is not yet written, but as our library must be
  compatible, it naturally accepts the output of other idlj implementations.

- Misc

* Updated TimeZone data against Olson tzdata2005l.

* Make zip and jar UTF-8 "clean".

* "native" code builds and compiles (warning free) on Darwin and Solaris.

* java.util.logging.FileHandler now rotates files.

* Start of a generic JDWP framework in gnu/classpath/jdwp.
  This is unfinished, but feedback (at classpath@gnu.org) from runtime
  hackers is greatly appreciated. Although most of the work is currently
  being done around gcj/gij we want this framework to be as VM neutral as
  possible. Early design is described in:
  http://gcc.gnu.org/ml/java/2005-05/msg00260.html

* QT4 AWT peers, enable by giving configure --enable-qt-peer.
  Included, but not ready for production yet. They are explicitly
  disabled and not supported. But if you want to help with the
  development of these new features we are interested in feedback. You
  will have to explicitly enable them to try them out
  (and they will most likely contain bugs).

* Documentation fixes all over the place.
  See http://developer.classpath.org/doc/

Thanks! The following people helped with the above new features, bug
reports, testing and integration:

Aaron Luchko (JDWP updates and documentation fixes) Andreas Jaeger
(mprec updates) Andreas Tobler (Darwin and Solaris testing and fixing,
Qt4 support for Darwin/OSX, Graphics2D support, gtk+ updates.)  Andrew
Haley (Serialization and URLClassLoader fixes, gcj build speedups)
Andrew John Hughes (Locale and net fixes, URI RFC2986 updates,
Serialization fixes, Properties XML support and generic branch work,
VMIntegration guide update) Andrew Overholt (File locking) Anthony
Balkissoon (JList, Free Swing 1.5 updates and mouse event fixes, Lots
of Free Swing work including JTable editing) Anthony Green (MIDI
framework, ALSA and DSSI providers) Archie Cobbs (Build fixes, VM
interface updates, URLClassLoader updates) Audrius Meskauskas (Lots of
Free Corba, RMI and HTML work plus testing and documenting) Bastiaan
Huisman (TimeZone bug fixing) Bryce McKinlay (RMI work) Casey Marshall
(Crypto algorithm fixes, FileChannel lock, SystemLogger and
FileHandler rotate impl, NIO FileChannel.map support, security and
policy updates) Chris Burdess (Lots of gnu.xml and http protocol
fixes, StAX and dom xml:id support) Christian Schlichtherle (Zip fixes
and cleanups) Christian Thalinger (64-bit cleanups, Configuration and
VM interface fixes and CACAO integration, fdlibm updates) Dalibor
Topic (Better DEBUG support, Build cleanups and Kaffe integration. Qt4
build infrastructure, SHA1PRNG and GdkPixbugDecoder updates) Daniel
Bonniot (Serialization fixes) David Daney (BitSet bugfixes,
HttpURLConnection rewrite and improvements) David Gilbert (Basic and
Metal icon and plaf and lots of documenting, Lots of Free Swing and
metal theme additions. MetalIconFactory implementation) David
Lichteblau (JCL support library global/local reference cleanups) Gael
Thomas (VMClassLoader boot packages support sugestions) Gary Benson
(MessageFormat fixes) Goffredo Baroncelli (HTTPURLConnection fixes)
Guilhem Lavaux (Configuration, thread and channel fixes and Kaffe
integration. JCL native Pointer updates. Logger bug fixes) Ingo
Proetel (Image, Logger and URLClassLoader updates) Ito Kazumitsu
(NetworkInterfaces implementation and updates) Jan Roehrich
(BasicTreeUI and JTree fixes) Jeroen Frijters (ClassLoader and nio
cleanups, Serialization fixes, better Proxy support, bug fixes and
IKVM integration) Julian Scheid (Documentation updates and gjdoc
support) Ka-Hing Cheung (TreePath and TreeSelection fixes) Kalle Olavi
Niemitalo (Build fixes) Keith Seitz (Lots of JDWP work) Kelley Cook
(Build fixes) Kim Ho (JFileChooser implementation) Lillian Angel
(JTree implementation and lots Free Swing additions and bug fixes)
Mark Wielaard (Bug fixes, packaging and release management, Clipboard
implementation, System call interrupts and network timeouts and
GdkPixpufDecoder fixes) Martin Cordova (Suggestions for better
SocketTimeoutException) Michael Koch (Configuration fixes. Locale
updates, bug and build fixes) Nicolas Geoffray (VMClassLoader and
AccessController improvements) Olga Rodimina (MenuSelectionManager)
Paul Jenner (Better -Werror support) Rainer Orth (Build fixes) Robert
Schuster (Documentation updates and beans fixes, TreeNode enumerations
and ActionCommand and various fixes, XML and URL, AWT and Free Swing
bug fixes) Roman Kennke (BoxLayout, GrayFilter and SplitPane, plus
bugfixes all over. Lots of Free Swing work including styled text)
Santiago Gala (AccessControlContext fixes) Simon Kitching (String
cleanups and optimization suggestions) Stuart Ballard (RMI constant
fixes) Sven de Marothy (BMP imageio support, CSS and TextLayout
fixes. GtkImage rewrite, 2D, awt, free swing and date/time fixes, Qt4
peers) Thomas Fitzsimmons (Lot of upgrades to the gtk+ AWT and cairo
2D support. Lots of imageio framework additions, lots of AWT and Free
Swing bug fixes) Tom Tromey (Eclipse integration, generics work, lots
of bug fixes and gcj integration including coordinating The Big Merge)
Wolfgang Baer (GapContent bug fixes) Ziga Mahkovec (Graphics2D
upgraded to cairo 0.5 and new regex features)

Attachment: signature.asc
Description: This is a digitally signed message part


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]