
--------------------------
FastInfosetPerformance
--------------------------

Introduction:

 This sub-project contains a number of directories that compare the performance
 of parsing and serializig XML and FI documents.

 Each sub-directory contains a number of Japex configuration files for 
 executing tests on XML documents within the directory and producing results
 from such documents.

 The tests require that the environment varable JAPEX_HOME be set to point
 to the location of the Japex project (see http://japex.dev.java.net)

 The Japex drivers are set up to:

 o use Xerces 2.7.1 for the Xerces specific Japex drivers and Suns SJSXP
   StaX parser for StAX specific Japex drivers, both of which are obtained
   from Japex. 

 o use JAXP as shipped with the JDK.
 
 o use FastInfoset from the FastInfoset sub-project for FastInfoset specific
   Japex drivers

 o use Japex from the Japex sub-project

 It is possible to modify the classpath for executing the Japex drivers by
 editing the 'build-template.xml' ant project and changing the file set of
 the 'japex.class.path' path. For example this could be modified to use
 an alternative version of Xerces (instead of the one supplied by
 Japex).

 The execution of the Japex drivers will require that the sub-projects
 FastInfoset is built to produce the appropriate jars.

FIpex:

 The FIpex directory contains general XML documents for measuring and comparing 
 the performance of XML and FI.

UBLFIpex
 
 The UBLFIpex directory contains UBL 1.0 documents.

FpMLFIpex

 The FpMLFIpex directory contains FpML 4.0 documents.

Running: 

 Before running the sub-project FastInfoset needs to be built.

 From a '*pex' directory:

 >> ant -Dconfig=<configuration file>
 
 For example:

 >> cd FIpex
 >> ant -Dconfig=size.xml

 will execute Japex with the size.xml configuration file and produce
 size-based results that are output in the reports directory.

 Note that when running Japex on Unix servers, it is necessary
 to export the DISPLAY variable on the server's session in order for
 JFreeChart to render the charts generated by Japex. If the server
 does not host an X server session (and most server don't) you'll
 need to 

 1) find a workstation to which you can point the DISPLAY 
    variable to (making sure to run 'xhost +server' in order to
    authorize the server to connect to that display); or

 2) use Xvfb, virtual framebuffer X server for X Version 11, see:

        http://www.x.org/X11R6.8.2/doc/Xvfb.1.html


