HomeEMF HibernateEMF JDO/JPOXWeb App GenerationServices
 

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, Hibernate specific annotations now use hibernate.elver.org. For backward compatibility all ejb annotations can also still be used together with annotation.elver.org.
  • The hibernate jar files have been moved to a separate plugin: org.eclipse.emf.teneo.hibernate.libraries. This plugin contains the Hibernate 3.2 version. If you want to use a different Hibernate version then please replace the hibernate jars in this plugin (in the installation directory of Eclipse). In a later release this will possibly be made easier.
  • All table and column names are now in lowercase. The casing can be controlled with an option (see here).
  • EJB/Persistence annotations can be set on the EDataType, see here.
  • Cleaned up the interface for setting properties. The HbDataStore.setHibernateProperties can be used to set Hibernate specific properties, the HbDataStore.setPersistenceProperties can be used to set Elver specific persistence properties.
  • The interface for getting the session has been changed, instead of getSession you need to call getSessionFactory().openSession() on the HbDataStore.
  • Added different runtime properties (see here), for example to handle column/table names which are too long.
  • Multi level mapped super classes in the inheritance tree were not supported, this has been fixed now.
  • Solved a bug related to mapping of non-indexed (bag) relations, this issue occurs when a type has a reference to itself.
  • Solved a bug in handling of enumerates (String enumerates were stored as int)
  • Unique attribute on eattributes is now used to generate a unique constraint
  • Solved a bug related to handling of non-unique, non-indexed, one-to-many relations
  • Added modest support for multiple inheritance (see here)
  • Added/changed support for the following annotations:
    • Added secondary table(s), embedded id and lob, (see here)
    • Added idbag
    • Added type annotation on EDataType to support UserType
    • Added columns (multiple) annotation
    • Added transient annotation on EClass level (see here).
    • Changed the format of the Elver specific Indexed and Unique annotation (see here)
  • Testcases are now also run using MS Sql Server 2000/2005.
  • Default cacheprovider has been set to org.hibernate.cache.HashtableCacheProvider, because of ehcache issues which occur when using ehcache with the default values (and hibernate 3.2), see here. You can override this default setting by setting the hibernate.cache.provider_class property with the cache provider class you want to use.

Release: 0.7.1 ALPHA - 8 May 2006

  • EList (or multiplicity unbounded) is supported for Dynamic EMF persistency.
  • Added support for Qualifying EClass names (based on an option) (see here).
  • Added Eclipse menu option to generate hibernate mapping file, the mapping file can be used instead of automatic mapping (see here).
  • Solved a mapping bug which occurs when an id and column annotation are combined, thanks to Douglas Bitting for analysing and reporting this issue.
  • Added support for PrimaryKeyJoinColumn for Hibernate, PrimaryKeyJoinColumn is translated to a one-to-one with constrained="true".
  • Added automatic escaping of table names and column names of primitive types, join table names are not automatically escaped. This should be done manually by adding a JoinTable annotation (see here).
  • JoinColumns were not supported correctly, has been fixed, thanks to Douglas Bitting for providing the patch.
  • Added option to control the name of the automatically created version and id columns (see here).
  • Added support for xsd:list

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.
  • Automatic runtime creation of mapping, no intermediate hibernate.hbm.xml required anymore.
  • Support for ejb3 like annotations such as mapped superclass, composite id, UniqueConstraint etc. see here.
  • Support for dynamic emf (with limitations though), see here.
  • No extra ESet columns: before for each primitive type efeature an additional ESet column was created. From this release this is not done anymore.
  • 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, dynamic EMF, etc.
  • Upgraded to EMF 2.2 and Hibernate 3.1.3.
  • 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.
  • Main things which have been changed since the 0.3.* release:
    • HQL queries should now use EClass names and EFeature names instead of java class names/members. See the tutorials on this website.
    • Cleaned up the HibernateHelper interface, renamed HibernateHelper to HbHelper, introduced concept of a HbDataStore, see here.
    • Replaced the Configuration Factory with a different more flexible approach, see here.
    • FeatureMap support without generating additional source files, see here.
    • The options which can be passed to the mapper and Elver runtime have been restructured, see here.
    • The previous annotations for inheritance mapping, indexed or unique have changed. see here and here.
    • Added option to set all containment lists to eager loading, see here.

