JPA 2.0 Roadmap has been edited by Jeremy Bauer (Jul 01, 2009).

Change summary:

Added I9

(View changes)

Content:

JPA 2.0 Road Map

JPA 2.0 Development Process

The process that OpenJPA will be following for developing JPA 2.0 functionality is documented here. The specific roadmap and iteration details will be documented on this Roadmap page.

When creating JIRAs that do not have a planned Iteration, please create them as a Subtask to OPENJPA-773, so they can be easily moved to an Iteration task later on.

Iteration Schedule and Content



Task List

Iteration 1 (Dec. 1 - Dec. 19)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-782 Support for collections of embeddables and basic types Fay Wang Major ResolvedResolved
2.
OPENJPA-803 Update SequenceGenerator to support schema and catalog Jeremy Bauer Major ResolvedResolved
3.
OPENJPA-804 JPA 2.0 spec API update - iteration 1 Jeremy Bauer Major ResolvedResolved
4.
OPENJPA-805 JPQL updates - iteration 1 Catalina Wei Major ResolvedResolved
5.
OPENJPA-806 Support Criteria API for JPA 2.0 - Iteration 1 Pinaki Poddar Major ResolvedResolved
6.
OPENJPA-823 Add JPA 2.0 schemas and appropriately validate for version Jeremy Bauer Major ResolvedResolved

Iteration 1 Summary

With the completion of iteration 1, OpenJPA includes many new JPA 2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • The current level of JPA 2.0 API. You can compile against and use implemented methods of the new API. Unimplemented methods will throw an UnsupportedOperationException.
  • Validation using the current JPA 2.0 orm and persistence schemas. Version 2.0 persistence and orm files will validate using these new schemas. Metadata elements provided in iteration 1 (collection-table and element-collection) will validate and can be specified in XML.
  • Support for nested embeddables. An embeddable can now be nested within another embeddable.
  • Support for relationships within embeddables. Embeddables can now contain relationships.
  • Collections of embeddables and basic types through the use of ElementCollection and CollectionTable. Element collections and collection tables can be specified using annotations or in a version 2.0 orm XML.
  • Support for the Criteria API based on the current spec level, including the new constructs; KEY(), VALUE(), and CASE(). OpenJPA also includes the ability to convert queries constructed with the Criteria API to JPQL.
  • Support for JPA 2.0 JPQL. Compilation of JPA 2.0 JPQL statements and execution of the new JPQL expressions including simple case expressions, general case expressions, coalesce, and the nullif expression. In addition, the select expression allows mathematical operations and the result alias can be specified in the select expression and in the ORDER BY clause. Execution of additional JPA 2.0 JPQL expressions will be added in future iterations.
  • Native sequence generators allow the database schema name to be specified on the annotation or in a version 2.0 orm XML.


Iteration 1a (Dec. 22 - Jan. 2)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-837 OpenJPA 2.0: Update OpenJPA documentation with new persistence schemas Jeremy Bauer Major ResolvedResolved

Iteration 1a Summary

With the completion of the 1a iteration, the OpenJPA documentation has been updated to contain the most current JPA 2.0 schemas.


Iteration 2 (Jan. 5 - Jan. 23)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-802 Support @OrderColumn annotation and XML-based definition Jeremy Bauer Major ResolvedResolved
2.
OPENJPA-809 Support JPA 2.0 Cache Interface Michael Dick Major ResolvedResolved
3.
OPENJPA-851 Support for enhanced map collection (and corresponding annotations) Fay Wang Major ResolvedResolved
4.
OPENJPA-850 Support equivalent names for plug-in value Pinaki Poddar Major ResolvedResolved
5.
OPENJPA-855 JPA2 Query support for Index function Catalina Wei Major ResolvedResolved
6.
OPENJPA-856 JPA2 Query support for entity type expressions Catalina Wei Major ResolvedResolved

Iteration 2 Summary

