| <!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> </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 require more than a single book) but it |
| gives you |
| the tools to find out the rest.<br> |
| <o:p> </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> </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> </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> </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> |