EclipseLink/Development/Incubator/Extensions

From Eclipsepedia

Jump to: navigation, search

Contents

EclipseLink Extensions Incubator

This incubator will allow the development of extensions to EclipseLink that illustrate to users how similar extensions can be written.

This incubator is not intended to be a catch-all but to specifically deal with EclipseLink's public extension points allowing common extensions to be shared. Some of these extension points include:

  • Database Platforms
  • Expression Operators
  • Event Listeners
  • Query Re-directors
  • Server Platforms
  • Descriptor policies

Each extension will be maintained in its own project with self contained test cases to illustrate and verify its usage. EclipseLink users can then use these extensions as per their EPL/EDL licensing terms.

Promoting an Extension Project

Over time extensions in this incubator may be migrated into core functionality. The basic criteria for promoting include:

  1. Committers agree that the functionality is valuable to the user community and there is enough interest among the committers to support the functionality. This will require a vote of the current committers with at least 5 positive votes and no negative votes.
  2. The functionality in the extension project passes a design review of committers with any issues raised addressed
  3. There exists reasonable test cases, JavaDoc comments, and usage documentation to simplify its promotion

At that time the associated wiki content will be updated to include migration instructions to upgrade to the shipped implementation.

Database Platform Promotion

under construction

For a contributed DatabasePlatform to be included in EclipseLink it should pass some basic tests and provide detailed documentation about what can be expected to work on the contributed database platform.

Basic Tests required for inclusion

  • Core SRG
  • JPA SRG

Functionality Check List

  • JPA LRG - passes full JPA LRG
  • Core LRG - passes full Core LRG
  • DDL Generation
  • Outer Join
  • Subquery
  • Stored Procedures/Stored Functions usage
  • Stored Procedures/Stored Functions generation
  • Sequences/Identity fields
  • JPA Bulk Update/Delete
  • Batch Reading
  • Batch Writing
  • Pessimistic Locking (wait/no wait)
  • FirstResult/Limit
  • Database Operators (EclipseLink Expressions) - operators not supported, additional operators supported
  • Any Extended Functionality

Note: If a contributed DatabasePlatform replaces an existing DatabasePlatform, it must have a better success rate in our testing than the existing DatabasePlatform.

Test Suite

We would like to set up a way of building a regression test suite for each database platform that contains just the tests that are expected to pass.

Extension Usage Tracking

Each project in this incubator should have its own bug associated so that users of the extension can add themselves to the cc list and therefore be notified of enhancements and migration of functionality into the project's distributed bundles/JARs. The users copied on an extension incubator bug and votes cast for the bug will be used to help judge the community interest in a given project.

Support for Extensions

The support for these extension incubator projects is limited. It is recommended that issues encountered be raised in the bug.

Extension Projects

The following are the current extension projects maintained in this incubator.

Bug Committers Description Comments or Wiki link
bug 273057 Nested Fetch Group dclarke Extended FetchGroup implementation supporting specifying a FetchGroup for related objects where the relationships are LAZY. details
bug 288307 Fetch Plan dclarke, ssmith Custom query redirector that allows the specification of required related objects that are forced to be loaded before the query result is returned. details
bug 288363 GraphInvalidationListener dclarke A SessionEventListener that processes query results ensuring that the graph returned does not contain invalid objects. details
bug 253682 Ingres Platform tware Custom database platform provided by vendor. details
bug 284657 MaxDB Platform tware Custom database platform provided by community member. details
bug 215079 H2 Platform tware Custom database platform provided by community member. details
bug 248205 DB2 AS400 Platform tware Custom database platform provided by community member. details.
bug 287167 NetWeaver Platform tware Custom server platform provided by vendor. details
bug 288715 Symfoware Platform tware Custom database platform provided by vendor. details