BIRT 2.1 Project Plan

BIRT Project 2.1 Plan

Last revised May 30, 2006

New since last update marks interesting changes since the previous draft of January 30, 2006

Introduction

This document lays out the feature and API set for the next feature release of the Eclipse BIRT project after 2.0, designated release 2.1.

Plans do not materialize out of nowhere, nor are they entirely static. To ensure the planning process is transparent and open to the entire Eclipse community, plans are posted in an embryonic form and then revised from time to time throughout the release cycle.

The first part of the plan deals with the important matters of release deliverables, release milestones, target operating environments, and release-to-release compatibility. These are all things that need to be clear for any release, even if no features were to change.

The remainder of the plan consists of plan items for the projects under the Eclipse BIRT project. Each plan item covers a feature or API that is to be added, or some aspect that is to be improved. Each plan item has its own entry in the Eclipse bugzilla database, with a title and a concise summary (usually a single paragraph) that explains the work item at a suitably high enough level so that everyone can readily understand what the work item is without having to understand the nitty-gritty detail.

Please send comments about this draft plan to the BIRT Developer mailing list.

Release deliverables

In order to improve the end user experience of downloading and installing BIRT, the release deliverables will be revised. Details will become available as progress is made on this project.

Release milestones

The Eclipse BIRT 2.1 release milestones will be synchronized with the Eclipse Callisto simultaneous release. The first BIRT 2.1 milestone will be designated M5 in order to synchronize with the Callisto simultaneus release numbering. All release deliverables will be available for download as soon as the release has been tested and validated in the target operating configurations listed below.

Release milestones:

  • Friday, March 3, 2006 BIRT 2.1 M5
  • Friday, April 7, 2006 BIRT 2.1 Release Candidate 0
  • Friday, April 14, 2006 BIRT 2.1 Release Candidate 1
  • Friday, April 28, 2006 BIRT 2.1 Release Candidate 2
  • Friday, May 12, 2006 BIRT 2.1 Release Candidate 3
  • Friday, May 26, 2006 BIRT 2.1 Release Candidate 4
  • Friday, June 16, 2006 BIRT 2.1 Release Candidate 5
  • Wednesday, June 28, 2006 BIRT 2.1 Release Candidate 6

Our target is to complete and release BIRT 2.1 with the Callisto simultaneous release, currently targeted for late June 2006.

For information about new features assigned to each milestone please refer to the bugzilla database. The bugzilla database will be updated on an ongoing basis as the plan progresses.

Target Operating Environments

In order to remain current, each release of an Eclipse project targets reasonably current versions of underlying operating environments and other Eclipse projects on which it depends. 

Most of Eclipse, and all of BIRT, is “pure” Java™ code and has no direct dependence on the underlying operating system. For BIRT, the chief dependence is on the Eclipse Platform, Graphical Editor Framework (GEF), Modeling Framework (EMF), and on the Java 2 Platform that runs it.

The Eclipse BIRT 2.1 release depends on the following compatibility stack:

BIRT 2.1 Reference Stack for Eclipse 3.2

  • Java 2 platform Java Development Kit (JDK) 1.4.2
  • Eclipse Platform Runtime Binary 3.2
  • Graphical Editor Framework (GEF) Runtime 3.2
  • Eclipse Modeling Framework (EMF) 2.2

The Eclipse Platform and BIRT run in a variety of operating environments. Testing is focused on a handful of popular combinations of operating system and Java 2 Platform; these are our reference platforms. Eclipse BIRT undoubtedly runs fine in many operating environments beyond the reference platforms we test. However, since we do not systematically test them we cannot vouch for them. Problems encountered when running Eclipse BIRT on non-reference platforms that cannot be recreated on any reference platform will be given lower priority than problems with running Eclipse BIRT on a reference platform.

For BIRT 2.1, the project team plans to tests and validate the following reference platforms:

Eclipse BIRT Report Framework 2.1 and Eclipse BIRT RCP Report Designer 2.1 Reference Platforms
Operating system Processor architecture Window system Java 2 Platform
Microsoft Windows XP Intel x86 Win32 Sun Java 2 Standard Edition, version 1.4.2
Microsoft Windows 2000 Intel x86 Win32 Sun Java 2 Standard Edition, version 1.4.2
Microsoft Windows Server 2003 Intel x86 Win32 Sun Java 2 Standard Edition, version 1.4.2
Red Hat Enterprise Linux WS 3.0

