Changelog
Gives an overview of changes in different releases over time
From 12 September 2006: for changelog and release notes see the emf website: here
Release: 0.7.2 ALPHA - 7 June 2006
- Changed source of annotations: ejb3 annotation now use ejb.elver.org, Elver specific annotation now use annotation.elver.org. For backward compatibility all ejb annotations can also still be used together with annotation.elver.org.
- The JPOX libraries have been moved to a separate plugin: org.elver.store.jpox.libraries.
- All table and column names are now in lowercase. The casing can be controlled with an option (see here).
- Cleaned up the interface for setting properties and getting the session from a HbDataStore. The pm should now be retrieved from the PersistenceManagerFactory which can be retrieved from the JpoxDataStore.
- Multiple mapped super classes in the inheritance tree were not supported, this has been fixed now.
- Unique attribute on eattributes is now used to generate a unique constraint
- Changed the format of the Elver specific Unique annotation (see here)
- Added support for annotations on EDataType (see here)
- Solved issue with support array of primitive type, this should now work. This means also that blob is now supported.
- List with primitive non-object type is now handled correctly.
- Added modest support for multiple inheritance , (see here)
- Testcases are now also run using MS Sql Server 2000/2005.
Release: 0.7.1 ALPHA - 8 May 2006
- Eclipse Menu Generate JDO: folder in which package,jdo is generated is now refreshed automatically (after popupbox is closed).
- Eclipse Menu Generate JDO: multiple ecore files can now be selected, the mapping is stored in one package.jdo file.
- Solved a bug related to use of reserved words (long, float, etc.) as feature names
- JoinColumns were not supported correctly, has been fixed, thanks to Douglas Bitting for providing the patch.
Release: 0.7.0 ALPHA - 21 April 2006
This release is a major rewrite compared to the previous release. This release is not backward compatible, mapping logic as well as interfaces have changed. An overview of the changes/new features:
- OR Mapping is now done on the basis of the ecore model (EPackages), source code is not parsed anymore, see the overview. The package.jdo is now generated in the same location as the ecore file.
- Support for ejb3 like annotations such as mapped superclass, composite id, UniqueConstraint etc. see here.
- Added support for different class loader strategies, see here.
- Solved issues related to nullability of enum fields and using enums in primary keys.
- Added option to control if the database schema is updated at startup, see here.
- Added new sections to the website: an overview, related to ejb3, options, etc.
- Upgraded to EMF 2.2 and JPOX 1.1rc1.
- Added eager loading of containment relations, is controlled by annotation, default behavior is lazy and not eager
- Tracking modification on a resource does now work with lazy loading. Before setting tracking modification to true (or add an adapter) ment that the whole resource was loaded, this is now not required anymore.
- Cut and paste in a the editor is now supported by setting the Cascade annotation, see here.
- The package.jdo can now more easily be generated programmatically, see here. This can be usefull when you want to map multiple epackages and have better control over the generation process.
- Main things which have been changed since the 0.6.5 release:
- JPOXHelper has been renamed to JpoxHelper, cleaned up the interface, 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.
Release: 0.6.5 (15 November 2005)
List of changes:
- Annotations can be used to enforce a join table also for 1:n relations, see here.
- It can now be specified using an annotation that a member is an identifier for which jpox (or the database) must generate unique values, see here.
- Solved an issue related to null-pointer exceptions when abstract types refered to eachother.
- Solved an issue which is related to types with interface="true" this issue resulted in missing model fields in the mapping file.
- Upgraded to qdox 1.6, now also jdk1.5 constructions are supported when generating a mapping file.
- Upgraded to the jpox libraries of 29 October and jdo snapshot7.
Release: 0.6.4 (24 October 2005)
List of changes:
- Enabled superclass-table inheritance mapping strategy for JPOX. Now both new-table as well as super-class table are supported. These two options have been added to the elver submenu in the Eclipse plugin. See this page on the jpox website for a description of these different inheritance mapping strategies.
- It is now possible to control the inheritance mapping for each class hierarchy by adding specific annotations in the model, see here for more information.
- The creation of a persistence manager factory can be controlled by registering a persistence manager factory creator. This allows you to override the creation of the persistence manager factory and persistence managers. See here for more information.
- A new createRegisterPersistenceManagerFactory method has been added which just expects a property map. This is more flexible than the other createRegisterPersistenceManagerFactory methods.
- Solved issue: in case a featuremap member was declared in a superclass then when the subclass is used JPOX could not find the class to use as featuremap entry for the featuremap (specified in the superclass).
- Upgraded to the latest versions of JPOX (22 October 2005). Note also upgraded the jdo jar to the latest version (23 October 2005).
- Notifications are now send out when an elist/featuremap is loaded (see here).
- Resource trackingModification is not automatically enabled anymore at load time, the client should do this explicitly. The reason for this is that tracking modification is an expensive operation because it walks the complete containment tree.
- The OR Mapping file generator will now also specify the tablename. The tablename is based on the classname of the persisted entity.
- Source code is distributed together with the jar files.
Release: 0.6.3 (10 October 2005)
List of changes:
- Solved incorrect setting of container when a type can be contained through more than one feature in another type.
- Containment of featuremap entries was not set correctly, is solved now
- Added setContainer function (to JPOXHelper): when a child object is read directly from the database its container is not set. To offer a generic workaround this function allows you to explicitly set the container of an object, (see here for more information)
- Added getCrossReferencers function, this allows one to find all the referers to an eobject in the database, (see here for more information). This can for example be used to check all delete constraints before an EObject is deleted.
Release: 0.6.2 (30 September 2005)
List of changes:
- Solved a bug related to showing incorrect top level objects in a resource. This was visible in the EMF editor because contained objects were displayed in the top of the editor. Credits to Pawel Sabina for identifying this issue and helping to solve it.
- Solved a bug related to lazy loading of elists in the editor, the bug resulted in multiple copies of one object being loaded. This would result in a dangling reference validation error when saving the resource. This is solved now. Thanks to Pawel Sabina for identifying this issue and helping to solve it.
- Added possibility of XMI import and export to the resource utility. XMI is more powerful than the XML export/import because XMI supports multiple root objects when exporting/importing. See here
- Customize the load behavior of JPOXResourceDAO (see here):
- The implementation of the JPOXResourceDAO has been changed so that the load behavior can be overridden by subclassing.
- The load behavior of the JPOXResourceDAO can also be controlled by passing queries in the url or in the ejdo file.
- Updated to the jpox libraries of 28 September 2005.
Release: 0.6.1 (28 September 2005)
List of changes:
- When you use EMF FeatureMaps then you need to regenerate your package.jdo file!
- The plugin structure has been improved, more functions have been moved to a generic plugin (org.elver.store).
- ELists/FeatureMaps are now lazily loaded. This is especially usefull in case you directly read objects through JDOQL queries. For the JPOXResourceDAO, containment elists are not lazily loaded, non-containment elists are lazily loaded. The JPOX DAO Resource is now the preferred resource implementation. References to the other standard JPOX Resource have been removed. See JPOX Resources.
- The resource utility has been slightly improved. Now it is possible to validate the contents by explicitly selecting the validate option.
Release: 0.6.0.1 (19 September 2005)
List of changes:
- Solved 'unnecessary' join tables: for non-contained 1:n relations join tables were generated. This is only required if double entries are allowed in a 1:n relation. Currently EMF does not allow double entries in ELists. The join table is therefore not required and will not be generated anymore.
- The package.jdo was incorrect in some cases, the order of a foreign-key and order element was wrong. Solved in this release.
- Solved an issue which occured when an already persisted object was added to the collection of a new object.
- Upgraded to the latest jpox libraries
Release: 0.6.0 (15 September 2005)
List of changes:
- Added Resource Utility plugin to directly open a resource and to import and export XML. The utility is very basic but will be extended in the future. See here for more information.
- Solved the following issue: in some cases feature map members where not recognized by the OR mapper and a primitive type field tag was generated instead of a field collection tag.
- Made the registration of persistence manager factories a bit more relaxed, if a pmf was already registered under a certain name then that one is returned instead of throwing an exception directly.
- Updated the troubleshooting page (added note about org.eclipse.osgi.framework.debug.Debug.DEBUG_GENERAL)
- Automatically create columns: it is possible that JPOX does not automatically create new columns, this should now work better (but not guaranteed to work perfectly).
- Many small updates to the website
- Made the solution more robust for strange lower and uppercase issues of generated java member names (EMF will for example convert a XML Schema name of VAT to a vAt java member)
- Added automatic validation of the save action of JPOX Resources, see here.
- Added a number of testcases
Release: 0.6.0 (7 September 2005)
List of changes:
- EPackages are now specifically assigned to a relational store
(a persistence manager factory). This solves the following issue: when running
different epackages in one eclipse installation then the tables for
one epackage were also created in the database of other epackages. To solve this,
the initialization of the persistency layer has changed. Summary of changes:
- The JPOXInitializer class has been removed. All initialization is done through the JPOXHelper class
- EPackage parameter has been added to the create persistency manager methods in JPOXHelper
- A number of static methods in JPOXHelper have been replaced by their INSTANCE equivalent, this is more inline with the other methods in this class.
- Added a separate page on different aspects of upgrading the plugins.
- Added support for xsd:list and xsd:union. One exception is xsd:union of enumerated types
- Updated troubleshooting page
- Solved an issue (sql Duplicate Column Exception) in the OR Mapper which occurs when a type was contained by two other types through multi-occurence relations. The OR Mapper now generates unique column names for this case.
- Solved an issue in the JPOXResourceDAO resource which occured when an object was deleted together with its contained child objects. This issue was visible in the generated EMF editor with the message in the errorlog: transient objects can not be deleted....
- Added number of testcases
- Upgraded to the JPOX libraries of 6th of September 2005
Release: 0.5.5 (30 August 2005)
List of changes:
- Added/tested support for the following XML Schema structures
(see here for details):
- Substition groups are now supported (see here)
- xsd:all, xsd:group and repeating xsd:group and repeating xsd:sequence
- ecore:featureMap, ecore:mixed on xsd:element and xsd:complexType
- different types of xsd:attributes
- Solved a bug when a featuremap was used in an editor with copy and paste actions. In this case after editing and saving a pasted document twice a classcastexception was thrown. This is now solved.
- FeatureMap support has been improved, the system now also supports feature map entries with an interface, list or java.lang.Object type.
- Added support for most (95%) ecore xml primitive types
- Disabled naming of foreign keys/unique constraints, this gave sql errors when databases and tables were created.
- Refined persistence of 'indirect' fields (suchas ..eset fields)
- Added number of testcases, tests are now also done for postgresql
- Upgraded to the latest version of JPOX
Release: 0.5.5 (23 August 2005)
List of changes:
- Changed naming of classes and tables generated for FeatureMap Entries.
- Update of EList through iterators is now possible
- Solved bug in FeatureMap which resulted in double entries in the database when moving and adding items to a FeatureMap (reported by Georgi Manev)
- Added support for xsd:any and xsd:anyType, see here for more information
- Solved smaller issues in EList and FeatureMap
- Added number of testcases, e.g. to test EList and FeatureMap in the JPOXResources (detached)
- Upgraded to the latest version of JPOX
Release: 0.5.5 (19 August 2005)
List of changes:
- Smaller changes to OR mapper: handling of unsettable attributes is improved, handling of default values is moved to the EMF layer.
- Issue solved in JPOX ResourceDAO: when an object is present in multiple Elists then the JPOXResourceDao would sometimes load multiple versions of the same database entry in memory. This is solved now.
- Support for inheritance structures has been improved and has been tested more thoroughly,
for example:
- EList defined as containing (abstract) superclass can contain subclasses
- Querying on superclass returns also subclass instances
- Mixed content (featuremap) is now supported
- There is now confirmed/tested support for the following XML Schema constructions:
- Restriction of simple type
- Extension of complextype, from simple as well as other complex type
- Inheritance using abstract supertype and extensions from complextype
- xsd:IDREFS as the type of an element (xsd:IDREF and xsd:anyURI were already supported)
- Reference (single and multi-occurence) to abstract type
- nillable facet
- mixed="true" on complex type
- Changed the website on various locations: added description about FeatureMap support, added detailed description of XML Schema support, added links to interesting web articles
- Added a number of testcase for the above new features
Release: 0.5.5 (17 August 2005)
List of changes:
- Solved issue: Eclipse crashed when the OR Mapper was run for the first time on a package. This behavior was encountered on a Linux system.
Release: 0.5.5 (16 August 2005)
List of changes:
- Added support for feature map (alpha version, currently supports xsd:choice with maxOccurs="unbounded")
- Allow hiding of concrete class names
- Added testcases (for example the books.xsd from JAXB, see here).
- Refined the OR Mapper in various locations
- Changed the distribution of the runtime layer and jpox jars to a plugin instead of list of separate jars (see the download and installation page), directions provided by Georgi Manev.
- Updated the website in various locations:
- Changed the library tutorial on a number of places (setting the resource factory, using runtime plugin, hiding implementation classes)
- Changed download and installation page (runtime layer as plugin, updating of already installed plugin is possible)
- Added page with list of xsd's which are used as test case (see here)
- Upgraded the jpox and jdo jars to their latest version (16 August 2005) see the download and installation page
Release: 0.5.0 changes 9 August 2005
The following changes were made on 9 August 2005 (to solve an issue reported by Aaron Oathout):
- Small changes to the OR Mapper plugin
- Upgraded the jpox and jdo jars to their latest version (9 August 2005) see the download and installation page
- Updated the website on various locations
It is discussed separately how to upgrade the plugin on the installation page.
Release: 0.5.0 build 08082005 of Runtime jar
Changes since 0.5.0 release:
- No dependencies anymore on EObjectImpl, EMF Objects are only required to implement the interface org.eclipse.emf.ecore.InternalEObject
- Solved bug which occured when a new EMF object is added to an already detached object. In this case the new EMF object was not detached. Only occured when using the JPOXResourceDAO. Issue reported and solution proposed by Georgi Manev.