OpenJPA Logo   ASF Logo

JPA 2.1 Development Process

JPA 2.1 Roadmap

The OpenJPA roadmap and iteration detail for developing JPA 2.1 functionality is documented here . The process to be used for this development effort will be documented on this Development Process page.

Overview

JPA 2.1 has been defined by the Java Community Process under JSR-338. The final specification is dated 04/02/2013. OpenJPA needs to branch off is current JPA 2.0 efforts from trunk and is targeting its next release, OpenJPA 2.4, to be fully spec compliant with JPA 2.1.

JPA 2.1 Highlights

The latest JPA 2.1 specification includes many updates to JPA, from minor updates to major functional enhancements. Some of these updates and enhancements include:

  • Formal Stored Procedure support
  • SynchronizationType to control when to enlist with transaction
  • CDI support for Entity Listeners
  • Type Conversions (similar to OpenJPA's Externalizer)
  • Further explanation of how to return managed and unmanaged data from NativeQueries
  • JPQL updates
  • Support for TREAT (downcasting)
  • Criteria API refactoring (hopefully just internal impacts)
  • Allow use of packaged scripts: ddl-create-script, ddl-drop-script, ddl-load-script
  • Schema generation (similar to OpenJPA's capability)
  • Annotation updates: @Converter, @ForeignKey, @Index

Contributions

The JPA 2.1 Development release needs contributions in the areas of development, testing, and documentation. If you are simply interested in trying out new capabilities of JPA 2.1, contributing to the test suite is a great way to do that; while making a significant contribution to the project.

Process

  • All new features, spec related or other improvements must have an corresponding JIRA. Large items should be broken down into manageable sub-tasks. The JIRA should include design details, decision rationality, and testing information.
  • Use test driven development (write tests before code). Test driven development can be extremely beneficial for gaining an initial understanding the requirements of the feature and will help ensure that the feature is adequately tested. Too often, tests are the last thing to be written so they can end up incomplete or worse yet, forgotten. .
  • Documentation updates/additions, when necessary, must accompany new function.
  • JPA 2.1 development will be based on two week iterations (or sprints). Each iteration will include a set of new features and enhancements. Features must have accompanying tests and documentation and go through a code review. A feature must fit within the iteration period. Larger and/or complex tasks may need to be broken down such that they can be contributed as individual, consumable features.
  • A call for participation will be posted prior to the start of each iteration. An iteration plan will be composed based on who can participate and what they plan to contribute.
  • Code reviews will be conducted using the standard Commit-Then-Review (CTR) process (for OpenJPA committers), unless a pre-commit code review is specifically requested. Artifacts submitted by non-committers must be reviewed before they are committed.
Copyright © 2006,2013 The Apache Software Foundation. Licensed under Apache License 2.0.
Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.
Other names may be trademarks of their respective owners.