|
JPOX 1.2 extends on the stability provided by JPOX 1.1 and enhances the capabilities further.
All JPOX 1.1 and 1.2 versions are checked regularly against the JDO2 TCK, meaning that JPOX has reached a level
of stability in terms of functionality. Occasionally, due to unknown bugs, or due to new functionality being
introduced we need to change some aspects of JPOX. As a result sometimes users will have to make some changes
to move between versions of JPOX. We aim to keep this to a minimum.
Moving from JPOX 1.2.1 to 1.2.2 will involve the following changes
- The persistence properties specification process has changed when used with J2EE/Spring.
People using J2EE/Spring should use a persistence.xml file to define their
properties, avoiding the use of setters/getters. Means that the JPOX code can be much
more flexible and maintainable.
- The persistence property org.jpox.connectionPoolingConfigurationFile has been
removed and the persistence properties
org.jpox.connectionPool.maxIdle,
org.jpox.connectionPool.minIdle,
org.jpox.connectionPool.maxActive,
org.jpox.connectionPool.maxWait,
org.jpox.connectionPool.maxStatements,
org.jpox.connectionPool.maxPoolSize,
org.jpox.connectionPool.minPoolSize,
org.jpox.connectionPool.initialPoolSize,
org.jpox.connectionPool.maxConnections,
org.jpox.connectionPool.testSQL are added. Please refer to
Connection Pooling for details.
- Anyone with their own Java type plugins will need to update them due to JPOX internal
package renamings. org.jpox.store.mapping is now org.jpox.store.mapped.mapping
Moving from JPOX 1.2.0-rc-1 to 1.2.0 will involve no changes
Moving from JPOX 1.2.0-beta-5 to 1.2.0-rc-1 will involve the following issues
- Some PMF property and query extensions have been renamed
- org.jpox.rdbms.jdoql.useInnerJoinsOnly is now
org.jpox.rdbms.jdoql.joinType with valid values of "INNER" and "LEFT OUTER"
- org.jpox.query.fetchDirection is now
org.jpox.rdbms.query.fetchDirection
- org.jpox.query.allowAllSQLStatements is now
org.jpox.rdbms.sql.allowAllSQLStatements
- org.jpox.store.classAdditionMaxRetries is now
org.jpox.rdbms.classAdditionMaxRetries
- org.jpox.query.fetchSize is now removed since it is superceded by
FetchPlan.setFetchSize()
Moving from JPOX 1.2.0-beta-4 to 1.2.0-beta-5 will involve the following issues
- JPOX PMF has changed to "org.jpox.jdo.JDOPersistenceManagerFactory". The old value
of "org.jpox.PersistenceManagerFactoryImpl" is still valid.
- JPOX JCA has changed to "org.jpox.jdo.connector.ManagedConnectionFactoryImpl". The old value
of "org.jpox.resource.ManagedConnectionFactoryImpl" is no longer valid.
- JPOX JCA has changed to "org.jpox.jdo.connector.PersistenceManagerFactoryImpl". The old value
of "org.jpox.resource.PersistenceManagerFactoryImpl" is no longer valid.
- JPOX JCA has changed to "org.jpox.jdo.connector.PersistenceManagerImpl". The old value
of "org.jpox.resource.PersistenceManagerImpl" is no longer valid.
- JPOX persistence to RDBMS datastores is now stored in "jpox-rdbms-{version}.jar"
which is now required along with "jpox-core"
- @Implements is removed and <implements> is deprecated in JDO2.1
- The default JPOX enhancer now uses ASM instead of BCEL. If you want to use BCEL
you should specify the enhancer input parameter "enhancerName" as "bcel". ASM is more
maintained than BCEL, provides full support for JDK1.5+ features and is smaller
and faster.
- Added log categories "JPOX.Connection", "JPOX.Datastore", "JPOX.Datastore.Schema",
"JPOX.Datastore.Persist", "JPOX.Datastore.Retrieve".
Removed log categories "JPOX.RDBMS.*", "JPOX.DB4O.*"
- In all previous JPOX releases when using value-map and with subclasses with tables of
their own a discriminator was created in the subclass table even though it was also
present in the superclass table. This is now changed to just create one in the superclass
table. Please set the PMF property "org.jpox.rdbms.discriminatorPerSubclassTable"
to "true" if you want to use existing tables. Alternatively drop the discriminator
column from your existing tables (subclasses), leaving it just in the superclass table.
- Now that JPOX supports multiple types of datastores, the PMF property
"org.jpox.storeManagerType" can be set to "rdbms" or "db4o" to locate the correct
StoreManager to use.
Moving from JPOX 1.2.0-beta-3 to 1.2.0-beta-4 will involve the following issues
- More JDO2.1 annotations have changed in particular @Field/@Property/@FetchField are removed and
@Persistent added. Please consult the docs for more details
- Persistence property "org.jpox.delayDatastoreOperationsEnabled" to
"org.jpox.datastoreTransactionDelayOperations"
- Enhancer Ant task renamed "jdoFileSuffixes" to be "fileSuffixes"
- The helper method "getObjectState" of org.jpox.jdo.JPOXJDOHelper has been renamed to
"getObjectStateAsString" (to avoid confusion with a forthcoming JDOHelper method)
Moving from JPOX 1.2.0-beta-2 to 1.2.0-beta-3 will involve the following issues
- PMF property "org.jpox.rdbms.foreignKeyCreateMode" is renamed to
"org.jpox.rdbms.constraintCreateMode" and has possible values of JPOX (default) and JDO2
- Any user-provided SCO container implementations will have to be changed to implement
the org.jpox.sco.SCOContainer "flush" method to support optimistic transaction
container semantics.
- JDO2 annotations are now part of Apache JDO so get an updated jdo2.jar for these.
- Several JDO2.1 annotations have changed. Please consult the docs for more details
- JPOX's internal classes org.jpox.store.OID and org.jpox.store.OIDImpl moved to org.jpox.identity.OID and org.jpox.identity.OIDImpl respectively.
Moving from JPOX 1.2.0-beta-1 to 1.2.0-beta-2 will involve the following issues
- SCO wrappers for Collections/Maps now have simplified requirements meaning that any user-provided SCO
wrappers for Collection/Map types can likely have code removed.
- The default JDBC type for fields of type Character/char has been changed for Oracle. It was previously
"NUMERIC" which is contrary to the JDO2 spec which says that it should be "CHAR". This is now corrected
but anyone who relies on an existing table with "NUMERIC" columns mapped to a Character/char field will
have to add jdbc-type="NUMERIC" to the fields MetaData
- java.lang.Number is now mapped (by default) using the equivalent column type to store a BigDecimal. It
previously attempted to serialise the field.
- JDO2 annotations have changed packages to javax.jdo.annotations and have had some changes.
- org.jpox.store.rdbms.poid.SequenceTablePoidManager is now org.jpox.store.rdbms.poid.TablePoidManager
- The JPOX PMF extension "org.jpox.rdbms.dateTimezone" has been removed. It is replaced with the
JDO2.1 standard "javax.jdo.option.ServerTimeZoneID" and has a default of the same TimeZone as the
JVM that you are running under (previously was defaulting to UTC). If you want to have the same
behaviour with JPOX 1.1 you need to set it to "UTC"
- JPOX "Core" jar is now called "jpox-core-{version}.jar".
- JPOX "JCA" rar is now called "jpox-jca-{version}.rar".
- JPOX "DB4O" is now split off into its own plugin ("jpox-db4o-{version}.jar")
Moving from JPOX 1.1.x to 1.2.0-beta-1 will involve the following issues
- Some JPOX logging categories have changed since we now support multiple persistence APIs and multiple
datastores, and so names have been made either more generic, or specific to a particular feature
- The helper class org.jpox.JPOXHelper has been renamed to be org.jpox.jdo.JPOXJDOHelper
- Some JPOX extension PMF properties have changed their names slightly to better align with JPOX
supporting multiple types of datastores in 1.2. Please check the
Persistence Properties for details of the supported names.
- Some JPOX query extension names have been renamed to better represent them being for RDBMS datastores.
Please check the docs for full details
- The API interface to JPOX SchemaTool has changed to allow it to be
used in the new environments of having a "persistence-unit". If you use the SchemaTool API please check
the docs for the new API
|