BIRT 2.2 Project Plan

BIRT 2.2 Project Plan

BIRT Project 2.2 Plan

Last revised June 27, 2007

New since last update marks interesting changes since the previous draft of February 7, 2007

Introduction

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

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.2 release is part of the Eclipse Europa simultaneous release. 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. The BIRT 2.2 release milestones will be synchronized with other projects as part of the Europa release. For detailed dates refer to the Europa simultaneous release.

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.2 release depends on the following compatibility stack:

BIRT 2.2 Reference Stack for JDK 1.4.2

  • Java 2 platform Java Development Kit (JDK) 1.4.2
  • Eclipse Platform Runtime Binary 3.3
  • Graphical Editor Framework (GEF) Runtime 3.2
  • Eclipse Modeling Framework (EMF) 2.2
  • Data Tools Platform Project 1.5 (DTP)
  • Web Tools Project (WTP) 2.0

BIRT 2.2 Reference Stack for JDK 1.5

  • Java 2 platform Java Development Kit (JDK) 1.5
  • Eclipse Platform Runtime Binary 3.3
  • Graphical Editor Framework (GEF) Runtime 3.2
  • Eclipse Modeling Framework (EMF) 2.3
  • Data Tools Platform Project 1.5 (DTP)
  • Web Tools Project (WTP) 2.0

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.2, the project team plans to tests and validate the following reference platforms:

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

Red Hat Enterprise Linux WS 4.0

Intel x86 GTK Sun Java 2 Standard Edition, version 5.0

Eclipse BIRT Runtime 2.2 and Eclipse BIRT Charts 2.2 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
Apache Tomcat 5.0.x, 5.5.x
JBoss AS 4.0.2

BIRT JDBC Reference Platforms
MySQL Connector/J 3.x JDBC driver
Derby V10.1.2.1 JDBC driver

BIRT Browsers and Viewers Reference Platforms
Mozilla Firefox 1.5, 2.0 New since last update
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.2 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.2 are such that the only feasible solutions might break compatibility. In other regards, BIRT 2.2 will be compatible with 2.x and 1.x. We also aim to minimize the effort required to port an existing plug-in to the 2.2 APIs.

Compatibility of Release 2.2 with 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x and 1.x

BIRT 2.2 will be compatible with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x 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.2 will be upwards contract-compatible with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x 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.2 APIs will ensure compliance with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x 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.2 is compatible with the v2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x 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.2 plug-in framework will be upwards binary-compatible with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x and 1.x plug-ins to the greatest extent possible. Downward plug-in compatibility is not supported. Plug-ins for BIRT 2.2 will not be usable in BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x or 1.x. Extension plug-ins for BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x and 1.x will be upwards binary-compatible with BIRT 2.2.

Source Compatibility: BIRT 2.2 will be upwards source-compatible with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x and 1.x to the greatest extent possible. This means that source files written to use BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x or 1.x APIs will successfully compile and run against BIRT 2.2 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.2 will be upwards report design compatible with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x and 1.x unless noted. This means that reports created with BIRT 2.1, 2.1.1, 2.1.2, 2.1.3, 2.0.x or 1.x can be successfully opened by BIRT 2.2 and upgraded to a 2.2 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.2 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.3 continues to improve on scalability and readiness for the enterprise. BIRT 2.2 leverages the support that 3.3 provides by ensuring that it is tested and it supports Eclipse 3.3.
  • Simple to Use - BIRT 2.2 includes ease of use enhancements such as improvements to the BIRT report designer.
  • Appeal to a Broader Community - BIRT 2.2 will broaden the appeal of BIRT by its integration with the Eclipse Europa simultaneous release. In addition, BIRT 2.2 provides new report types via additional report items such as the Crosstab report item.

Projects

The candidate projects being considered for this release include the following list. Please note that the final list will depend on sign off from the project committers.

Data Sources

Web Service Data Source One of the key goals of BIRT is to support data access for a number of different data sources for reporting. Given the widespread popularity of web services, this project enhances the XML ODA driver to include the capability to treat web services as a data source. It also allows the report developer to specify data source parameters in order to filter the data that is fetched. [Bugzilla ID: 159490]

Extend Flat File Data Source Instead of specifying the column data types in the first row of a CSV file, this project looks at specifying the column names and their data types when defining the flat file data source. In addition, this project makes the flat file data source more flexible by allowing delimiters other than just the comma character. [Bugzilla ID: 152210]

Predicates in XML Data Sets It is not currently possible to apply predicates such as /city/[@iscapital=""Y""]/@name in order to fetch the name of a capital city using an XPath expression when defining an XML data source. This project extends the predicates that are supported in the XML data source.[Bugzilla ID: 152823]