With the completion of iteration 2, OpenJPA includes several additional JPA 2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • Support for the JPA 2.0 level 2 cache interface. Operations on the OpenJPA data cache are now available from the entity manager factory through a standard JPA interface.
  • Support for use of order column through a JPA annotations or orm mapping file elements. Existing OpenJPA support for order columns has been extended to support the JPA standard OrderColumn definition. This iteration supports a configurable base value attribue. Support for the table and contiguous attributes will be provided in future iterations.
  • Enhanced map support. The use of Map collections has been significantly enhanced. This iteration includes use of the new MapKeyClass, MapKeyColumn, MapKeyJoinColumn, and MapKeyJoinColumns annotations and corresponding orm mapping file elements.
  • Support for JPQL INDEX() function within a query projection or predicate. Allows the index of ordered columns to be projected or used as part of a query predicate. Projection is currently not supported for element collection. This support will be added in a future iteration.
  • Support for entity TYPE() expression. Allows projection of or query criteria based on entity type. OpenJPA does not currently allow selection of an abstract entity type.
  • Support for new javax.persistence standard properties. Standard properties such as javax.persistence.jdbc.driver can now be specified as configuration properties.



Milestone 1

  • The Milestone 1 release is currently on hold until JSR-317 terms of use issues are resolved.


Iteration 3 (Jan. 26 - Feb. 13)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-865 JPA2 Query support for collection-valued input parameters in IN Expression predicate Catalina Wei Major ResolvedResolved
2.
OPENJPA-857 Detect and store JPA version Pinaki Poddar Major ResolvedResolved
3.
OPENJPA-869 Support @OrderColumn annotation and XML-based definition - phase 2 Jeremy Bauer Major ResolvedResolved
4.
OPENJPA-870 Support orphanRemoval attribute on relationships Fay Wang Major ClosedClosed
5.
OPENJPA-871 Support derived identity Fay Wang Major ResolvedResolved
6.
OPENJPA-849 Add metadata-type getter methods to EntityManager Dianne Richards Major ResolvedResolved
7.
OPENJPA-899 Add support for JPA2.0 method Query.getHints() Pinaki Poddar Major ResolvedResolved
8.
OPENJPA-900 Add support for JPA2.0 method Query.getSupportedHints() Pinaki Poddar Major ResolvedResolved

Iteration 3 Summary

With the completion of iteration 3, OpenJPA includes several additional JPA 2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • Support for collection-valued parameters in JPQL using the IN expression. A collection-valued parameter (List, Set, etc.) may now be used in conjunction with the IN expression within the where clause of a JPQL statement.
  • JPA specification level is available through OpenJPA configuration. The JPA specification level of the provider can now be retrieved via the openjpa.Specification property.
  • Support for derived identities including the use of MappedById. OpenJPA now supports entities which have an identity that is derived from the id of another identity for one-to-one and many-to-one relationships with a parent-dependent type association.
  • Support for getSupportedProperties and getProperties methods on the EntityManager and EntityManagerFactory. The active properties and their values, in addition to the full set of supported properties can be retrieved for the EntityManager and EntityManagerFactory.
  • The OrderColumn annotation and equivalent XML now allows the specification of the table element. The table element can be used to specify the join or collection table used to maintain the relationship.
  • Support for getHints and getSupportedHints on Query. The active hints and their values, in addition to supported hints can be retrieved for a Query.


Iteration 4 (Feb. 16 - Mar. 6)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-879 JPA2 Query support for general and qualified identification variable Catalina Wei Major ResolvedResolved
2.
OPENJPA-891 JPA2 LockTypeMode Support Albert Lee Major ResolvedResolved
3.
OPENJPA-930 @AttributeOverride updates Fay Wang Major ResolvedResolved
4.
OPENJPA-931 Support derived identity (spec 2.4.1.2 Ex 5(a), 6 (a)) Fay Wang Major ResolvedResolved
5.
OPENJPA-937 @AssociationOverride updates Fay Wang Major ResolvedResolved

Iteration 4 Summary

