Beta release of XProc-Z 1.01
Pre-releaseThis 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 (asc:request
andc: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.
Installation
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.