Pentaho Reporting's Modular Design

Since version 0.8.4 most of the functionality has been removed from the hardcoded core and was relocated into separated modules. A module contains of a Module descriptor and one or more packages of ordinary java classes.

Pentaho Reporting comes in two flavours: As one huge monolithic build (jfreereport-0.8.7-5.jar) and as set of separate modules (jfreereport-core-0.8.7-5.jar, jfreereport-module-*-0.8.7-5.jar). Both versions contain exactly the same code, but the separate modules-build allows everyone to strip the not needed functionality from the classpath without having to rebuild the jars.

In most cases, when disk space is abundant, you can safely stay with the monolithic build.