Showing posts with label exist. Show all posts
Showing posts with label exist. Show all posts

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.

Wednesday, October 03, 2007

Changes to eXist's conf.xml

I am doing quite a bit of testing those days using eXist's latest code, fresh out of Subversion. There are two changes to the default conf.xml that I find useful:

  • Increase the size limit for XML fragments created by eXist. The value is a number of nodes, and the default is 10000 which I find to be way to low. Instead of trying to set a higher limit, I set it to be "unlimited". Of course unlimited means limited by the size of you heap.

    <watchdog limit="-1" timeout="-1">

  • Enable query rewrite. When doing so, eXist will be able to use the qname indexes declared in collection.xconf (for instance: <create qname="name" type="xs:string">).

    <xquery enable-java-binding="no" enable-query-rewriting="yes" backwardCompatible="no">