Merge CacioWeb

Richard Bair richard.bair at oracle.com
Fri Jan 13 16:42:47 UTC 2012


On Jan 5, 2012, at 12:20 PM, Roman Kennke <roman at kennke.org> wrote:

> Hi all,
> 
> Thanks Mario for bringing this up.
> 
> First of all let me explain what is Cacio and why we think it's useful.
> In essence, it is an (somewhat) abstract implementation of AWT peers. It
> implements all the AWT widgets by using Swing for painting and
> event/logic processing. This reduces the burden of porting/implementing
> the Java graphics stack enourmously. Currently, when one wants to port
> the Java graphics stack, the AWT peers need to be implemented as well,
> for compatibility. This is a huge effort, and considered rather
> pointless by many, because AWT is not that widely used anyway. It is
> particularily difficult on platforms that don't have any native widgets
> (most embedded platforms). Using Cacio, this effort is reduced to
> implementing a Java2D backend and some basic windowing functionality. It
> even provides a windowing implementation in Java for platforms that
> don't even support windows (e.g. framebuffers).

Funny thing, I believe the Mac OS port uses this same technique. Does anybody know what the differences are between the two?

> We also have a somewhat special backend which renders
> exclusively into a BufferedImage and can only process events generated
> by Robot, which is particularily useful for unit testing GUI
> applications without messing around with the user's desktop or without
> requiring graphics on a continuous integration server (extremely useful
> if you're into this GUI testing thingy).

That would be very cool. The SQE team uses robot / image testing heavily for FX and "taking over my computer" is one of the chief problems with it (the other being image tests are finicky).


More information about the discuss mailing list