With the completion of iteration 4, OpenJPA includes several additional JPA 2.0 (based on the 10/31/2008 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • Support new JPA LockModeType in find, lock and refresh methods in the EntityManager interface. A new "mixed" lock manager is introduced implementing the new mixed optimistic and pessimistic entity locking semantics.
  • AttributeOverride enhanced to allow navigation of multiple levels of embeddables, use with map keys and values, and use with element collections.
  • AssociationOverride enhanced to support specification of of a join table and override of embeddables within relationships.
  • Additional support of derived identities.
  • Support for general and qualified identification variables in JQPL selections. KEY, ENTRY, and VALUE qualifiers
    can now be used within the SELECT clause.


Iteration 5 (Mar. 9 - Apr. 3)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-957 Support lock timeout hint on applicable methods Albert Lee Major ResolvedResolved
2.
OPENJPA-958 Support lock mode on Named Query Pinaki Poddar Major ResolvedResolved
3.
OPENJPA-959 Support lock mode on Query interface Pinaki Poddar Major ResolvedResolved
4.
OPENJPA-960 Support unwrap methods on EntityManager and Query interfaces Pinaki Poddar Major ResolvedResolved
5.
OPENJPA-961 Support projection of element collection from a JPQL query Catalina Wei Major ResolvedResolved
6.
OPENJPA-963 Add query timeout tests for PU and Map properties Donald Woods Major ResolvedResolved
7.
OPENJPA-967 JPA2 Query support for selction of KEY, VALUE, ENTRY of a Map value Catalina Wei Major ResolvedResolved
8.
OPENJPA-885 Support clear methods on EntityManager, including new CascadeType.CLEAR Dianne Richards Major ResolvedResolved
9.
OPENJPA-878 Support default query hint for query timeout Donald Woods Major ResolvedResolved
10.
OPENJPA-972 Support standard provider properties in PersistenceProvider class Donald Woods Major ResolvedResolved
11.
OPENJPA-978 Allow third argument of JPQL SUBSTRING function to be optional Fay Wang Major ResolvedResolved
12.
OPENJPA-990 setHint should return IllegalArgumentException for invalid query/lock timeout values Donald Woods Major ResolvedResolved
13.
OPENJPA-1016 JPA2 Query support for embeddables; nested embeddables; relationships from embeddables Catalina Wei Major ResolvedResolved

Iteration 5 Summary

With the completion of iteration 5, OpenJPA includes several additional JPA 2.0 (based on the 03/13/2009 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • Updated spec APIs and schemas based upon most current specification draft. New, unimplemented methods will throw an UnsupportedOperationException.
  • A lock timeout hint value can now be specified on applicable entity manager and query methods.
  • Lock mode (including the new pessimistic lock modes) can be specified on query methods and named queries. This allows for fine-grained locking configuration at the method level.
  • The unwrap method can be used to get access to underlying OpenJPA entity manager and query interfaces.
  • JPQL queries support the selection of KEY, VALUE, and ENTRY map values.
  • Single entities or an entity graph may be detached from the entity manager. Specifying the new cascade type of DETACH or ALL on relationships allows selective detachment of an entity graph.
  • The third argument of the JPQL SUBSTRING function is now optional.
  • JPQL queries have been enhanced to support the projection of element collections.
  • JPQL queries have been enhanced to support nested embeddables and relationships from embeddables.


Iteration 6 (Apr. 6 - May 1)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-964 Finish updating sql-error-state- codes.xml for query timeout support on other DBs Donald Woods Major ClosedClosed
2.
OPENJPA-1024 JPA2 Query scalar expression in subquery Catalina Wei Major ResolvedResolved
3.
OPENJPA-1027 Document changes for detach methods Dianne Richards Major ResolvedResolved
4.
OPENJPA-926 Support explicit access types including @Access annotation and AccessType enum and XML Jeremy Bauer Major ResolvedResolved
5.
OPENJPA-1032 Revert OpenJPAQuery.getPositionalParameters method signature back to 1.x signature Jeremy Bauer Trivial ResolvedResolved
6.
OPENJPA-1034 Removal of OrderColumn attributes per latest spec draft Jeremy Bauer Minor ResolvedResolved
7.
OPENJPA-1035 JPA2 Query allow map key/value path as argument of scalar functions Catalina Wei Major ResolvedResolved

Iteration 6 Summary

With the completion of iteration 6, OpenJPA includes several additional JPA 2.0 (based on the 03/13/2009 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • Query timeout detection for additional databases. Query timeouts are more accurately detected and reported in DB2, Oracle, SQL Server, and Informix.
  • Support for scalar expressions in JPQL subqueries. Scalar expressions such as substring can now be used within a subquery.
  • Support for explicit access types on persistent types. The persistence access method to use can now be specified on a per-type and field/method level.
  • Updates to OrderColumn and EntityManager methods to match new spec draft.
  • JPQL queries now support key/value paths as arguments to scalar functions. KEY() and VALUE() can now be used to indicate that a map key or value should be used as an argument to a scalar function.


Iteration 7 (May 4 - May 29)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-1055 Added MapKeyEnumerated and MapKeyTemporal annotations and XML. Fay Wang Major ResolvedResolved
2.
OPENJPA-1064 JPA2 Query comparisons over instances of embeddable class are not supported Catalina Wei Major ResolvedResolved
3.
OPENJPA-1068 Support Bean Validation: Entity validation upon lifecycle events Jeremy Bauer Major ResolvedResolved
4.
OPENJPA-962 Support the use of delimited-identifiers Dianne Richards Major ResolvedResolved
5.
OPENJPA-1069 OrderBy annotation applied to an element collection of basic type doesn't require property or field name Fay Wang Major ResolvedResolved
6.
OPENJPA-1077 Validation-mode element support added to persistence.xml and to createEMF properties Map Donald Woods Minor ResolvedResolved
7.
OPENJPA-1094 JPA2 Query support for KEY appear in subquery Catalina Wei Major ResolvedResolved
8.
OPENJPA-1098 JPA2 Query support subselect_identification_variable Catalina Wei Major ResolvedResolved
9.
OPENJPA-1062 Include OSGi bundle metadata Donald Woods Major ResolvedResolved
10.
OPENJPA-880 Use maven-remote-resources-plugin to generate required legal files Donald Woods Minor ResolvedResolved
11.
OPENJPA-1102 Support application/container provided ValidatorFactory Donald Woods Major ResolvedResolved
12.
OPENJPA-1114 Bean Validation APIs should be an optional runtime dependency Donald Woods Major ResolvedResolved

Iteration 7 Summary

With the completion of iteration 7, OpenJPA includes several additional JPA 2.0 (based on the 03/13/2009 spec draft) features. Here is a summary of the new features provided by OpenJPA:

  • New MapKeyEnumerated and MapKeyTemporal annotations and equivalent XML elements for tagging the key of a map collection as either an enumerated or temporal type.
  • Base support for JSR-303 Bean Validation including basic configuration and lifecycle-based event validation.
  • Support the use of delimited identifiers within annotation attributes for a subset of mapping annotations when using the Derby and DB2 databases. Support for additional databases will be added in future iterations.
  • JPQL subqueries now support derived path expressions and the use of KEY() on map collections.
  • OSGI bundle metadata has been added to the OpenJPA jar. This simplifies the use of OpenJPA in an OSGi environment such as Apache Felix.
  • OrderBy no longer requires name attribute when applied to a collection of basic type.



Milestone 2

  • The Milestone 2 release will not be an official ASF release, but will be created as a Early Access 2 SNAPSHOT branch due to the JSR-317 terms of use restrictions. A distribution of the Early Access 2 SNAPSHOT is available here for download.


Iteration 8 (June 1 - July 3)   
 Issue Progress: 
  Key Summary Assignee Pr Status
1.
OPENJPA-1082 Validation target groups via persistence.xml or createEMF properties Map Donald Woods Major OpenOpen
2.
OPENJPA-1106 Integration tests for Bean Validation providers Donald Woods Major In ProgressIn Progress
3.
OPENJPA-1107 Provide TraversableResolver for use with Bean Validation Factory Jeremy Bauer Major OpenOpen
4.
OPENJPA-1111 Validation mode of callback should cause a PersistenceException when no provider is available Donald Woods Major ResolvedResolved
5.
OPENJPA-1112 JPA2 Query result of embeddable object can not be further updated Catalina Wei Major OpenOpen
6.
OPENJPA-1115 Finish support for delimited identifiers Unassigned Major OpenOpen
7.
OPENJPA-1113 Reflection class performance improvement Albert Lee Major ClosedClosed
8.
OPENJPA-1013 Build strictly-typed Criteria API Pinaki Poddar Major OpenOpen
9.
OPENJPA-1131 Upgrade to maven-jar-plugin-2.2 Donald Woods Minor ResolvedResolved
10.
OPENJPA-1130 Use maven-jar-plugin to create a o-p-j-tests.jar to share base TestCase classes across modules Donald Woods Major ResolvedResolved



Iteration 9 (July 6 - July 31) - Content TBD


OpenJPA 2.0 Tasks

JPA 2.0 Spec Features (based on JSR-317 03/13/2009 public draft)

Status JIRA(s) Effort Summary Area JPA 2.0 Spec Reference(s)
In Progress OPENJPA-1008 High Generate meta-model for JPA 2.0 Metamodel Ch 5
Not Started OPENJPA-1009 High Populate canonical meta-model for strictly typed Criteria Query building Metamodel Ch 5
In Progress OPENJPA-1010 High Instantiate meta-model classes for JPA 2.0 from source code annotations Metamodel Ch 5
Not Started OPENJPA-1011 High Instantiate meta-model classes for JPA 2.0 from XML descriptors Metamodel Ch 5
Not Started   High Added getParameters, getParameterValue, getParameter, getResultItem, and getResultItems methods to Query interface Typed Query 3.8.1, 3.8.5
In Progress OPENJPA-1013 High Build strictly-typed Criteria API Criteria Ch 6
Not Started OPENJPA-1014 High Build weakly-typed Criteria API Criteria Ch 6
In Progress OPENJPA-1068 High Support Bean Validation: Entity validation upon lifecycle events. Bean Validation 3.6, 3.2.9
In Progress OPENJPA-962 Medium New database object naming conventions (delimited-identifiers) General 2.13, 12.2.1.13, 12.3
Not Started   Medium Review chapter on deployment and bootstrapping contracts for updates. Persistence provider holder/resolver item is separate. General Ch 9
Not Started   Medium Added setProperty method EM 3.1.1
Not Started   Medium Added Result, ResultItem, and Parameter interfaces to javax.persistence package. Query 3.8.2, 3.8.3, 3.8.4
Not Started OPENJPA-1076 Medium PersistenceProviderResolver interface and PersistenceProviderResolverHolder class Spec API 9.3
Not Started   Medium Cacheable annotation and support for CacheGetMode and CachePutMode properties. Cache 3.7, 11.1.7, 3.7.1, 3.7.2
Not Started   Low Support vendor specific hints on EntityManager find and refresh operations EM 3.1.1
Not Started   Low EntityManagerFactory getProperties returns Map. EMF 7.4
Not Started   Low Modified getQueryBuilder to return updated criteria query builder EMF, Criteria 7.4
Not Started   Low New getMetamodel method EMF, Metamodel 7.4
Not Started   Low Added find method that accepts properties (no lock mode) EM 3.1.1
Not Started   Low New refresh method that accepts properties (no lock mode) EM 3.1.1
Not Started   Low Modified createQuery to accept updated criteria query definition EM, Criteria 3.1.1
Not Started   Low Modified getQueryBuilder to return updated criteria query builder EM, Criteria 3.1.1.
Not Started   Low Updated single_valued_path_expression definition JPQL 4.4.4
Not Started OPENJPA-1078 Low Cache mode elements added to persistence.xml Cache 3.7.1, 3.7.2, 8.3
Not Started   Low Verify cache mode properties support on find, refresh and Query Cache 3.7.2
Not Started OPENJPA-1082 Low Validation target groups via persistence.xml or createEMF properties Map Bean Validation 3.6.1.2, 8.3
Not Started   Low Cacheable attribute added to entity element in orm.xml Cache 12.2.3.3, 12.3
Not Started   Low Assert that relationships defined in a mapped superclass must be unidirectional. General 2.11.2
Not Started   Low Allow Lob, Temporal, Enumerated annotations to be applied to element collections annotations and in XML. Mapping 11.1.16, 11.1.24, 11.1.47
Not Started   Low attribute-override and association-override available from element-collection XML schema type Mapping 12.3
Not Started   Low Optional name element to UniqueConstraint annotation and corresponding XML type. Mapping 11.1.49, 12.3
Not Started   TBD Review @JoinColumn elements for behavioral changes Mapping 11.1.21
Not Started   TBD Review @OrderBy for behavioral changes Mapping 11.1.38
Not Started   TBD Review clarifications to locking modes Locking 3.4.3
Complete OPENJPA-805
OPENJPA-855
OPENJPA-856
OPENJPA-865
OPENJPA-879
OPENJPA-961
OPENJPA-967
OPENJPA-978
OPENJPA-1035
OPENJPA-1024
OPENJPA-1016
High JPQL Updates JPQL Ch. 4
Complete OPENJPA-995 High Migrate existing Criteria Query implementation as OpenJPA extension Criteria Ch 6
Complete OPENJPA-1069 Medium OrderBy annotation applied to an element collection of basic type doesn't require property or field name Mapping 11.1.38
Complete OPENJPA-1055 Medium Added MapKeyEnumerated and MapKeyTemporal annotations and XML. Mapping 11.1.30, 11.1.33, 12.3
Complete OPENJPA-937 Medium Allow use of AssociationOverrides with mapped superclass relationships. Mapping 11.1.2
Complete OPENJPA-878
OPENJPA-963
OPENJPA-964
Medium Support default query hint for query timeout EM, Query 3.8.8
Complete OPENJPA-926 Medium Support persistent access types including @Access annotation and AccessType enum and XML General 2.3, 11.1.1, 12.2.1.4, 12.2.2.4, 12.3
Complete OPENJPA-1034 Low Remove contiguous and base elements from OrderColumn annotation Mapping 11.1.39
Complete OPENJPA-1032 Low Removal and revert behavior of getNamedParameters and getPositionalParameters Query 3.8.1
Complete OPENJPA-1013 Low Added getMetamodel method EM, Metamodel 3.1.1
Complete OPENJPA-773 Low Renamed clear method to detach EM 3.1.1
Complete OPENJPA-773 Low Changed target-entity attribute to target-class in element-collection Mapping 12.3
Complete OPENJPA-773 Low Update pessimistic lock mode names Locking 3.4.4
Complete OPENJPA-878 Low Timeouts are in milliseconds. Query, Locking 3.8.8, 3.4.4.3
Complete OPENJPA-773 Low Renamed cascade CLEAR to DETACH EM 3.1.1, 3.2.6
Complete OPENJPA-1077 Low Validation-mode element support added to persistence.xml and to createEMF properties Map Bean Validation 3.6.1.1, 8.3
Complete OPENJPA-1102 Low Support application/container provided ValidatorFactory Bean Validation 3.6.2

Task list for JSR-317 10/31/2008 public draft

Other Improvements

Status JIRA Summary
Complete OPENJPA-766 Tests that currently fail should be committed to the repository
Complete OPENJPA-5 Allow compilation with JDK 6
Complete OPENJPA-1114 Bean Validation APIs should be an optional runtime dependency
In Progress OPENJPA-1113 Reflection class performance improvement

General Tasks

Status JIRA Summary
Not Started OPENJPA-837 OpenJPA does not fully support database catalogs
Not Started OPENJPA-910 Allow multiple keys for the same property to be specified at different levels
Ongoing OPENJPA-773 Upgrade to JPA 2 - umbrella task - includes updating spec API
In Progress OPENJPA-757 Map existing OpenJPA extensions to new features of JPA 2.0
In Progress OPENJPA-857 Detect and store JPA version
Not Started OPENJPA-1103 Remove early-access disclaimer from the NOTICE files once the spec is released

Powered by Atlassian Confluence (Version: 2.2.9 Build:#527 Sep 07, 2006) - Bug/feature request

Unsubscribe or edit your notifications preferences