Upgrading EMF - JPOX/JDO Plugins
- Upgrading to Teneo
- Upgrading to the 0.7.0 release
- Changes from the 0.6.5 to the 0.7.0 release
- Set the JPOX libraries for the JPOX plugin
- Regenerate package.jdo after upgrading
- Upgrade through the Update Manager: Search for upgrades... or Search for new Features...
- Changed datamodel after upgrading
Upgrading to Teneo
The Teneo plugins have different names and ids than the Elver plugins. This means that if you install Teneo plugins that they will coexist next to the installed Elver plugins. This should not be a problem but can lead to confusion because the classnames (without the package names) have stayed the same (for example JpoxDataStore is called the same in Teneo and in Elver).
There is no automatic removal of Elver plugins, this has to be done manually (see below).
Upgrading to the 0.7.0 release
To upgrade to the new release you need to do Help > Software Updates > Find and Install and then choose the option 'Search for new features to install'.
After upgrading you need to manually disable the previous version of JPOX. This can be done by going to the menu option: Help > Software Updates > Manage Configuration. Select the previous EMF - JPOX plugin version and choose disable on the right.

Changes from the 0.6.5 to the 0.7.0 release
In the 0.7.0 release many parts of the solution have been rewritten. An overview of the changes:
- JPOXHelper has been renamed to JpoxHelper, its interface has been cleaned up, introduced concept of a JpoxDataStore, see here.
- FeatureMap support without generating additional source files, see here.
- The options which can be passed to the Elver runtime have been restructured, see here.
- The previous annotations for inheritance mapping and unique have changed. see here and here.
- Added option to set all containment lists to eager loading, see here.
- The JPOXResource class is no longer used, only the JPOXResourceDAO resource should be used, see here.
Set the JPOX libraries for the JPOX plugin
If a new version of the jpox libraries is present in the Elver distribution (see the changelog) then you should also set the jpox libraries in windows>preferences to the new jpox libraries. You can find all the required libraries in the org.elver.store.jpox.runtime[version] plugin directory.
Regenerate package.jdo after upgrading
New functionality and bug fixes can result in changes in the generated package.jdo. New versions can depend on an updated package.jdo. So after upgrading it is sometimes necessary to regenerate the package.jdo file.
Upgrade through the Update Manager: Search for upgrades... or Search for new Features...
Depending on how you defined valid upgrades in windows > preferences > Install/Updates, it is possible that the 'Search for Upgrades of installed features' in the update manager will not find the updated EMF-JDO plugin. If this happens then the 'Search for new Features..' option should be chosen in the Update Manager.
After the Elver plugins has been downloaded the update manager will detect that the 'new' feature is in fact an upgrade of an already installed feature. The old-version of the feature will automatically be disabled. This is visible in the Manage Configuration function in the Help > Sofware Updates menu.
Changed datamodel after upgrading
The OR Mapper is also updated to solve issues and add functionality. This can mean that the package.jdo generated by the OR Mapper differs from one version to another. Resulting in a different database schema. When the database already exists from previous versions this can mean that the new expected database schema does not correspond with the old database schema.
JPOX will try to correct differences by adding tables and columns. However not all changes can be automatically repaired (for example missing columns which control the ordering in a EList).
The issues can be resolved by manually adding missing columns. Another way to resolve the above issue is to start again with a new empty database. JPOX will then automatically create new tables which adhere to the package.jdo
For the longer term we are considering to offer tools which will better facilitate this upgrade process. For example to allow data to be copied from the relational EMF store to a temporary XML Resource, create the new database and schema and then copy the information back.