Dynamic Reference to Connection Profile A connection profile contains all of the necessary information to allow a BIRT report to connect to a data source. BIRT supports importing a connection profile when creating a data source in a report design. However, when changes are made to a connection profile these changes are not reflected in the BIRT report. This project aims to provide the capability to store a reference to an external connection profile so that any changes made to the profile are automatically picked up by the BIRT report. This makes migration from a test to a production environment easy. [Bugzilla ID: 149945]

Boolean Data Type in Data Set In a data set, when creating a computed column it currently is not possible to specify the data type as a Boolean data type. This project will now allow the creation of Boolean type computed columns. [Bugzilla ID: 152443]

Emitters

Microsoft Word, Excel, and PowerPointNew since last update Outputs Users who receive reports often want to distribute these reports to a wider audience via email in order to share information. In the process of doing this, they may want to export the report to a common format such as MS Word, Excel, or PowerPoint make the edits and then distribute the Word, Excel spreadsheet, or PowerPoint file. For usability, the receiver of the email would rather access the document as an MS Office file. PDF is often not an option since the user wants to make edits to the file. The MS Word, Excel, and PowerPoint report format converters approximate the look and spacing of elements in the original report to Word, Excel, and PowerPoint formats respectively. [Bugzilla ID: 159491]

Postscript Output The widespread availability and acceptance of PostScript has made it a language of choice for graphical output for printing applications. Providing a PostScript emitter from a BIRT report supports offloading the CPU workload involved in printing documents, transferring it to the printer. [Bugzilla ID: 158748]

Use of Eclipse 3.2 Features

This project aims to make use of the new Eclipse 3.2 SWT widgets and upgrades to the latest version of EMF. [Bugzilla ID: 159493]

Extensible Data Explorer View This project aims to make the data explorer view extensible so that custom data sources can now be made available and selected from in the Data Explorer view. [Bugzilla ID: 159495]

Improved and Extensible Property Editor View This project aims to make the property editor view extensible and improves its look and feel. [Bugzilla ID: 159497]

Contributions to Eclipse's DTP Project This project will make several contributions to the DTP project. These include: 1) Enhance oda runtime API to provide generalized support of JDBC specialized features 2) Enhance oda.design utility to facilitate oda host processing of oda.design response/request 3) Extract common behavior from BIRT odaconsumer to DTP oda.consumer 4) Migrate BIRT oda.xml plugins to DTP Enablement namespace. [Bugzilla ID: 159498]

Formatting

Highlight Rule References Style Element 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 needs to be highlighted so that the consumer of the report can act on the information in a timely fashion. Instead of defining style elements in a highlighting rule, this project aims to allow the use of existing style elements in a BIRT report. This makes it easy for report developers to maintain changes to styles and highlighting rules. [Bugzilla ID: 146642]

Table of Contents Formatting The table of contents in a BIRT report currently do not support the use of styles. They also do not provide any flexibility in their layout. This project aims to allow the use of styles as well as more flexibility in the layout of the table of contents in a BIRT report. [Bugzilla ID: 159499]

Reference to External CSS file Style sheets provide an easy to use and productive mechanism to establish a uniform style across documents. This is a concept with which many users are familiar. This project extends the concept of styles to allow the definition of a style to be contained in a separate style sheet file that can be referred to from a BIRT report without importing it. This makes it easy to modify CSS files and have the changes reflected in a report design. [Bugzilla ID: 140619]

Report Item

Dynamic Crosstab Report Item A cross tabulation report (often abbreviated as a Crosstab report) displays the relation between two variables in a tabular or matrix format. An example of a crosstab report might be a “US Sales By State and Product” report that displays the US states along the X-axis and products along the Y-axis. Each cell in this table could be the sum of the amount spent by all customers who live in a particular state AND have purchased a particular product. This project aims to provide a dynamic crosstab report item where the values displayed along the rows and columns are gleaned from the data set columns. This project enhances the ODA Design API to support OLAP data source metadata to populate the crosstab report item's initial configuration. [Bugzilla ID: 102521]

Parameters

Designating Default for a List of Values Report parameters allow users to tailor the content of a report. Selecting a value for a parameter from a list of values that is fetched from a data set prevents the user from incorrectly supplying parameter values. When designing a report parameter that presents a list of values based on a data set, it is useful for the report developer to be able to examine the list and designate a default value from the list. This project aims to allow the report developer to define this default value. [Bugzilla ID: 153495]

Usability

