Friday, November 09, 2007

Upgrading eXist in Orbeon Forms

Getting closer to a version 1.1.2, the eXist team has started releasing pre-release builds. Since those build are quite stable, we are looking into shipping Orbeon Forms with one of those builds. Of particular interest to us:

  • When sending a query using the REST API, with a GET, passing the query with the _query parameter, the response used to have an incorrect content type. The incorrect content type meant you could sent a query with GET from XForms in Orbeon Forms. You always had to use a POST, which in many cases is inconvenient.
  • You can now mount eXist though WebDAV on the Mac in read-write mode. (It previously used to work in read-only mode.)
  • New versions of eXist feature many performance improvements, sometimes quite drastic.
A few notes about the upgrade:
  • eXist now uses a number of new jar files: quartz-1.6.0.jar, jta.jar, commons-collections-3.1.jar, exist-ngram-module.jar, and stax-api-1.0.1.jar. That's quite a few jar files, and it increases the changes of incompatibilities with particular application servers.
  • eXist also uses an XML collection class from xercesImpl-2.9.1.jar. eXist looks for this class using the explicit package org.apache.xerces. Since Orbeon Forms uses a rerooted version of Xerces, eXist can't find this class. We might need to modify the eXist code for this. This is still open.
  • When starting eXist, we are getting a non-fatal exception: java.lang.IllegalStateException: error while returning XMLReader: org.exist.validation.resolver.eXistXMLCatalogResolver. This is still open.