iReport for NetBeans - An Interview with Giulio Toffoli, iReport
the popular open source graphical report and dashboard design tool
supports the NetBeans IDE as a native plug-in. iReport for NetBeans
enables developers to build and edit complex reports for rich-client
and web applications in a native development environment.
In this interview, iReport creator Giulio Toffoli discusses the latest
release of the plugin, his experience creating the module using the
NetBeans Platform, and what users can expect from future updates.
Giulio Toffoli is a Senior
Software Engineer at JasperSoft
, where he serves as the iReport project leader. He has
developing Java applications since 1999 and founded the iReport project
2001. His expertise includes designing complex software architectures
custom software solutions with a focus on desktop and multi-tiered
client-server applications using Java (J2EE/JEE) and open-source
has a Master’s Degree in Computer Science from the University of
Bologna and currently
resides in Italy.
What are the
highlights of the latest release of iReport for
We introduced support for the crosstabs, conditional styles,
and the new border and pen definitions. We fixed several bugs and
some code portions, thus improving the performance.
When and where can users get the plugin, and what version of
the NetBeans IDE does it work with?
The first version of the plugin (v0.9.0) is already
available on the NetBeans
, where it is extremely popular.
The new version
(v0.9.1) will be out in early April and will be fully
NetBeans 6.0 and NetBeans 6.1.
for NetBeans: New Crosstab
Click for larger view
Are there significant differences between the plugin and the
versions of iReport?
There are no particular
differences in terms of
functionalities. In the future we plan to improve the integration with
projects when iReport is executed as a plugin inside the IDE, allowing
of the project classpath to run a report. The stand-alone version
non-technical users who are interested only in design reports and not
code; and developers using other environments and looking for something
than the whole IDE.
Why integrate iReport with the
NetBeans provides a set of services and functionalities that we had to
our own in the previous version of iReport. Moving to NetBeans gave us
a lot of
features—in a modern implementation and completely maintained by Sun—
Such as the visual library for the main designer, the window docking
the property sheets, the data oriented tree, and much more.
We were thus able to concentrate efforts on the core
functionalities of our application. A standard platform enables the use
modules provided by third parties to quickly grow the set of
offered out-of-the-box. It is easier for new developers to be involved
project since all the platform APIs are well-known and documented, thus
the source code of iReport results easy to understand and extend.
What features of the NetBeans IDE does the plugin use?
iReport makes good use of pretty much all the base NetBeans API. The DB
in particular functions as a way to define the database connections,
user can use it to design SQL queries and explore the database as
feature that’s beyond the scope of the application, but that we got for
using the module just to manage the JDBC drivers and connections. As I
mentioned, tight integration with Java projects is on the roadmap.
Prior to creating iReport, what was your experience with the
My experience was essentially null. I started by reading the book:
Programming: Plugging into the NetBeans Platform
by Tim Boudreau, Jaroslav Tulach and Geertjan
The book was a good starting point.
not make assumptions about your knowledge of the NetBeans Platform,
making it perfect
for people approaching platform development for the first time. Using
samples, it goes through all the main APIs and allows you to start
almost immediately. It is not a exhaustive reference of the NetBeans
the Platform (this would require more than a single book) but it
the tools to find out the rest.
The second great place to get started with plugin development
is looking at the code. This may be a bit rude, but there are so many
patterns that when you compare several modules you discover that you
or less writing the same code. Finally, the NetBeans
sources of knowledge. It’s where you really get the sense that there is
and passionate community centered around NetBeans. And finding someone
solve a problem is pretty easy.
Why did you choose to build iReport with the NetBeans Platform?
I began to consider moving iReport to the NetBeans Platform after
JavaOne in 2007. During that occasion, I met Toni Epple who was already
on a designer for JasperReports based on the NetBeans Platform, and
thought was pretty cool. I was looking for a platform to move iReport
iReport was completely written using Swing, so the opportunity to reuse
of the existing code for the UI in the new version was great.
Are there improvements you'd like to see in the NetBeans Platform?
An easy way to dynamically extend the global classpath. Currently,
third parties libraries still rely on the system classpath when they
dynamically look for a class (using the Class.forName() method instead
relying on the thread context class loader). In the original version,
had a special directory (lib) for this purpose: all the jars in that
were added to the system classpath at startup. Of course, there are
implications to allowing users to add a jar with a global visibility in
NetBeans IDE: this would break all the rules and the efforts to manage
classpath visibility of each module, but it would solve a lot of
platform level, where the risk of a class conflict is really low.
Are there updates to the plugin for NetBeans 6.1?
We just fixed a couple of incompatibilities (due to API changes). The
is that Sun has been really responsive in helping to figure out the
reconsidering the particular API change.
What is the roadmap for iReport for NetBeans, and what can users
We still have a lot of work to do, but iReport 0.9.1
represents a very important milestone since it is the first version
provides visual support of all the JasperReports 2.0.5 features
(meaning you do
not have to write a single line of jrxml).
The next major steps will be better support for export
formats (currently the export of a report in a particular format can be
only using the preview window), full support for internationalization
and usability improvements (and here the list is very long).
We plan to reach all the functionalities offered by the
current standard version of iReport in June, at which time the port
complete and the old version will be no longer be developed in favor of