|
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.
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| JDO 1.0 TCK compliant | JDO1 |  |  |  | | JDO 2.0 TCK compliant | JDO2 | N/A |  |  | | JDO 2.1 TCK compliant | JDO2.1 | N/A | N/A |  | | JPA 1.0 TCK compliant | JPA1 | N/A | N/A |  | | JDK required | | 1.4 or above | 1.3 or above [1] | 1.3 or above [1] |
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| Byte-Code Enhancement of classes | JDO1, JDO2 |  |  |  | | Byte-Code Compatibility | JDO1 |  |  |  | | JPOX Custom enhancer | |  |  |  | | Enhancement of Persistence-Aware classes | JDO2 | |  |  | | Persistent fields | JDO2, JPA1 |  |  |  | | Persistent properties | JDO2.1, JPA1 | | |  | | Annotation support | JDO2.1, JPA1 | | |  |
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| Application identity | JDO1, JDO2 |  |  |  | | Datastore identity | JDO1, JDO2 |  |  |  | | Nondurable identity | JDO1, JDO2 | | | (partial) | | Flexible choice of identity generators | JDO2 |  |  |  | | Attach/Detach of instances | JDO2 | |  |  | | Pessimistic (datastore) transactions | JDO1, JDO2 |  |  |  | | Optimistic transactions | JDO1, JDO2 |  |  |  | | Nontransactional Read | JDO1, JDO2 |  |  |  | | Nontransactional Write | JDO1, JDO2 | | |  | | Retain values | JDO1, JDO2 |  |  |  | | Restore values | JDO1, JDO2 |  |  |  | | Multithreaded | JDO1, JDO2 |  |  |  | | J2EE Integration | JDO1, JDO2 |  |  |  | | Lifecycle listener mechanism | JDO2 | |  |  | | Level 2 Cache | JDO2 | |  |  | | Level 2 Cache pluggable | | |  |  |
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| Persistence API | JPA1 | | |  | | Application identity | JPA1 | | |  | | Flexible choice of identity generators | JPA1 | | |  | | Attach/Detach of instances | JPA1 | | |  | | Optimistic transactions | JPA1 | | |  | | Callback listener mechanism | JPA1 | | |  |
| Feature | JDO version | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| Interfaces support | JDO1, JDO2 |  |  |  | | Collection support | JDO1, JDO2, JPA1 |  |  |  | | Set Support | JDO1, JDO2, JPA1 |  |  |  | | List support | JDO1, JDO2 |  |  |  | | Map support | JDO1, JDO2, JPA1 |  |  |  | | Array support | JDO1, JDO2, JPA1* | (partial) |  |  | | Second Class PersistenceCapable objects | JDO1, JDO2 | (partial) |  |  | | Spatial Type support | | | |  | | User-Defined Type support | | |  |  |
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| JDOQL Query Language | JDO1, JDO2 |  |  |  | | JDOQL Single-String Query | JDO2 | |  |  | | JDOQL Extensions | | |  |  | | JDOQL Subqueries | JDO2.1 | | |  | | SQL Query Language | JDO2, JPA1 |  |  |  | | JPQL Query Language | JPA1 | | |  | | Named Queries | JDO2, JPA1 | |  |  |
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| DB4O Datastores | | | |  | | RDBMS Datastores | |  |  |  | | Support for RDBMS Views | |  |  |  | | Support for RDBMS Stored Procedures | | |  |  | | Schema Generation | JDO2 |  |  |  | | Existing Schema | |  |  |  | | Read-Only/Fixed Schema | | |  |  |
| Feature | Spec | JPOX 1.0 | JPOX 1.1 | JPOX 1.2 |
|---|
| 1-1 O/R mappings | JDO2, JPA1 |  |  |  | | 1-N O/R mappings | JDO2, JPA1 |  |  |  | | M-N O/R mappings | JDO2, JPA1 |  |  |  | | Compound Identity Relationships | JDO2 | |  |  | | "Managed Relationships" | | | (partial) |  | | Embedded Fields | JDO2, JPA1 | |  |  | | Serialised Fields | JDO2, JPA1 | |  |  | | Secondary tables | JDO2, JPA1 | |  |  | | Support for BLOB/CLOB | JDO1, JDO2, JPA1 |  |  |  |
- [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
|