@Conal-Tuohy Conal-Tuohy released this May 13, 2015 · 60 commits to master since this release

Assets 3

This is the first feature-complete release of the XProc-Z platform.

Feature list

  • This release aims to fully support HTTP requests and responses as defined for the p:http-request step in the XProc specification (as c:request and c:response documents), including multi-part file uploads, and binary as well as textual data.
  • Several example pipelines are included; a static HTML menu interface, a visualization of image placements in medieval manuscripts, an example of uploading and downloading files, and a raw XML display of the data available to a pipeline through XProc-Z.
  • An pipeline can now access a full list of Servlet and Container configuration parameters, as well as Operating System environment variables, using a parameter input port.
  • Pipelines can now spawn other pipelines asynchronously, to support long-running (batch) processes.

Long-running processes

This version includes an experimental feature that extends the simple request/response protocol used by previous versions of XProc-Z, to allow an XProc-Z pipeline to emit a sequence of documents on its output port, not just a single c:response. As in the previous version of XProc-Z, and exactly like XProc's http-request step, the first document emitted by an XProc-Z pipeline should be a c:response (which XProc-Z will return to the web browser), but additional documents may also be emitted after the initial c:response. These should be c:request documents intended for further processing by XProc-Z. This feature allows an XProc-Z pipeline to make an asynchronous call to itself, and is intended primarily to support writing long-running processes in XProc, in which each invocation of the pipeline performs one small batch of work, and then exits, asking XProc-Z to invoke it again, to perform further batches of work.


XProc-Z is a Java Servlet, and is packaged here as a WAR (Web Application Archive) file. It needs to be installed in a Java Servlet Container application, such as Tomcat or Jetty. Typically it's enough to copy the WAR file to the Container application's "webapps" folder. Consult your Servlet Container documentation for details.