Simple Swing Tests with OpenJDK/Classpath/Classpath+Escher

Marcos Roriz <[email protected]> Wed, 19 May 2010 01:46:06 -0300
Newsgroups gmane.comp.java.classpath.devel
Message-ID <[email protected]>
Hello all,

Sorry for the delay (I redid the tests with JamVM =)). I've made three
simple swing applications to test the current state of Escher. The
applications use very basic stuff like JButton, JLabel (Text and Icons),
JTextField (Pure Text and Password) and JTextArea. The test verified three
environments:

   - OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1) -
   Reference Implementation
   - CACAO version 0.99.4 + GNU Classpath 0.98-5
   - CACAO version 1.1.0pre (Hg) + GNU Classpath (CVS) + *Escher (Hg)*
   - JamVM version 1.5.4 + GNU Classpath (CVS) + *Escher (Hg)*

One thing notable is that on all test there was a little overhead with
escher =/. Maybe it's the time for setting up the connection with the X
server. All the source code and screenshots are on the attach and on the
mail. Let's go for the test.

Note:
alias cacaoescher='/usr/local/cacao/bin/cacao
-Dawt.toolkit=gnu.java.awt.peer.x.XToolkit'
alias jamvmescher='/usr/local/jamvm/bin/jamvm
-Dawt.toolkit=gnu.java.awt.peer.x.XToolkit'

*First Test:*
A simple questioning swing application that has one JFrame with one JButton
that on a click event opens up the a JOptionFrame with the winner of the
2010 World Cup.

Src Code: http://java.pastebin.com/rjbiMPhv
Image:
[image: SimpleWC.png]

*Result First Test: *

   - OpenJDK run normally with the usual font. (I don't like it :3)
   - Cacao + GNU Classpath 'stable' had issues with the dialog icon but made
   the fonts anti aliased (cool!)
   - Escher run had issues with the dialog icon and non anti aliased font.
   - Same result from above.



*Second Test:*
A simple application that have 2 icons (JLabel) and a JButton, that when
pressed display a third icon of GNU and Tux together.

Src code: http://java.pastebin.com/6NGEH376
Image:
*[image: GnuLinuxIcons.png]
**
Result SecondTest: *

   - OpenJDK runs normally
   - Cacao + GNU Classpath 'stable' had antialiased fonts again :)
   - Escher run had issues with the gnu png icon and, again, with the non
   anti aliased font.
   - Same result from above.

*

Third Test:*
A simple form app that has some text fields, text area and a simple
verifying for the password.

Src Code: http://java.pastebin.com/9RZdUkb8
Image:[image: SimpleForm.png]

*Result SecondTest: *

   - OpenJDK runs ok but have a problem at resizing the area (which resize
   to give size only after input).
   - Cacao + GNU Classpath 'stable' had antialiased fonts again but no
   Unicode support and problems with dialog icons.
   - Escher run had issues with the non antialiased fonts and no Unicode
   support and problems with dialog icons.
   - Same result from above.


Now after this simples tests, I tried to run with the FreeSwingApps from the
wiki. Most applications failed on cacao and with escher. One cool app that
worked 'was JaxoDraw which is a application to draw Feynman diagrams
(physics).
Image:
[image: jaxodraw.png]

Most of the other applications had errors regarding not yet implemented
features, for example FreeMind gave the following error:
java.lang.UnsupportedOperationException: Not yet implemented.
   at gnu.java.awt.peer.x.XToolkit.getSystemClipboard(XToolkit.java:604)
   at freemind.modes.ControllerAdapter.<init>(ControllerAdapter.java:351)
   at
freemind.modes.mindmapmode.MindMapController.<init>(MindMapController.java:140)

And Jmol the following one:
uncaught exception: java.lang.UnsupportedOperationException: Not yet
implemented.
java.lang.UnsupportedOperationException: Not yet implemented.
   at gnu.java.awt.peer.x.XFramePeer.setIconImage(XFramePeer.java:74)
   at java.awt.Frame.setIconImage(Frame.java:310)


*Conclusion:*
Escher did fine for the tests, only problems detected are not yet
implemented features, anti aliased font and that error with the png. I think
the overall speed was great (after the start). About the Unicode, I think,
it's a problem with GNU Classpath, because the same error applied to jamvm
and cacao.

Now should I start refactoring the code or try to fix some of this stuff?


Regards,
Marcos Roriz


-- 
Marcos Roriz
Bacharelando em Ciência da Computação
Universidade Federal de Goiás

E-mail: [email protected]
Home Page:http://marcosroriz.wordpress.com
jaxodraw.png (image/png, 191.4 KB) - not displayed
GnuLinuxIcons.png (image/png, 330.9 KB) - not displayed
SimpleForm.png (image/png, 215.7 KB) - not displayed