JPOX
JPOX
 Project  |  Ver 1.1  |  Ver 1.2  |  JDO  |  JPA  |  Guides  |  Tools
Overview
Support
Development
History

Any software project needs to adapt to the situations surrounding it. Java Persistent Objects JDO (JPOX) is no exception.

Origin

The first Open Source JDO implementation, TriActive JDO (TJDO), was the start point for what we have now. TJDO provided (in fact still provides) a very plausible JDO implementation providing a schema-generating datastore identity capability. Up until 2003 it was the dominant OpenSource JDO implementation, developed with only 4 people. Clearly different people have different requirements and it was decided to take this forward as a separate project, which is where JPOX was born in the summer of 2003.

Objective

The initial aim for JPOX was to add the capability to define application identity, to map to existing schemas, and to provide the ability to use it within the J2EE environment. This significantly expanded the envelope of the implementation to cover all of the main deployment areas. In addition it was envisaged a future where JPOX could persist data to other datastores, in particular OLAP multidimensional databases, and maybe XML file-based datastores. We have always targetted JPOX to meet whatever specification is around for object persistence. The initial scope was the JDO 1.0.1 specification.

Progress

During the latter half of 2003 and the start of 2004 JPOX progressed through the beta testing phase, passing the JDO 1 TCK in early March 2004. The first full release of JPOX happened in July 2004, by which time JPOX had its own website and web-based forums.

Development of JPOX to encompass the JDO 2.0 specification started in July 2004, and culminated in the release of JPOX 1.1.0 in May 2006, passing the JDO 2 TCK and providing the JDO 2 "Reference Implementation". The codebase is now unrecognisable from the original TJDO code effectively having been rewritten/refactored during the last 3 years to make it much more flexible and to allow for the variety of relationships expected by todays ORM solutions.

The third phase in the development of JPOX encompassed the Java Persistence API (JPA) specification. This is a subset of the JDO2 specification and so doesnt extend JPOX in any significant way on its own. It does, however, require support for JDK 1.5 annotations which provide a convenient addition. Work on JPOX 1.2 started in June 2006. JPOX 1.2 continues to support the JDO 2.x specification(s), and all future developments to JDO provided by the Apache JDO project. JPOX 1.2 is also OSGi compliant allowing deployment into OSGi containers. The JPA1 TCK was passed at the start of Feb 2008, along with the JDO2.1 TCK. This third phase of development will conclude with the full 1.2 release.

Future Direction

JPOX is being architected to be a generic Java persistence solution, allowing OSGi plugins for all related Java technologies. JPOX plugins will increasingly become independent, using the dependency mechanism for linkage to the overall JPOX persistence platform.

We haven't marketed JPOX to any significant degree. It's spread has been down to recommendations. If you feel that others ought to be using JPOX, please pass on the word. We hope you're satisfied with the project and, if not, you're welcome to contribute to the project and push JPOX further.