New since last updateRed Hat Enterprise Linux WS 4.0

Intel x86 GTK Sun Java 2 Standard Edition, version 1.4.2

Eclipse BIRT Runtime 2.1 and Eclipse BIRT Charts 2.1 Reference Platforms
Operating system Processor architecture Window system Java 2 Platform
Microsoft Windows XP Intel x86 Win32* Sun Java 2 Standard Edition, version 1.4.2, version 5.0
Microsoft Windows XP Intel x86 Win32* IBM SDK 1.4.2, 5.0
Microsoft Windows Server 2003 Intel x86 Win32* Sun Java 2 Standard Edition, version 1.4.2, version 5.0
Microsoft Windows Server 2003 Intel x86 Win32* IBM SDK 1.4.2, 5.0
Red Hat Enterprise Linux WS 3.0 Intel x86 GTK* Sun Java 2 Standard Edition, version 1.4.2, version 5.0
Red Hat Enterprise Linux WS 3.0 Intel x86 GTK* BlackDown SDK 1.4.2
SUSE Linux Enterprise Server 9 Intel x86 YaST* Sun Java 2 Standard Edition, version 1.4.2, version 5.0
SUSE Linux Enterprise Server 9 Intel x86 YaST* BlackDown SDK 1.4.2
*Window system only required when displaying charts within SWT or SWING windows.

BIRT Application Server Reference Platform
New since last updateApache Tomcat 5.0.x, 5.5.x
JBoss AS 4.0.2

BIRT JDBC Reference Platforms
MySQL Connector/J 3.x JDBC driver
Derby V5.1 JDBC driver

BIRT Browsers and Viewers Reference Platforms
Mozilla Firefox 1.5
Microsoft Internet Explorer 6.0
Adobe Acrobat Reader 7.0

Internationalization

Eclipse is designed as the basis for internationalized products. The user interface elements provided by the various Eclipse projects, including dialogs and error messages, are externalized. The English strings for BIRT are provided as the default resource bundles. Translations are provided with this release for French (fr_FR), German (de_DE), Spanish (es_ES), Japanese (ja_JP), Simplified Chinese (zh_CN), and Korean (ko_KR).

Compatibility with Previous Releases

BIRT 2.1 will be compatible with earlier versions of BIRT to the greatest extent possible. The nature and scope of some of the key plan items for BIRT 2.1 are such that the only feasible solutions might break compatibility. In other regards, BIRT 2.1 will be compatible with 2.0 and 1.x. We also aim to minimize the effort required to port an existing plug-in to the 2.1 APIs.

Compatibility of Release 2.1 with 2.0 and 1.x

BIRT 2.1 will be compatible with BIRT 2.0 and 1.x unless noted. The detailed compatibility statement is listed below. In this statement, "BIRT" refers to all BIRT components: BIRT Report Framework, BIRT Runtime, and BIRT Chart SDK.

API Contract Compatibility: BIRT 2.1 will be upwards contract-compatible with BIRT 2.0 and 1.x to the greatest extent possible. All incompatibility exceptions will be documented. Downward contract compatibility is not supported. There is no guarantee that compliance with BIRT 2.1 APIs will ensure compliance with BIRT 2.0 or 1.x APIs. Refer to general Eclipse document on Evolving APIs for a discussion of the kinds of API changes that maintain contract compatibility.

The BIRT Chart UI API v2.1 is compatible with the v2.0 API but not compatible with the v1.x APIs due to a full redesign of the Chart UI in the BIRT 2.0 release.

Binary (plug-in) Compatibility: The BIRT 2.1 plug-in framework will be upwards binary-compatible with BIRT 2.0 and 1.x plug-ins to the greatest extent possible. Downward plug-in compatibility is not supported. Plug-ins for BIRT 2.1 will not be usable in BIRT 2.0 or 1.x. Extension plug-ins for BIRT 2.0 and 1.x will be upwards binary-compatible with BIRT 2.1.

