Showing posts with label Jasper Gotchas. Show all posts
Showing posts with label Jasper Gotchas. Show all posts

Tuesday, June 23, 2009

My experiments with truth.. oops.. no.. BIRT and Jasper

BIRT vs Jasper

Over the past couple of weeks I was trying to explore the features supported in BIRT and Jasper. To a beginner, both the tools seem to be difficult. I mean, to get a working sample on them, it takes some time. I went through numerous blogs, tutorials and my firefox bookmarks started becoming unmanageable. So I thought of publishing my experiences so that it will help someone.

The basic principle behind both reporting tools is the same.

1. Design a report using a report designer (Save it in a xml file)

2. Use the report engine to parse the xml file and fill the data in the report

3. Render the report in a format of your choice (pdf, html, csv, etc..)

Performance metrics

BIRT seems to be 10-25% slower than Jasper for as long as the caching mechanism is used. Once the caching (virtualizer) is used, BIRT gives better performance (around 50% more) when compared to Jasper.

BIRT Gotchas

· Always sorts the records once a group is created. BIRT 2.3 talks about a field for turning off the sort, there is no difference on the turn-around time.

· Using BIRT in a web application requires you to add 30MB of libraries to your deployable (ear or war).

· The pdf rendering mechanism generated huge (really hhhhhuuuuggggeeee) pdf documents.

· Integration with java does not seem to be straightforward. For instance, passing a collection of objects to a BIRT report requires you to browse through numerous blogs and tutorials on birt-exchange and then apply your brain.

· Report rendering in xml format does not yield a good quality xml.

Jasper Gotchas

· iReport. The report designer does not seem to be intuitive.

· Localization of database resources does not seem to be possible

· Csv export gives extra blank columns (extra commas) in the output file

· Excel output does not include the graphic images (logos etc..)

· Does not provide a good facility for component based model, object libraries.

· Lacks concept of theme in the report elements except charts.

· Does not have a default style per element (one style for table, another one for textfield etc..). It has a default style for the report.

· Once virtualizer is used to overcome outofmemory error, the performance degrades drastically