JPOX
JPOX
 Project  |  Ver 1.1  |  Ver 1.2  |  JDO  |  JPA  |  Guides  |  Tools
1.2 | Persistence | JDO ORM | JPA ORM | Runtime | JDO Runtime | JPA Runtime | Extensions | Developer
JPOX 1.2
Plugins
JPOX : Migration between versions of JPOX

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.

Migration 1.2.1 to 1.2.2

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


Migration 1.2.0-rc-1 to 1.2.0

Moving from JPOX 1.2.0-rc-1 to 1.2.0 will involve no changes



Migration 1.2.0-beta-5 to 1.2.0-rc-1

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()


Migration 1.2.0-beta-4 to 1.2.0-beta-5

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.
Migration 1.2.0-beta-3 to 1.2.0-beta-4

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)
Migration 1.2.0-beta-2 to 1.2.0-beta-3

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.
Migration 1.2.0-beta-1 to 1.2.0-beta-2

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")
Migration 1.1.x to 1.2.0-beta-1

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