Source Compatibility: BIRT 2.1 will be upwards source-compatible with BIRT 2.0 and 1.x to the greatest extent possible. This means that source files written to use BIRT 2.0 or 1.x APIs will successfully compile and run against BIRT 2.1 APIs. Downward source compatibility is not supported. If source files use new BIRT APIs, they will not be usable with an earlier version of BIRT.

Report Design Compatibility:BIRT 2.1 will be upwards report design compatible with BIRT 2.0 and 1.x unless noted. This means that reports created with BIRT 2.0 or 1.x can be successfully opened by BIRT 2.1 and upgraded to a 2.1 format.

Non-compliant usage of API's: All non-API methods and classes, and certainly everything in a package with "internal" in its name, are considered implementation details which may vary between operating environment and are subject to change without notice. Client plug-ins that directly depend on anything other than what is specified in the BIRT API are inherently unsupportable and receive no guarantees about compatibility within a single release much less with an earlier releases.

Themes

Continuing on the themes for previous releases of BIRT, the BIRT project's overriding release 2.1 theme remains extending the Eclipse platform to provide infrastructure and tools that allow application developers to design, deploy, generate and view reports within their applications. In this context, the BIRT project also adopts and supports key themes within the overall Eclipse planning process.

  • Scaling up and Enterprise Ready The Eclipse platform 3.2 continues to improve on scalability and readiness for the enterprise. BIRT 2.1 leverages the support that 3.2 provides by ensuring that it is tested and it supports Eclipse 3.2.
  • Simple to Use - BIRT 2.1 includes ease of use enhancements such as improvements to the distribution and installation of BIRT. Additionally, BIRT 2.1 continues to provide the RCP based report designer which is targeted at the report developer.
  • Appeal to a Broader Community - BIRT 2.1 will broaden the appeal of BIRT by its integration with the Eclipse Callisto simultaneous release. In addition, providing support forFirefox 1.5 and JDK 5.0 for the BIRT runtime widens BIRT's appeal.

Projects

Projects identified are:

New since last updateIntegration with Eclipse Callisto Simultaneous Release The goal of the Callisto Simultaneous Release is to release ten major Eclipse projects at the same time to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products. Callisto is about developers helping developers serve the whole Eclipse community. This project will ensure that 1) BIRT is integrated with the Callisto Simultaneous Release 2) BIRT plug-ins will be made available in jar files 3) BIRT will use message bundles and capabilities. [Bugzilla ID: 133665] [Theme: Appeal to a Broader Community]

Provide support for the Eclipse 3.2 Platform The BIRT 2.1 release will be tested on the Eclipse 3.2 Platform Release. [Bugzilla ID: 133666][Theme: Scaling up and Enterprise Ready]

Improve distribution and installation of BIRT Users of BIRT, especially new users, can sometimes be overwhelmed by the complexity of the installation of BIRT and all the components that it depends on. BIRT 2.1 aims to improve the end user experience of downloading and installing BIRT and all of its related components. [Bugzilla ID: 133669][Theme: Simple to Use]

ICU4J Integration Integrating the International Components for Unicode for Java will enable BIRT 2.1 to work with text in any language for any place in the world. ICU4J continues to extend Java's Unicode and internationalization support, improving performance, staying current with the Unicode standard, and providing richer APIs, while remaining as compatible as possible with the original Java text and internationalization API design. [Bugzilla ID: 127012][Theme: Appeal to a Broader Community]

New since last updateReport Viewing

Improved Drill Through The developer of a report likely does not know what sections of that report are interesting enough to serve as destinations for links from other reports. Instead of requiring the developer to guess at defining bookmarks in the report, this project will focus on developing the capability to link to the table of contents of a target report as well as to link to a column name and value. This mechanism will provide more flexibility and make report linking easier to use. Additionally, when linking a report to another via the drill through mechanism, there is currently no way of knowing which report parameters if any, are absolutely required. The drill through builder will list whether a report parameter is required. [Bugzilla ID: 124710][Theme: Simple to Use]

