[kaffe] Plans and progress

jserv at linux2.cc.ntu.edu.tw jserv at linux2.cc.ntu.edu.tw
Tue Jul 13 11:21:11 PDT 2004

Hello all,

  After viewing the great plan and progress of Guilhem Lavaux,
I think it would be better for me posting mine as memo.

* Qt AWT: I decide to re-work on native implementation of QtAWT,
and focusing on the following issues: (I did post[1], but I think
it still needs more clear statements again.)

  1. continue cleanup process.

    Remove all useless and annoying X-specific code snip and

  2. implement some un-implemented native parts:
     a. Java_java_awt_Toolkit_graAddClip
     b. reconvertImage (routine)
     c. Java_java_awt_Toolkit_fntIsWideFont
     d. Java_java_awt_Toolkit_fntGetWidths

    (a) needs refactor Kafffe's current peerless AWT, and other
    backends can benefit from. (b) might be limited with Qt's
    functionality, and I am studying some material about this.
    Both (c) and (d) depend on fully Unicode support in Qt AWT

  3. Unicode

     Both Kaffe core and Qt suppots Unicode well, but current
     implementation lacks the consideration while combination.
     Note: input methods can't be used with Qt AWT, which is
     a known issue. After Unicode support is complete, I'll
     take a closer look over it.

  4. Event handling with Qt

     Current implementation makes use of some Qt relative hack,
     and I am sure it is more elegant to replace them with 
     better one. I'd like to merge some routines from PocketLinux
     and GNU Classpath, and see how it should be correctly fixed.

  5. Bug-fixing

     To be honest, Qt AWT backend is buggy, and it is really
     hard to map Java AWT to Qt.

* merging existing AWT/Swing implementations into Kaffe

  Since Kaffe is the "NetBSD"[2] in Free Java, it must be great to
  ship AWT implementations with different toolkits or widget sets.
  In the stage, Kaffe has three AWT implementations, Xlib-based,
  Qt-based, and GTK+ peers (from GNU Classpath). You can compare
  them as shown in my screenshot:


  It's good till now, but we are always seeking for better solutions
  to improve Kaffe or even share Kaffe's AWT with other Open Source'd
  JavaVM implementations.

* KOE (Kaffe-based Operating Environment)

  In 2002, Kaffe.org took over past Transvirtual's work, including
  PocketLinux (as known as XOE 1.0, which was GPL. Transvirtual owned 
  XOE 2.0 as a commercial product.). PocketLinux was indeed nice and
  highly-integrated framework in embedded systems, such as hand-held
  devices, set-top box, and kiosk environments. However, Transvirtual
  was gone, and it seems that there would be no active developers
  maintaining its codebase.

  I re-built PocketLinux, and found many impressive enhancement in
  many aspects, especially its AWT implemtation with high flexibility.
  For example, direct theme support in AWT was introduced, and you can
  see the amazing themes look like:


  Also, Jim Pick gave us how to make use of PocketLinux with Kaffe in
  xoeweb[3], and we can feel its power via his screenshots:


  After 2002, Kaffe.org gains huge improvements from developers around
  the world, so that I think that we can set up a new sub-project, named
  KOE (Kaffe-based Operating Environment), to re-use the AWT design, 
  PocketLinux framework, and other great works from PocketLinux/XOE on
  current Kaffe.org's vm.

* Kaffe Weekly News

  I am not sure if I have enough ability to report some news about 
  Kaffe.org or some relative information in Kaffe.org website. But I 
  have strong sense to promote the work, and willing to help Jim Pick 
  to continue Kaffe Weekly News in any forms. Of course, feel free to 
  discuss and express your plans in mailing-list, and I will try to 
  write down the mail archives in website. As a Chinese developer, I 
  can even prepare the news in Tranditional Chinese. :)

Finally, Kaffe will become better and better with many contributions of
people from most places in the world. Let's free the Java!

Jim Huang

[1] http://www.kaffe.org/pipermail/kaffe/2004-July/098790.html
[2] I meant the high portability of Kaffe.
[3] http://www.kaffe.org/~jim/xoeweb/

More information about the kaffe mailing list