I am currently cleaning up the various Canyon SPIs (Service Provider Interface) so that the canyon object which is exposed to the scripts now has a standard interface for the various methods therein (show(), hide(), get(), etc). Next up is writing the much needed documentation, tutorial and website. I’ll try to do that when I release 0.6.0
I released Canyon Core 0.5.1 today. It is available either from the Dataforte Maven Repository at http://www.dataforte.net/listing/maven/releases/ and tagged in SVN at https://canyon.svn.sourceforge.net/svnroot/canyon/tags/canyon-core/canyon-core-0.5.1/
This is the first stable release of Canyon Core, and I’ve put quite a bit of work into it over the past few years. Releases of Canyon Echo2, Canyon Cooee and Canyon Echo3 will follow shortly.
In order to make the widgets available as object during script execution, I have extended javax.script.SimpleBindings so that I lookup keys in the widget hierarchy before handing it down to the backing map by overriding the get() method. This was how I did it when using the Groovy implementation directly. I have discovered that javax.script requires that I override containsKey() as well as get(), otherwise it doesn’t even attempt to invoke get(). Now that is fixed in SVN and I am nearing the first public release of Canyon.
Canyon is my implementation of the concepts behind various kinds of XML-based application interface tools (XAML, Flash MXML, ZK, etc).
Canyon started off as a way to describe Echo2 (http://echo.nextapp.com) applications using XML bound together with Groovy (http://groovy.codehaus.org) scripts.
Recently I’ve been working on refactoring Canyon to support multiple widget libraries (Echo2, Cooee, Echo3, Swing, SWT, etc) and JSR-223 (aka javax.script) instead of just Groovy. Currently canyon and its bits are available on Sourceforge SVN (http://sourceforge.net/projects/canyon).
I promise I will hopefully get a half-way decent site for all these projects of mine and create some sort of community going.