Introduction

This page describes the options for developers to use or extend the frame work. The framework is written in XSLT for the parsing parts and in Groovy for the required logic to handle the process itself. Make yourself familiar with both languages if you need to build your own logic. If you just want to create your own stunning layouts XSLT / XSL-FO will be enought. If you want to contribute, learn the usage of Git and GitHub. How to check out the sources from the repository and to compile is described in the installation document. Groovy sources have a documentation in GroovyDoc format attached to them, check out the generated site for a human readable form. To understand how the sources work have a look at the unit tests, see the layout-test module for the files of the unit tests.

Needed tools

  • To run the software you need Java (Version 1.6 or higher) .
  • To check out the sources you will need Git.
  • To build the binaries you will need Maven (Version 3 and up prefered).
  • To play around with XSLT and XSL-FO you need a decent XML editor, we recommend OxygenXML.
  • To play with the ODF feature you need (Open / Libre Office)

Maven Modules

See the overview document for a short description of the modules.

Dependencies

This is just a high level overview about the dependencies, have a look at the Maven dependencies (either in the project site or the project descriptors) for each sub module for a complete list including indirect dependencies and the used versions.

Groovy

Groovy is a scripting language on top of the JVM, its used for the code to glue the used components together.

Apache FOP

Apache FOP is a XSL-FO processor which is used to transform the XSL-FO files int PDF or Postscript.

Apache Camel

Apache Camel is routing framework which is used to implement the SUB PrintServer.

Log4J and SLF4J

Log4J and SLF4J are logging frameworks. Log4J is used by the this framework, some dependencies use SLF4J. The outputs of SLF4J are redirected to Log4J.

Apache Commons

Apache Commons are a set of utility components. The following components are used directly in this project:

  • commons-cli is a library to parse command line arguments.
  • commons-vfs is a library to handle virtual file systems, used for access to zipped files.

Apache Tika

Apache Tika is a toolkit to detect and analyze text contents and media types. Used to detect input types.

Saxon

Saxon is a XLST 2.0 capable XLST processor. Its used for the XSLT transformations.

Adding your own features

If you want to add your own features, use the GitHub workflow: Clone the repository and sen a pull request if your feature is complete. Make sure that your feature is documented correctly:

  • Groovy code should have GroovyDoc comments.
  • Groovy code should have unit tests.
  • Style sheets should have documentation on each function.
  • Describe the requirement which made your feature necessary.
  • Provide a documentation how to use your feature.
  • All provided files need to be under a free license.

Error reporting

Issues and errors should be reported to the GitHub issues page of this project.

Back to top

Version: 1.0-SNAPSHOT. Last Published: 2014-06-17.

Reflow Maven skin by Andrius Velykis.