[kaffe] Swing/AWT merge from GNU Classpath done

Dalibor Topic robilad at kaffe.org
Thu Jul 22 13:02:30 PDT 2004


I've merged in the Swing/AWT code from GNU Classpath (before the last 
resync they had with gcj java-gui brach, so expect another tiny (600k) 
patch soon ;), as it works for me (TM) and I didn't feel it would do the 
merged code any good to sit on my hard disk [1] :)

So, chances are that some things may broken in the process. Please 
report those bugs, so that they can get fixed.

The major changes are:

* configure now tries to build all three awts by default. Xlib, Qt(e) 
and classpath's gtk awt. Classpath's GTK awt is the default, but you can 
switch kaffe to use another one by simply using an -X* option.

* since classpath's awt need pthreads, pthreads are now the default 
threading system. That's going to be fun on non-linux systems, I assume.

* kaffe's awt java code has been moved to 
libraries/javalib/awt-implemenations. The current setup should it make 
easy to merge in pocketlinux AWT code in parallel.

* The old appletviewer code has been shifted over, too. I'd like to 
merge in gcjwebplugin, and use that instead. It would give as a Mozilla 
plugin for free, essentially. Gcjwebplugin worked for me, standalone. I 
haven't tried the mozilla plugin yet, though.

* You'll need very recent gtk, pango, freetype, libart, cairo, etc. for 
Classpath's AWT. Essentially, the latter, the better. You can turn off 
the native awt libraries selectively, though. The whole AWT checking 
code in configure has been made confitional on whether AWT support for 
the particular backend is enabled. You will also need pkg-config, which 
is used to find all those libraries.

Other notes:

* build with kjc is broken, again. Our KJC chokes on swing code trying 
to extend a protected inner class in a different package. While the JLS 
is really annoyingly ambigous in the respective section, it seems to be 
an allowed thing to do.

* qte awt is currently borken for me. I believe that's a known issue, 

* FAQ.awt needs some serious rewriting :)

* I've moved old java/awt as a whole to 
libraries./javalib/awt-implemenations/kaffe. We could probably shave off 
some of that by removing the files that are already imorted from classpath.

Thanks to everyone involved who made this possible, in particular Jim 
Huang for showing that it could be done, Steven Augart for providing the 
necessary native code patches, and the Classpath & Gcj hackers for doing 
so much great work on Classpath's AWT & Swing implementation over the 
last years.

dalibor topic

[1] It's been sitting there for a while, and it has always been hard to 
resync over and over again.

More information about the kaffe mailing list