Reportlet HTML Output Web pages often use HTML tables to organize and position their content. In order to provide more flexibility for integrating report content into a web page, it becomes necessary to introduce a new set of formats that return content as ‘Reportlets’, or partial DHTML pages. These Reportlets can then be included within web pages generated by a web application. [Bugzilla ID: 110681][Theme: Simple to Use]

Page Break Enhancements Page breaks are currently supported for various report items such as tables and grid rows. Additionally, page breaks are required in a customer order report that groups information by customer and inserts a page break before or after each customer's orders. However, an option is required so that the last blank page is suppressed in the case that a page break is inserted after every group. Similarly, in the case that a page break is inserted before each group, an option should suppress the first blank page. When a page break is inserted after every group, the group header should automatically be repeated. This project also aims to improve the documentation of pagination. [Bugzilla ID: 121275, 124585, 126120, and 119580][Theme: Scaling Up]

Determine Columns Bound To A Table In order to improve application performance, the report developer needs to be able to tell what columns from a dataset have been bound to a table. This will allow the developer to then optimize the SQL statement. For example, if only 2 columns from a dataset with 10 columns have been bound, then the select list does not need to fetch all 10 columns from the database. This reduces the data fetch thereby improving performance. [Bugzilla ID: 133678][Theme: Scaling Up]

New since last updateTotal Page Count and Pagination Hints For PDF Output When generating PDF output from a BIRT report there is no way of determining the total page count for the report. This project fixes this shortcoming. [Bugzilla ID: 121159] Pagination hints for HTML output are stored in the report document file. These hints can not be utilized by the PDF emitter. This project also generates PDF pagination hints which get stored in the report document file. [Bugzilla ID: 131624][Theme: Simple to Use]

New since last updateData Sources

Support Enhanced ODA Framework BIRT 2.1 will incorporate enhancements to the Open Data Access component of the Data Tools Project such as: Upgrades to the ODA 3.0 design framework; specialized implementation in oda.jdbc.ui to support the DTP textual SQL Editor and exposed database definition model; embedding and launching the ODA custom designer's wizard and editor pages in the data explorer. [Bugzilla ID: 133681][Theme: Appeal to a Broader Community] Additionally, the Design Engine ROM will be updated to support the DTP 3.0 model changes. [Bugzilla ID: 133682][Theme: Appeal to a Broader Community]

XML Data Source Enhancements The following items are included in BIRT 2.1: 1) BIRT 2.0 supports URL's (with or without parameters) and XML files as input streams for the XML Data Source. This project extends this capability by using Java classes as input streams for the XML Data Source. Additionally, web services as input streams are becoming an accepted method of interacting with XML data streams. This will be considered as well. 2) The XML Data Set builder appears complex to use for non Java developers who may not be familiar with Xpath syntax. This project will explore options to improve the usability of the builder. 3) XML files can contain large trees and therefore users need a way to filter parts of the tree so that only the interesting parts appear in the data set builder. This project will enhance the BIRT XML ODA Driver to display non-English strings properly. [Bugzilla ID: 129424][Theme: Appeal to a Broader Community]

Join Two Data Sets It is a commonly requested feature that a BIRT table or list be able to consume data from two or more data sets joined together with a set of join conditions. This feature is very similar to SQL table joins. In comparing BIRT’s data set join to SQL joins, a BIRT data set is equivalent to a SQL table, while a data set column is equivalent to a column in a table. Data set joins in BIRT are achieved via the introduction of a new type of data set called Joint Data Set. A Joint Data Set is a derived data set whose data comes from joining two data sets. Users can create a data set that is the join of two data sets and can define one and only one join key, outer/inner join, and filtering condition. [Bugzilla ID: 131040][Theme: Simple to Use]

New since last updateTemplate Creation From Report Design There is no obvious way to create a report template from a report design. This project will address this shortcoming. [Bugzilla ID: 122575] Some key usability improvements planned in this project include: 1) Publishing a template from the right mouse button click in the outline view. [Bugzilla ID: 126064] 2) Indicating that the template display name is required in the template publishing dialog. [Bugzilla ID: 126074] 3) Providing a name for a report item when converting it to a template report item. [Bugzilla ID: 126103][Theme: Simple to Use]

