Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/Incubator/Extensions"

(Extension Projects)
(EclipseLink Extensions Incubator)
Line 1: Line 1:
 
= EclipseLink Extensions Incubator =
 
= EclipseLink Extensions Incubator =
  
This incubator {{bug|258347}} will allow the development of extensions to EclipseLink that illustrate to users how similar extensions can be written. The extensions include:
+
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
 
* Database Platforms
Line 8: Line 10:
 
* Query Re-directors
 
* Query Re-directors
 
* Server Platforms
 
* 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:
 +
 
 +
# Committers agree that the functionality is valuable to the user community and their 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.
 +
# The functionality in the extension project passes a design review of committers with any issues raised addressed
 +
# 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.
 +
 
 +
=== 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 ===
  
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. Over time extensions in this incubator may be migrated into core functionality. At that time the associated wiki content will be updated to include migration instructions to upgrade to the shipped implementation. 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 support for these extension incubator projects is limited. It is recommended that issues encountered be raised in the bug.
  
 
== Extension Projects  ==
 
== Extension Projects  ==
  
<br>
+
The following are the current extension projects maintained in this incubator.
  
 
{|{{BMTableStyle}}
 
{|{{BMTableStyle}}
 
|-{{BMTHStyle}}
 
|-{{BMTHStyle}}
 
! Bug
 
! Bug
 +
! Committers
 
! Description
 
! Description
 
! Comments or Wiki link
 
! Comments or Wiki link
Line 24: Line 45:
 
| ?  
 
| ?  
 
| Ingres Platform
 
| Ingres Platform
 +
| tware
 
| Custom platform provided by vendor. Needs to have all issues verified and certification testing sorted out. <br>
 
| Custom platform provided by vendor. Needs to have all issues verified and certification testing sorted out. <br>
 
|-
 
|-
 
| ?  
 
| ?  
 
| Nested Fetch Group
 
| Nested Fetch Group
 +
| dclarke
 
| Extended FetchGroup implementation supporting specifying a FetchGroup for related objects where the relationships are LAZY.<br>
 
| Extended FetchGroup implementation supporting specifying a FetchGroup for related objects where the relationships are LAZY.<br>
 
|-
 
|-
 
| ?  
 
| ?  
 
| Fetch Plan
 
| Fetch Plan
 +
| dclarke, shsmith
 
| Custom query redirector that allows the specification of required related objects that are forced to be loaded before the query result is returned.  
 
| Custom query redirector that allows the specification of required related objects that are forced to be loaded before the query result is returned.  
 
|-
 
|-
 
| ?  
 
| ?  
 
| GraphInvalidationListener  
 
| GraphInvalidationListener  
 +
| dclarke
 
| A SessionEventListener that uses postExecuteQuery to process query results ensuring that any loaded relationships have valid objects, refreshing any invalid ones found.
 
| A SessionEventListener that uses postExecuteQuery to process query results ensuring that any loaded relationships have valid objects, refreshing any invalid ones found.
 
|}
 
|}

Revision as of 15:16, 1 September 2009

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 their 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.

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
 ? Ingres Platform tware Custom platform provided by vendor. Needs to have all issues verified and certification testing sorted out.
 ? Nested Fetch Group dclarke Extended FetchGroup implementation supporting specifying a FetchGroup for related objects where the relationships are LAZY.
 ? Fetch Plan dclarke, shsmith Custom query redirector that allows the specification of required related objects that are forced to be loaded before the query result is returned.
 ? GraphInvalidationListener dclarke A SessionEventListener that uses postExecuteQuery to process query results ensuring that any loaded relationships have valid objects, refreshing any invalid ones found.