Release: 0.3.2 ALPHA - 15 November 2005

  • New webpage which describes different topics related to mapping of associations/relations, see here.
  • Added support for non-indexed relations in the database. EMF only supports indexed relations, however indexing of a relation is often not required and gives a performance penalty. It is now possible to specify with annotations that specific relations should not be indexed, see here.
  • The non-indexed annotations can be used for nm relations also, this allows non-indexed nm relations to be persisted using one join table. See here.
  • Annotations can be used to force a join table also for 1:n relations, see here.
  • Embedded types are now supported by tagging the embedded types with an annotation, see here.
  • It can now be specified, using an annotation, that a member is an identifier for which Hibernate (or the database) must generate unique values, see here.
  • Upgraded to qdox 1.6, now also jdk1.5 constructions are supported when generating hibernate mapping file.
  • 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.

Release: 0.3.1 ALPHA - 24 October 2005

  • Now both table-per-classhierarchy and table-per-subclass inheritance mapping is supported. These two inheritance mapping strategies are present in the elver submenu in the Eclipse plugin. See here for more information.
  • It is now possible to control the inheritance mapping separately for each class hierarchy by adding specific annotations in the model, see here for more information.
  • The mapping logic has been changed, now only implementation classes are present in the mapping file, interfaces are supported through Hibernate implicit polymorphism. See here for more information on why this approach is chosen.
  • XML Schema substitution group support has been added.
  • It is now possible to register a HibernateConfigurationFactory, this allows the customization of the creation of SessionFactories and other Hibernate configuration settings. See here for more information.
  • A new createRegisterSessionFactory method has been made available. This method just expects a property bag, this allows more flexible configuration of the SessionFactory (for example to specify a datasource instead of connection information).
  • The container field in the database has been changed from a binary field to a varchar field. See here for more information.
  • Upgraded to the latest Hibernate release: 3.1rc2.
  • Notifications are now dispatched when an elist/featuremap is loaded (see here), Hibernate now uses the property setters (with notifications) to set retrieved values from the db in the EMF object, a future release will add an option to disable notifications during load time.
  • 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.
  • Solved the following issues:
    • In some cases a session was not disconnected with ELists in combination with HibernateResource.
    • In case of a deeper inheritance structure the econtainer fields/columns were not correctly defined in tables. This resulted in low-level sql errors (incorrect type for getInt().... or something similar).
    • The toString method of an EList loaded the elist, in Hibernate this resulted in concurrent modification errors in logging code. The decision is made that toString is not 'important' enough to load a elist.
  • Source code is distributed together with the jar files.

Release: 0.3.0 ALPHA - 10 October 2005

  • Solved issue: for many-to-many combined with subclassing: an incorrect not-null attribute was placed in the many-to-many tag.
  • Added support for a number of additional XML Schema constructions: mixed, restriction, extension, etc. Many XML Schema constructions are now supported, see here.
  • Added getCrossReferencer function. This allows you to retrieve (from the database) all objects which refer to a specific eobject. This function can for example be used to check (and report) all delete constraints before an object is deleted, see here.
  • Upgraded to Hibernate3.1rc1, for this release it is required to upgrade to the Hibernate3.1rc1 release, the Hibernate libraries are all present in the org.eclipse.emf.teneo.hibernate.runtime plugin. Note that in rc1 the methods session.reconnect/disconnect have been deprecated.
  • Restructured the Tutorial & Information part of the website.

Release: 0.2.2 ALPHA - 30 September 2005

  • Support for many-to-many (mn) relations has been added, is still very alpha but can be tried (see here for more information).
  • 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.
  • It is now possible to select multiple packages when generating the hibernate.hbm.xml. Only one hibernate.hbm.xml file will be generated with all the mappings, this file is placed in the first selected package. Selecting multiple packages is only required if there are relations between classes of these packages. Note that this feature has not been tested thoroughly.
  • Customize the load behavior of HibernateResource (see here):
    • The implementation of the HibernateResource has been changed so that the load behavior can easily be overridden by subclassing.
    • The load behavior of the HibernateResource can also be controlled by passing queries in the url or in the ehb file.
  • 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.

Release: 0.2.1 ALPHA - 28 September 2005

  • FeatureMap support has been added, see here for more information.
  • Container relation is now also stored in the child in the relation. This means that the eContainer and eContainerFeatureID is set in the EObject also when the EObject is read directly from the database.
  • The resource utility has been improved. Now it is possible to validate the contents by explicitly selecting the validate option.
  • The plugin structure has been improved, more functions have been moved to a generic plugin (org.eclipse.emf.teneo).

Release: 0.2.0.1 ALPHA - 19 September 2005

  • Solved a very visible bug which resulted in an error in the editor. This error had the following symptoms, only part of the data is persisted and the following message is displayed in the console: not-null property references a null or transient value.
  • Updated the website on various locations
  • Solved an issue which resulted in class not found exceptions in the runtime enhancement by cglib when starting eclipse with an open EMF editor

To make use of the above changes the hibernate.hbm.xml has to be regenerated.

First Release: 0.2.0 ALPHA was on 15 September 2005