Use Case - Extending an ODA Runtime Driver
The Open Data Access (ODA) drivers distributed by DTP and BIRT provide data access to common data sources, e.g. XML, CSV files, JDBC.
The user community often wants to further extend such runtime driver to customize for his/her specific data source environment.
An use case is to customize the collection of connection property values to suit one's own security environment. The propertyProvider extension point supports this.
Another use case is to pass in an application-specific context object to an ODA driver at runtime. For example, a J2EE application would obtain a data input stream or a supplied connection for use by an out-of-box ODA driver. One would thus need to extend the ODA runtime driver to process the specialized context object, by overriding just a few methods in its corresponding implementation class.
To deploy the extending class, instead of implementing a new full-blown ODA driver with both runtime and design-time extensions, a simpler approach is to deploy it as a driver bridge extension. An ODA driver bridge plug-in serves as an intermediate layer that intercepts the ODA interface methods called by an ODA consumer to an ODA runtime driver. Using this approach, there is no need to change the reference of the original ODA data source id to your extended one. Furthermore, it would be able to simply use the original ODA designer as its own.
Extension Points Involved
Each extension point may be used independently, as appropriate.
Java API Interfaces/Classes
- org.eclipse.datatools.connectivity.oda package (same Java interfaces as an ODA runtime driver)
- See the sample driver bridge implementation attached in Bugzilla 135246. It extends the BIRT oda.jdbc runtime driver to use an externally supplied JDBC connection.