Saturday, October 21, 2006

A Week of XForms: REST, Performance, and More

  • REST and Resource Names. A few weeks ago we upgraded our DMV Forms example to access its pure XML (eXist) persistence layer through REST APIs. Creating a new document didn't work yet, because it was not clear how to easily create new identifiers for new documents. This is now fixed, thanks to the implementation of the XForms 1.1 random() and digest() functions, which allow us to create nice unique (at least within a single application) document names.

  • REST and Flickr. On my spare time, I spent some time with the Flickr API. Our Flickr Resize example already illustrates a simple use of the Flickr API from XForms, but this time I wanted to see how to implement Flickr's authentication, directly from XForms. The new XForms 1.1 digest() function solves this like a charm. In addition, in order to support Flickr, the XForms urlencoded-post submission method is now implemented. Funny that the Flickr doc just tells us to "POST" data, but does not specify what encoding to use (posting XML, as you would expect from a REST API, doesn't work with Flickr). Feel free to look at flickr-api-model.xml in the latest builds.

  • JavaScript Compression. We played with Dojo ShrinkSafe to produce more minimal (compressed) versions of our JavaScript files (all the YUI files were already available in compressed format). This worked great and all files are now compressed, except for xforms.js which is still causing some trouble (but it would benefit the most). Apparently, ShrinkSafe is not quite 100% safe yet. As a reminder, you enable minimal resources by setting this in properties.xml:

    <property as="xs:boolean" name="oxf.xforms.minimal-resources" value="true"/>
  • Submission Performance. With XForms logging on, we now log the time spent in XForms submissions, which is invaluable for performance tuning.

  • XPL Profiling. We added an unofficial, experimental page to view profile data from XML pipelines. Enable tracing into the session with this property:

    <property as="xs:NCName" name="processor.trace" value="org.orbeon.oxf.processor.SessionTrace"/>

    Then load an OPS page, and in the same session, open /profiler/xpl/ to see the results.

  • XForms Dialogs Coming Soon. We investigated the possibility to use the YUI panel to create dialogs in XForms. This will be implemented soon.

  • JBoss Compatibility. JBoss 4.0.4 classloading and log4j don't play well. We added an option to disable logging initialization which works around this issue.

  • Output Formatting. We now format more number data types with xforms:output. This in particular allows you to nicely format decimals.

  • Bug-Fixes. This week had a few notable fixes for bugs reported by users, including a focus issue in repeat that could cause the wrong row to be deleted, and an unexpected Java exception occurring after a submission error.

No comments:

Post a Comment