Friday, February 16, 2007

Using the BIRT Source Build

In the previous post, I mentioned that I have been doing a fair amount of extension development in preperation for the conference. In the past, I have always pulled all of the BIRT source from CVS when I did extension or integration work. The ability to step through the source code in the calling methods proved to be really helpful. The only problem was the amount of work required to pull and compile a source build. Between DataTools and BIRT there are more than 100 Eclipse projects, not including any of the test projects. That is a lot of download/configuration.

For this latest round of development, I decided to use the source builds from BIRT and DataTools to see how well it worked. The answer is it worked really well. So I thought I would provide a quick HowTo in case you are interested in using BIRT in this way.

I wanted to work with the BIRT M5 Release, which has not been officially release but is scheduled to be the 20070209 build. To get to this build I went to the BIRT/downloads and selected the Recent Builds Page from the More Downloads section. Then I select the build that I want to download 2.2.0-N20070209. From this page I get the
- All-In-One and the BIRT SDK build. I first unzip the All-In-One and then I unzip the BIRT SDK build over the top of the All-In-One.

Typically this would be the place where I would go out and create a launch icon with the appropriate memory triggers. It turns out that the M5 build uses the eclipse.ini to setup various command line options. Using eclipse.ini will set the MaxPermSize vmarg which will make your Eclipse installation run significantly faster. You can continue to use your command line args, but it seems to be easier to just use the eclipse.ini. I have a lot of memory on my workstation so I use:

-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m

Normally I test that the SDK is working by opening the Eclipse instance and type <CTRL><SHIFT><T> and enter ReportEngine. If when you select the ReportEngine it shows source code, then you have an SDK build of BIRT. So everything is good to go right? Well almost, you still need to get the SDK build from the DataTools project.

BIRT 2.2 is using the DTP 1.0 build. If you get the dtp-sdk_1.0 build and install it over your current Eclipse installation, then you are ready to go.

The only piece missing from the puzzle is the ReportEngine code. It turns out that the libraries and code that is distributed with the RunTime libraries does not include source. Unfortunately the packaging of the files in the RunTime libraries is different (similar) from the Eclipse distributions. I have submitted a Bugzilla entry to have a SDK version of the RunTime distribution created. Once I have that, it will be far easier to support multiple versions of BIRT without having to have check outs from each.

Scott

Wednesday, February 14, 2007

Emitter Extension Enhancement - BIRT 2.2

I have been working with the new M5 release of BIRT 2.2 for a presentation on extensions at EclipseCon next month. One of the extension points that I will be featuring is the Emitter extension. The M5 release of BIRT has made a significant enhancement to the emitter extension that I wanted to cover in brief today.

In the past emitters were relatively straight-forward: you create a class that extends that either a) implements IContentEmitter or b) extends ContentEmitterAdapter. Within that class you place code to write to an output (stream, file, etc.) and then you visit the various ReportItem components writing the value of the component and any additional information required by your emitter (HTML, PDF, RTF...) It is not an easy task, but it is relatively straight-forward.

The problem would come up when it came time to use your new emitter. It turns out that the ReportEngine code that created and invoked the emitter needed to be modified/patched to add your emitter. This required changing the base Eclipse code and the addition of some new classes. Then this code needed to be re-distributed to the appropriate locations. Not difficult stuff, but not particularly clean. It just made it more difficult for people to use your emitter. So rather than focusing on your emitter code, you had to worry about writing HOW TO IMPLEMENT documentation. Ewwww documentation....

In BIRT 2.2, starting with the M5 build, new emitter plugin extension gets picked up and used automatically. All you have to do is make sure your jar file is in the plugins directory of either the WebViewer (WEB-INF/platform/plugins) or the ReportEngine (/plugins).

I hope to have a demo of this functionality up on either this site or the BIRT Eclipse site some time after the conference.

Scott

Monday, February 05, 2007

EclispeCon Recommended Tracks

EclipseCon is one month away. If you have not registered, now is the time to take care of it at the EclipseCon site. The quality and diversity of this years talks is truly amazing. There really is something for everyone. In the world of reporting, you have four tutorials, five long talks, two demos and three short tutorials to choose from. I have created my recommended track list, which you can review on the EclipseCon site here. Or you can just read on.

NOTE: I will be a the Actuate Booth for most of the day on Tuesday and Wednesday between sessions. Drop on by and say hi.

Monday - Tutorial day
New To BIRT? Then the all day tutorial Building Reports with BIRT will provide a great intro to BIRT.

Advanced BIRT? If you have been working with BIRT for a while and are looking to get into some deeper details of the BIRT framework, there are four excellent tutorials.
08:00 - 10:00 Open Data Access - Extension framework for adding Custom Data Sources
10:30 - 1230 Eclipse Chart Engine API and Integration
13:00 - 14:00 Extending BIRT
14:20 - 16:30 Report Integration - The BIRT API's

Tuesday
09:00 Scott Adams Keynote This should be really good.
10:10 What's New For BIRT 2.2 Jason Weathersby introduces all of the great new features in this summers 2.2 release.
11:10 Extending WTP Using Project Facets or panel Eclipse RCP: Experiences along the way no, its not BIRT but both of these look good to me.
13:30 BIRT: Introduction to the Eclipse Business Intelligence & Reporting Tools Project Paul Clenahan provides an intro to the whole BIRT project.
14:30 Experiences of a DTP Adopter DTP is like a sister project to BIRT, this presentation from an Oracle developer promises to be interesting.
15:30 Building the 100 Bundle Application This OSGi presentation should be very interesting to anyone using Eclipse component based development.
16:30 RCP with Eclipse, Mozilla and OpenOffice: the giant mashup The idea of combining Eclipse projects to make something that is larger than the sum of its parts is a favorite topic of mine.

Monday
09:00 Robert Lefkowitz Keynote
If you don't know rOml, here is a comment from his OSCON key note. "This was a fantastic keynote. He started with a tomato and eventually wound his way around a discussion of the quantification of open source. It was hillarious and interested…fantastic."
10:10 How to Easily Integrate BIRT Reports into your Web Application Rima Kanguri takes you through the WTP BIRT project, a new feature for 2.2
11:10 Charting with Eclipse BIRT David Michoneau provides an overview of his two hour tutorial on charting.
13:30 What sucks about Eclipse normally, I am not a big fan of panels, but this looks fun.
14:30 RAP - Eclipse style development for the web Using RCP to build web apps, this I have to see.
15:30 Following the Data: Eclipse Data Tools Platform Another panel
16:30 UI Testing in the Real World: Myths and Realities A third panel, maybe I do like panels.


Wednesday
9:00 Herbert Thompson Keynote
10:10 Integrating Java Code with Eclipse BIRT Peter Ivmark the project lead for scripting takes you through BIRT script / java interaction.
11:10 Dynamic BIRT Reporting John Ward and I show how to make add dynamic features to your BIRT reports.
13:30 Migrating a Visual Studio Product to Eclipse This is a talk by the Business Object developer tasked with migrating from Visual Studio to Eclipse.
14:30 STP Components - Using and Extending the SOA Tools Platform Project Is there a way to leverage STP to deliver BIRT as an SOA?
15:30 Eclipse Community Project Spot Light Where is Eclipse headed, here is your to see what the PMC leads see in the future.

Thursday, February 01, 2007

Eclipse BIRT 2.2 Webinar

Just wanted to drop a reminder that we will be doing a BIRT Webinar next week.
We will cover creating and deploying a BIRT Report. In addition we will be discussing and demonstrating some of the the 2.2 Features. For more information check out Eclipse Webinars.