Eclipse EMF Compare 2.0.0

Release Date
Deliverables

The release deliverables have the same form as is found in most Eclipse projects. Namely:

  • EMF Compare source code release, available as versions tagged with "R2_0" in the project's GIT repository.
  • EMF Compare SDK, which includes runtime, sources, examples, and documentation, and is available as a download or on the update site.
  • EMF Compare binary distribution, available as a download or on the update site.
Compatibility

EMF Compare 2.0 is a full overhaul of the project, including its design and architecture.

As such, the project's API is not compatible with its previous 1.* versions. A migration guide will be provided in order to ease the adoption effort to this new version.

EMF Compare is developped with and targets the following projects :

  • Eclipse Platform SDK version 4.2
  • EMF Core 2.8

The ultimate EMF Compare release will be compatible with the released version of its dependencies and will publish binary and source compatibilities with migration guides on subsequent releases.

Internationalization

The Eclipse Platform is designed as the basis for internationalized products. The user interface elements provided by the Eclipse SDK components, including dialogs and error messages, are externalized.

The English strings are provided as the default resource bundles.

Similarly, the EMF Compare project will externalize all its user interface elements, provide English strings for them in its default bundles, and localize a subset of the locales offered by the Platform.

The download page will provide the details as they become available.

Target Environments

In order to remain current, each Eclipse release targets reasonably current versions of the underlying operating environments. The EMF Compare project depends upon on the Platform,which is mostly "pure" Java™.The 4.2 release of the Eclipse Platform Project is written and compiled against version 1.5 of the Java Platform APIs, and targeted to run on version 1.5 of the Java Runtime Environment, Standard Edition. EMF Compare rely on EMF Core which is written and compiled against version 1.5 of the Java Platform APIs., EMF Compare relies on Java 5.

Eclipse Platform SDK 4.2 will be tested and validated on a number of reference platforms.

EMF Compare will be tested and validated against a subset of those listed for the platform.



Given that there is no operating system dependent code in EMF Compare, it's expected that EMF Compare will work anywhere the Eclipse Platform does.

Themes

Architecture Overhaul

EMF Compare 1.* presents limitations that cannot be worked around in order to fix some of the problems identified with the project : merging, scoping, memory performance...

Furthermore, this version of EMF Compare proposed a somewhat complex API to its clients and we cannot easily re-design this to ease the project's use.

One of the main goals of EMF Compare 2 is to do a complete overhaul of the project's architecture in order to lift these limitations and clarify the API we provide to our adopters.

Among other changes, the core model of EMF Compare will be simplified for clarity, and the main interfaces to launch comparisons and merges of two or three models will be made less convoluted.

Support for Large models

Though this was also one of the priorities of the 1.3 release that shipped along with the Juno release train, this is one of the points for which we had to make compromises in order to cope with the aforementioned limitations of the 1.* stream.

EMF Compare 1.3.0 did propose a lot of improvements on the scalability front, but we could not ensure scalability for millions of elements as can be seen in most "real-life" models used by our adopters in production.

EMF Compare 2.0 will provide the mandatory architecture and API changes required for the project to handle such a scale of input models. Namely, it will propose a "scope" feature that will be fully customizable so that the subsequent version of EMF Compare, 2.1, can provide the fragmented scope that will be able to handle extremely large input models. In short, EMF Compare will be able to function with time and memory footprints dependent on the number of actual differences instead of being dependent on the input models' size.

Integration with the Eclipse UI

EMF Compare 1 presented a user interface mimicking the standard Eclipse compare UI, but which was not really integrated with it : folder comparison was not using EMF Compare to show structural differences, the viewers were our own, the displayed elements weren't compatible with what Eclipse Compare was expecting...

EMF Compare 2 is now deeply integrated with Eclipse Compare, reusing its API in each and every possible means. This means that the icons will be the exact same as the standard "text" comparisons, the behavior will be closer to Eclipse compare (notably on folder comparisons and viewer switching)...

Performance Enhancements

Some performance bottlenecks in EMF Compare 1.3 have been identified yet cannot be solved without fully re-thinking the comparison process. EMF Compare 2.0 will provide these enhancements and will be faster than the 1.* stream even without the aforementioned changes that are planned for version 2.1.