BIRT for Eclipse
BIRT is open source reporting platform based on Eclipse. It can be easily incorporated into J2EE applications to produce excellent reporting capability.
BIRT is composed of two parts - a graphical editor in eclipse which can be used to design reports and a runtime engine which generates dynamic reports based on the templates.
Following are some of the key BIRT features,
- Easy creation of list based reports and grouping features.
- Supports various charts such as pie charts, line, bar etc. Charts allow user interaction.
- Sub reporting functionality for complex reports.
JasperReports for Java
JasperReports is an open source Java reporting tool. It can create reports in a wide variety of formats including PDF. It uses report templates that in XML or .jasper format. There are many tools available in the market which provides designer capabilities to Jasper engine (iReport for example).
Following diagram shows the high level usage scenario for JasperReports.

Key Features,
- Supports PDF, XML, HTML, CSV, XLS, RTF and TXT output formats
- Integrated barcode support
- Single report can have multiple datasource types
- Drill through and hyperlink support
- Supports sub reports for complex layouts
- Uses JFreeChart internally for charting support
Hibernate ORM
Hibernate is a powerful object relational mapping tool written in Java. Hibernate allows you to develop persistent classes mirroring object oriented paradigm - including association, inheritance, polymorphism, composition, and collections. Hibernate has its own portable SQL based langugage (HQL) or can work with native SQL. Hibernate simplifies persistence programming tasks by providing a higher abstraction.
Hibernate is a suite of tools for ORM, including Hibernate core, Hibernate Tools, Hibernate search etc. Only core is required for basic ORM. Each component is available as a separate download.
Hibernate stores table to class mapping in an external XML file. Following is a sample,
<hibernate-mapping>
<class name=”tasks.Task” table=”TASKS”>
<id name=”id” column=”TASK_ID”>
<generator class=”native”/>
</id>
<property name=”date” type=”timestamp” column=”TASK_DATE”/>
<property name=”title”/>
</class>
</hibernate-mapping>
Ant build tool from Apache
Ant is a scripting tool for automating Java software build process. The scripting language is based on XML. Ant can be extended using Java classes. The built in tasks in Ant are also implemented as Java classes.
Following is a sample build file,
<project name=”TestProject” default=”dist” basedir=”.”>
<property name=”src” location=”src”/>
<property name=”build” location=”build”/>
<property name=”dist” location=”dist”/>
<target name=”init”>
<mkdir dir=”${build}”/>
</target>
<target name=”compile” depends=”init”
description=”compile the source ” >
<javac srcdir=”${src}” destdir=”${build}”/>
</target>
<target name=”dist” depends=”compile”
description=”generate the distribution” >
<mkdir dir=”${dist}/lib”/>
<jar jarfile=”${dist}/lib/MyProject-${DSTAMP}.jar” basedir=”${build}”/>
</target>
</project>
The Ant Manual gives a complete overview of this tool.
Orbeon Presentation Server
Orbeon is a Java based engine which can be used build application forms for data capture. It is based on XForms specification and AJAX. In addition to providing XForms support, Orbeon can also act as a complete Web application engine.
Core features of Orbeon are,
- Provides a complete server side implementation of XForms spec using AJAX
- XML pipeline engine with XPL language support
- Supports JSR-168 portlets
- Orbeon engine can be deployed in main application server or can be deployed on a separate server
JUnit for Java
JUnit testing framework for Java was originally created by Erich Gamma and Kent Beck. It is based on Kent Beck’s SUnit. JUnit is very extensively used in Java development. JUnit provides infrastructural code required to write unit tests in Java.
JUnit has been ported into various other languages including JavaScript. It is also a key framework in test driven development.
Sample test case in JUnit,
public class HelloWorld extends TestCase
{
public void testAddition()
{
// Testing if 3+2=5:
assertEquals (”Addition”, 5, 3+2);
}
}
jBPM workflow and BPM engine
JBoss jBPM from RedHat is a powerful workflow engine which can be used to automate business processes using users, applications and services. jBPM comes with a graphics designer and hence modeling workflow processes is a breeze! jBPM also comes with tools to deploy workflow process definitions to a Web application.
jBPM is a standalone Java library and can be used in any Java application including Java Web applications. jBPM can also be used as the fundamental framework for an event management system.
Key features are,
- Zero product cost since jBPM is released under LGPL
- Advanced process engine (state,variable and task management including timer and audit features
- Pluggable architecture and highly customizable
- Simplified programming model using process definition language (jPDL)
- Supports Business Process Execution Language (BPEL)