New since last updateHighlighting Top N or Bottom N rows Highlighting is a powerful way to draw attention to report items that meet certain conditions. For instance, in a product inventory report, if the inventory level of a product drops below the minimum stocking level, then that row in the report should be highlighted. This project enhances the highlighting feature by supporting the capability to highlight the top N or bottom N rows in a result set. [Bugzilla ID: 123726]

New since last updateHighlight Applies To Any Report Element When creating alternating bands of highlighted rows, the backgrounds for the cells are not contiguous. This leaves white spaces between highlighted cells in a band especially if the data value in a cell is not available. Highlighting will now be applicable to any report element and will not be cascading removing any gaps in highlight bands. [Bugzilla ID: 102511][Theme: Simple to Use]

New since last updateData Set Editor UI Improvements In order to make the data set editor consistent with the Eclipse look and feel the following items are planned: 1) Double-clicking on the data field should work exactly like drag and drop 2) Arrows in the right corner will allow the user to navigate to the next/previous option. 3) Make Preview Results option the last in the list; 4) Apply button will appear on each panel and apply the changes made without closing the dialog; 5) Clicking the Preview Results button will apply the changes made and switch to the Preview Results pane, populating it with the data corresponding to the current query; 6) Add progress bar (similar to the one in Report Preview) to the Preview Results operation; 7) Aesthetic changes such as positioning of items in the dialog and size in pixels of items. [Bugzilla ID: 126083][Theme: Simple to Use]

New since last updateChart Enhancements A number of enhancements are planned for this project. Some key ones include: 1) Support bar/stick display for Stock series - The bar/stick display represents prices as a vertical line from the high to the low, with a left tick representing the opening price and a right tick representing the closing price. [Bugzilla ID: 113179] 2) Auto-wrapping/size of legend - Charts auto size and legends wrap so that large data sets are handled. [Bugzilla ID: 116709] 3) %value for Pie Charts and expressions for data point labels - Provide the ability to display the % value of the chart section in addition to Orthogonal Value, Base Value and Series Value. [Bugzilla ID: 117566] 4) Support tool tips on various chart elements – Tool tips are used to annotate chart components with extra information. Chart components that should have tool tips are: chart title, axes, legend items, data sets, and data point values. [Bugzilla ID: 119136][Theme: Simple to Use]

New since last updateAccelerator Keys In order to conform to the Accessibility guidelines for the Eclipse UI, this project will provide accelerator keys for setting preferences. This will enhance the adoption of BIRT in commercial products. [Bugzilla ID: 125122][Theme: Appeal to a Broader Community]

New since last updateEase Report Migration To encourage the use of BIRT by the development community, it must be easy for developers to migrate BIRT reports across environments such as from development to testing to production. To support this goal, BIRT 2.1 should provide capabilities in the Eclipse environment that make it easy for the developer to deploy the BIRT reports in their application using visual tools. This includes packaging up reports and all their dependent components such as libraries, scripted data source (Java class files), war files for the BIRT runtime, images, and other related artifacts. [Bugzilla ID: 133697][Theme: Enterprise Ready]

New since last updateInclude BIRT source code with downloads Current downloads of Eclipse BIRT do not provide an SDK like package which includes the source code for BIRT. There is a need for such a package so that users do not have to handle the additional complexities of downloading the source code from CVS. [Bugzilla ID: 104310][Theme: Simple to Use]

New since last updateSpecifying Report Item Event Handlers This project will provide an easier method of specifying the class that implements the event handling for a particular report item. [Bugzilla ID: 126109][Theme: Simple to Use]

New since last updateMultiple Master Pages This project will provide support for multiple master pages in a report. For each page break before a report item, a new master page can be identified. This will remain in effect until the next page break that identifies a different master page. [Bugzilla ID: 132316][Theme: Simple to Use]

New since last updateData Binding in Master Pages An often requested feature is the ability to provide data bindings on the master page of a report. This project will provide the capability to retrieve the first row in the dataset that binds to report items in the master page. [Bugzilla ID: 122419][Theme: Simple to Use]

Defects

BIRT 2.1 will address defects reported by project members and the community. The list of defects targeted for resolution in BIRT 2.1 can be found in the bugzilla database on https://bugs.eclipse.org/bugs.