JFreeReport Classic - Getting Started Developer's Guide
This document will help the new JFreeReport developer get started working with the JFreeReport Classic engine. It will outline how to setup a development environment, how to run through some sample reports, and describe (some of) the architecture of the classic engine.
NOTE: I am creating this document as I learn this myself ... so some of the information may be incorrect until I am corrected or I learn my lessons
Setting Up the Development Environment
When I setup my development environment, I used the Eclipse IDE and connected to the JFreeReport repository to get the classic engine code. The step-by-step instructions have already been documented elsewhere in the Wiki.
Running the Reporting Demo Application
Using the already documented procedures for getting a project out of the "classic" branch of the source code repository, you should check out the project jfreereport-demo and set it up in the development environment and make sure it compiles cleanly. Once that is completed, run (as a Java Application) the org.jfree.report.ancient.demo.DemoFrontend class.
A window will be displayed that has a list of reports on the left side (organized in folders) and a description of the report on the right side. Below the report description is the dataset that the report will use.
Select the "Color and Letter Group Demo" ... then (after reading the description and reviewing the source data), clock the "Print Preview" button on the bottom of the window. After a few seconds, the report will be displayed in a new window. Page through the report and notice the report heading, page headings, details.
After being amazed at the crispness of the report, open the report description XML document ( .../source/org/jfree/report/ancient/demo/groups/data-groups.xml ) and see how this report is defined.
To help reading the XML document, review the document: Pentaho Advanced Reporting Guide - Understanding the Pentaho File Report Definition
Exe-Wrappers and Jar-File-Optimizers
Pentaho Reporting's architecture relies heavily on dynamic classloading. Tools which try to find unused classes to remove them from the final deployment jar-file cannot handle such cases and will not generate runnable applications with their efforts.
If you want to use such tools, make sure that all such size-optimizations are disabled for the Pentaho Reporting classes.
JFreeReport Engine Architecture
TODO: Insert architecture notes here as they are created.