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

Java Persistent Objects (JPOX) is designed as a heterogenous tool for storage of data, using accepted standard APIs. JPOX 1.0 supports persistence using the JDO 1 standard (JSR 0012). JPOX 1.1 additionally supports persistence using the JDO 2 standard (JSR 0243). JPOX 1.2 will additionally support persistence using the JPA 1 standard (JSR 0220).

There are 4 main aspects of persistence that users should be aware of when utilising JPOX. These are

  • Persistence Definition : the means of defining how your Java classes are to be persisted into the datastore
  • Persistence API : the programmatic API used for persistence of your objects
  • Query Language : the query language by which you can find objects due to certain criteria.
  • Datastore : the datastore you are persisting to

It is the aim of JPOX to allow use of all "Persistence Definition"s to be used with all "Persistence API"s and to be queried with all "Query Language"s. This gives you, the user, a significant flexibility in being able to pick the best parts of these 3 aspects. With respect to the datastore where the objects are persisted, the JDO API provides datastore agnostic capability, whereas JPA doesn't so you if this aspect is important to you then you should use the JDO API.

Overview

Persistence Definitions

JPOX provides support for JDO XML MetaData. It provides support for JDO annotations in JPOX 1.2 or later. It provides support for JPA XML MetaData and annotations in JPOX 1.2 or later.

Persistence APIs

JPOX provides access to the JDO persistence API for persisting Java objects (JPOX 1.0 supports JDO1, , JPOX 1.1 supports JDO1/JDO 2, and JPOX 1.2 supports JDO1/JDO2/JDO2.1). JPOX provides access to the JPA1 API in JPOX 1.2. It is hoped to provide additional interfaces in the future, including the Data Mining (JSR 73) interface.

Complex Data Access

Query Languages

JPOX currently supports querying of persisted objects using JDOQL, SQL (JPOX 1.1 or later), JPOXSQL, and JPQL (JPOX 1.2 or later). Future releases will also support MDX and XQuery. Where we feel a query language offers something we will provide for it.

Data Retrieval

Queries are usually projected in tabular form (row and column) for operational data, and projected in multidimensional format (multiple axis of data) when dealing with analytic/aggregated data.

Data Projection

Datastores

JPOX currently supports persisting of data to a large selection of Relational Database Management Systems (RDBMS), as well as to DB4O (in JPOX 1.2 or later). It is planned to extend this in the future to support various file-based storage mechanisms, as well as OLAP databases.

It is also planned to incorporate pull/push of data from/to multiple datasources in JPOX allowing a single view of the enterprise data enabling the creation of canonical model across the organization.

Data Everywhere

Capability Enhancement

JPOX has a pluggable framework, allowing extensions to its capabilities using OSGi plugins. You can utilise many available JPOX plugins when persisting your Java objects using JPOX. Moreover you can even provide your own JPOX plugins to enhance its capabilities further.