Debugging When designing a report the developer encounters errors occasionally. The productivity of the developer is greatly enhanced if the designer helps in pinpointing the location of that error quickly. This project looks at ways to improve this debugging capability. When the report developer clicks on a error in the Problem View, the focus would shift to the report item that has the error. If there is an error in the XML underlying the report design, then focus would shift to the line in the XML with the error. [Bugzilla ID: 159502]

Aggregation Builder Novice users of BIRT sometimes find it challenging to define aggregations of data in a BIRT report. This is especially true for some of the more complex aggregation functions that take numerous parameters. This project looks at alleviating this by making it easier to define aggregations in a report. [Bugzilla ID: 130686]New since last update

Chart Designer Usability This project aims at improving the layout and general usability of the chart designer to include areas such as new icons, better grouping of data, reorganize the UI for easier scripting for charts, quick access to commonly used settings, the interactivity UI, easy creation of drill-through URL's using chart values as parameters, navigation improvements, and Eclipse wizard-like error notification. [Bugzilla ID: 132040]

 Ease of Plugin Development The Open Data Access (ODA) framework is key component of the Data Tools Project (DTP). ODA presents the Java developer with a robust architecture to extend the capabilities of BIRT by being able to report on custom data sources. This project will make it easier to extend the data sources that BIRT can report on by providing a wizard to create an ODA runtime and designer plugin with default implementation and stub source code. [Bugzilla ID: 159503]

Building BIRT This project focuses on making it easy for the Eclipse community to compile and build BIRT and therefore to make contributions to BIRT. [Bugzilla ID: 159504]

Quick Start to Report Development First time users and novice users of BIRT will benefit from being able to examine sample reports as they go about learning to design reports. This project looks at making a set of sample reports easily accessible by these users. [Bugzilla ID: 159505]

Improved XML Editor This project will look at improving the capabilities of the XML editor by leveraging the capabilities of the XML editor from Eclipse's Web Tools Project. [Bugzilla ID: 159507]

Improved Extensibility of Emitters BIRT provides a framework that is highly extensible. This project aims to make it easier for developers to add new types of emitters.[Bugzilla ID: 158714]

Scripting

Scripting Implementation This project proposes to enhance the scripting capabilities so that both Java and JavaScript based scripting utilize the same implementation and therefore have very similar levels of functionality. [Bugzilla ID: 159509]

Documentation of Scripting API's This project looks at documenting the current scripting API's for both Java and JavaScript based scripting. [Bugzilla ID: 132031]

Deployment and Integration

Easy Deployment and Integration To encourage the use of BIRT by the development community, it must be easy for developers to integrate BIRT reports into their Java applications. To support this goal, BIRT should provide capabilities that make it easy for the developer to deploy the BIRT Runtime and reports in their application using easy-to-use tools. This project explores the use of tools from the WTP project in order to accomplish this goal. [Bugzilla ID: 159510] This project also provides developers the ability to easily deploy charts in their applications using easy-to-use tools from the WTP project. [Bugzilla ID: 181746]New since last update

JSP Tag Library for Charts Java Server Pages is a widely used technology in web application development. In order to simplify the integration of Charts within a JSP based application, this project will provide a JSP tag library. This library can be used only with standalone charts. [Bugzilla ID: 159511]

Charting

New Chart Types This project extends the different types of charts available to include Gantt, Bubble, Difference, Cones, Tubes for 2d/2d+3d. Enhancement of cone and pyramid types to support stacking. [Bugzilla ID: 147770]New since last update

Scaling and Grouping This project improves the scaling and grouping of charts. Items include improved datetime and range grouping; multiple Y aggregates for X series grouping (each Y series can use its own aggregate function); support linear axis for Line/Bar/Area (non-stacked) charts; datetime scaling support; overflow data handling; steps number customization. [Bugzilla ID: 159513]

Chart API This project aims to provide a simple API for chart scripting inside BIRT reports similar to the design engine script API, and that integrates with it. This is another API to easily modify the chart model inside BIRT report scripts. In addition, the chart engine API has been centralized into a single class called 'ChartEngine'. This provides access to all the chart engine interfaces making it easier for a user to get started with the chart engine API.[Bugzilla ID: 159514]

Multiple Aggregations per Series When doing base series aggregations, all orthogonal series definitions have to share the same function. This project looks at allowing each orthogonal series definition to specify its own aggregate function. The aggregate function defined in the base series definition is treated as the default function.[Bugzilla ID: 170057]

Chart Examples View A new chart examples view lets developers get started with building chart by viewing charting examples. [Bugzilla ID: 159608]New since last update

Defects

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