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

JPOX is specification driven, not just implementing specifications but also passing whatever specification compatibility (e.g TCK) there is available. The primary features of the various JPOX releases are shown below.

Specification compliance
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
JDO 1.0 TCK compliantJDO1
JDO 2.0 TCK compliantJDO2N/A
JDO 2.1 TCK compliantJDO2.1N/AN/A
JPA 1.0 TCK compliantJPA1N/AN/A
JDK required1.4 or above1.3 or above [1]1.3 or above [1]


Class Persistence
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
Byte-Code Enhancement of classesJDO1, JDO2
Byte-Code CompatibilityJDO1
JPOX Custom enhancer
Enhancement of Persistence-Aware classesJDO2
Persistent fieldsJDO2, JPA1
Persistent propertiesJDO2.1, JPA1
Annotation supportJDO2.1, JPA1


JDO Functionality
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
Application identityJDO1, JDO2
Datastore identityJDO1, JDO2
Nondurable identityJDO1, JDO2 (partial)
Flexible choice of identity generatorsJDO2
Attach/Detach of instancesJDO2
Pessimistic (datastore) transactionsJDO1, JDO2
Optimistic transactionsJDO1, JDO2
Nontransactional ReadJDO1, JDO2
Nontransactional WriteJDO1, JDO2
Retain valuesJDO1, JDO2
Restore valuesJDO1, JDO2
MultithreadedJDO1, JDO2
J2EE IntegrationJDO1, JDO2
Lifecycle listener mechanismJDO2
Level 2 CacheJDO2
Level 2 Cache pluggable


JPA Functionality
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
Persistence APIJPA1
Application identityJPA1
Flexible choice of identity generatorsJPA1
Attach/Detach of instancesJPA1
Optimistic transactionsJPA1
Callback listener mechanismJPA1


Persistable datatypes
FeatureJDO versionJPOX 1.0JPOX 1.1JPOX 1.2
Interfaces supportJDO1, JDO2
Collection supportJDO1, JDO2, JPA1
Set SupportJDO1, JDO2, JPA1
List supportJDO1, JDO2
Map supportJDO1, JDO2, JPA1
Array supportJDO1, JDO2, JPA1* (partial)
Second Class PersistenceCapable objectsJDO1, JDO2 (partial)
Spatial Type support
User-Defined Type support


Querying Capability
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
JDOQL Query LanguageJDO1, JDO2
JDOQL Single-String QueryJDO2
JDOQL Extensions
JDOQL SubqueriesJDO2.1
SQL Query LanguageJDO2, JPA1
JPQL Query LanguageJPA1
Named QueriesJDO2, JPA1


Datastore Support
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
DB4O Datastores
RDBMS Datastores
Support for RDBMS Views
Support for RDBMS Stored Procedures
Schema GenerationJDO2
Existing Schema
Read-Only/Fixed Schema


O/R Mapping Support
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
1-1 O/R mappingsJDO2, JPA1
1-N O/R mappingsJDO2, JPA1
M-N O/R mappingsJDO2, JPA1
Compound Identity RelationshipsJDO2
"Managed Relationships" (partial)
Embedded FieldsJDO2, JPA1
Serialised FieldsJDO2, JPA1
Secondary tablesJDO2, JPA1
Support for BLOB/CLOBJDO1, JDO2, JPA1


Third Party Integration
FeatureSpecJPOX 1.0JPOX 1.1JPOX 1.2
OSGi bundles[2]
Spring Framework
Tapestry
Ant
Maven1
Maven2[3]
Eclipse
NetBeans
L2 Cache : Tangosol Coherence, EHCache, OSCache, SwarmCache
DB Connection Pooling : DBCP, C3P0, Proxool
  • [1] JPOX 1.1+ released jars are built using JDK 1.5 but with JDK 1.3 compatibility since the references to JDK 1.4, 1.5 methods are restricted at runtime. JPOX itself is not compilable on JDK 1.4 or earlier since it uses some JDK 1.5 methods, and also relies on some packages (org.xml.*, etc) that were included into JDK 1.4 (though these could be included in the CLASSPATH separately).
  • [2] OSGi bundled from JPOX 1.1.2
  • [3] Maven2 supported from JPOX 1.1.7