blob: cddcf4e6f67b286eeba95640eb127381ae53a200 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css" media="screen">
<meta name="author" content="Tinuola Awopetu">
<meta name="keywords" content="NetBeans IDE, NetBeans Platform, iReport, Jaspersoft, Giulio Toffoli">
content="NetBeans, NetBeans IDE 6.0, iReport, NetBeans 6.1">
<title>iReport for NetBeans - An Interview with Giulio Toffoli, iReport Project Leader </title>
</head>
<body>
<h1>iReport for NetBeans - An Interview with Giulio Toffoli, iReport
Project Leader <br>
</h1>
<br>
JasperSoft's <a
href="http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/">iReport</a>,
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.<br><br><br>
<div
style="padding: 10pt 10pt 10px 10px; background-color: rgb(255, 255, 255); width: 250px; float: left; font-size: 90%;">
<div style="text-align: left;"><img style="width: 200px; height: 199px;"
alt="Giulio Toffoli, Project Lead of iReport"
src="../../../images_www/articles/interviews/giulio-toffoli.jpg"
align="top" hspace="5" vspace="5"><br>
</div>
<div style="text-align: left;"><br>
Giulio Toffoli is a Senior
Software Engineer at <a href="http://www.jaspersoft.com/index.html">JasperSoft
Corporation</a>, where he serves as the iReport project leader. He has
been
developing Java applications since 1999 and founded the iReport project
in
2001. His expertise includes designing complex software architectures
and implementing
custom software solutions with a focus on desktop and multi-tiered
web-based
client-server applications using Java (J2EE/JEE) and open-source
technologies. He
has a Master’s Degree in Computer Science from the University of
Bologna and currently
resides in Italy.<br>
</div>
</div>
<span style="font-weight: bold;">
</span>
<h4>What are the
highlights of the latest release of iReport for
NetBeans (v0.9.1)?</h4>
We introduced support for the crosstabs, conditional styles,
and the new border and pen definitions. We fixed several bugs and
refactored
some code portions, thus improving the performance.<br>
<br>
<h4>When and where can users get the plugin, and what version of
the NetBeans IDE does it work with?<o:p></o:p>
</h4>
The first version of the plugin (v0.9.0) is already
available on the <a href="http://plugins.netbeans.org/PluginPortal/">NetBeans
Plugin Portal</a>, where it is extremely popular.
The new version
(v0.9.1) will be out in early April and will be fully
compatible with
NetBeans 6.0 and NetBeans 6.1.<br>
<o:p></o:p><br>
<table
style="text-align: left; width: 50%; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;">
<div style="text-align: center;"><a
href="../../../images_www/articles/ireport-screenshot1.jpg"><img
alt="iReport for NetBeans - New Crosstab Designer in Action"
src="../../../images_www/articles/ireport-screenshot1-small.jpg"
style="border: 0px solid ; width: 520px; height: 320px;" align="top"></a><br>
</div>
<div style="text-align: center;"><span style="font-style: italic;">iReport
for NetBeans: New Crosstab
Designer<br>
Click for larger view</span><br>
</div>
</td>
</tr>
</tbody>
</table>
<h4>Are there significant differences between the plugin and the
stand-alone
versions of iReport?<o:p></o:p><span style="font-weight: bold;"></span></h4>
<span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>
There are no particular
differences in terms of
functionalities. In the future we plan to improve the integration with
Java
projects when iReport is executed as a plugin inside the IDE, allowing
the use
of the project classpath to run a report. The stand-alone version
better serves
non-technical users who are interested only in design reports and not
in writing
code; and developers using other environments and looking for something
lighter
than the whole IDE.<o:p></o:p>
<br>
<br>
<h4>Why integrate iReport with the
NetBeans IDE? </h4>
NetBeans provides a set of services and functionalities that we had to
write on
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—
for free.
Such as the visual library for the main designer, the window docking
system,
the property sheets, the data oriented tree, and much more. <br>
<o:p>&nbsp;</o:p>
<br>
We were thus able to concentrate efforts on the core
functionalities of our application. A standard platform enables the use
of
modules provided by third parties to quickly grow the set of
functionalities
offered out-of-the-box. It is easier for new developers to be involved
in the
project since all the platform APIs are well-known and documented, thus
making
the source code of iReport results easy to understand and extend.
<br>
<br>
<h4>What features of the NetBeans IDE does the plugin use? </h4>
iReport makes good use of pretty much all the base NetBeans API. The DB
module
in particular functions as a way to define the database connections,
and the
user can use it to design SQL queries and explore the database as
well—a handy
feature that’s beyond the scope of the application, but that we got for
free
using the module just to manage the JDBC drivers and connections. As I
already
mentioned, tight integration with Java projects is on the roadmap. <o:p></o:p>
<br>
<br>
<h4>Prior to creating iReport, what was your experience with the
NetBeans Platform?
</h4>
My experience was essentially null. I started by reading the book:
<a
href="http://vig.prenhall.com/catalog/academic/product/0,1144,0132354802,00.html"><span
style="font-style: italic;">Rich Client
Programming: Plugging into the NetBeans Platform</span></a>”, written
by Tim Boudreau, Jaroslav Tulach and Geertjan
Wielenga.<o:p></o:p>
<o:p></o:p>The book was a good starting point. <br>
<br>
It does
not make assumptions about your knowledge of the NetBeans Platform,
making it perfect
for people approaching platform development for the first time. Using
real life
samples, it goes through all the main APIs and allows you to start
writing code
almost immediately. It is not a exhaustive reference of the NetBeans
APIs and
the Platform (this would&nbsp;require more than a single book) but it
gives you
the tools to find out the rest.<br>
<o:p>&nbsp;</o:p>
<br>
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
code
patterns that when you compare several modules you discover that you
are more
or less writing the same code. Finally, the <a
href="https://netbeans.org/community/lists/top.html">NetBeans
mailing lists</a> are great
sources of knowledge. It’s where you really get the sense that there is
a strong
and passionate community centered around NetBeans. And finding someone
to help
solve a problem is pretty easy.
<br>
<br>
<h4>Why did you choose to build iReport with the NetBeans Platform? </h4>
I began to consider moving iReport to the NetBeans Platform after
attending
JavaOne in 2007. During that occasion, I met Toni Epple who was already
working
on a designer for JasperReports based on the NetBeans Platform, and
that
I
thought was pretty cool. I was looking for a platform to move iReport
onto;
iReport was completely written using Swing, so the opportunity to reuse
a lot
of the existing code for the UI in the new version was great.<o:p></o:p>
<br>
<o:p>&nbsp;</o:p>
<br>
<h4>Are there improvements you'd like to see in the NetBeans Platform?
</h4>
An easy way to dynamically extend the global classpath. Currently,
several
third parties libraries still rely on the system classpath when they
dynamically look for a class (using the Class.forName() method instead
of
relying on the thread context class loader). In the original version,
iReport
had a special directory (lib) for this purpose: all the jars in that
directory
were added to the system classpath at startup. Of course, there are
lots of
implications to allowing users to add a jar with a global visibility in
the
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
problems at
platform level, where the risk of a class conflict is really low.<o:p></o:p>
<br>
<br>
<h4>Are there updates to the plugin for NetBeans 6.1?</h4>
We just fixed a couple of incompatibilities (due to API changes). The
good news
is that Sun has been really responsive in helping to figure out the
problem and
reconsidering the particular API change.<o:p></o:p>
<br>
<br>
<h4>What is the roadmap for iReport for NetBeans, and what can users
expect?<o:p></o:p>
</h4>
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
that
provides visual support of all the JasperReports 2.0.5 features
(meaning you do
not have to write a single line of jrxml).
<br>
<o:p>&nbsp;</o:p>
<br>
The next major steps will be better support for export
formats (currently the export of a report in a particular format can be
done
only using the preview window), full support for internationalization
(i18n)
and usability improvements (and here the list is very long). <br>
<o:p>&nbsp;</o:p>
<br>
We plan to reach all the functionalities offered by the
current standard version of iReport in June, at which time the port
will
be
complete and the old version will be no longer be developed in favor of
the
NetBeans version.<o:p></o:p><o:p></o:p><br>
<div style="text-align: right;"><span style="font-style: italic;">(April
2008)</span><br>
</div>
<br>
<br>
</body>
</html>