Skip to main content
Jump to: navigation, search

EMF Compare/Release Review/1.3.1

< EMF Compare
Revision as of 10:45, 30 May 2012 by (Talk | contribs) (Bugzilla)

Juno Release Review - EMF Compare 1.3

Laurent Goubet (

Release Review : May 30, 2012

Communication Channel : eclipse.modeling.emf newsgroup

Process Documentation :

Project Plan :

1.3 Release Highlights

New and noteworthy


Slight improvement of the matching phase cost, improving the overall time of comparison. A number of memory leaks were tracked and hunted down for this release.


Major imrpovement of the ordering handling throughout EMF Compare : merging differences on ordering, merging addition and removals that change the ordering, detecting and merging ordering differences on attribute values...


Huge improvements on the merging process of EMF Compare, adding thousands of unit tests and fixing the failing corner cases.

Filtering and Grouping

Adding the possibility to filter and group diffs together in the comparison UI, along with the corresponding extension points.

Diagram Comparison

Adding graphical comparison (match, diff and merge) capabilities as well as comparison editors for integration with GMF and EcoreTools.

SYSML Comparison

Adding a specific comparison engine for SYSML models.

Quality of APIs

The component lead certifies that the requirements for Eclipse Quality APIs have been met for this release. All non-API code is in "internal" packages.

End of Life Issues

EMF Compare 2.0 is in the work and is what will be released with Kepler next year. There might be more releases in the 1.x stream, but they will only be meant for maintenance. Version 2.0 is a major overhaul of EMF Compare which aims at fixing the architectural and technical limitations induced by the 1.x implementation.

As such, all APIs provided by 1.3 are to be considered obsolete and none will be maintained in its current state with 2.0, be it core or peripheral. The new APIs provided with 2.0 are developed in order to be simpler and more intuitive. We will provide all possible help in order to bridge the gap between the two streams' APIs and help users migrate to the new and improved Compare.

All functionalities and extensions provided by EMF Compare 1.3 will also be featured by EMF Compare 2.0. The re-architecturation only aims at fixing limitations without removing functionality.

As mentionned in the EMF Compare 1.2 release review, the EPatch (all plugins with namespace*) have been removed from the code base. Adopters can use the MPatch plugins instead.

Committer Diversity

4 Committers from Obeo, and 1 inactive committer from Itemis.

IP Issues

The about files and use licenses are in place as per the Guidelines to Legal Documentation.

CQ 5460 - Google Collections Version: 1.0 CQ 6518 - Guava Version: 10.0.1

All other contributions (code, documentation, images, etc) have been committed by individuals who are either Members of the Foundation, or have signed the appropriate Committer Agreement. In either case, these are individuals who have signed, and are abiding by, the Eclipse IP Policy. The other contributions of the IP log are not significant or are written 100% by employees of the same employer (Obeo) as the Submitting Committer (

All contribution Questionnaires have been completed.

The "provider" field of each plugin is set to "Eclipse Modeling Project".

The "copyright" field of each plugin is set to the copyright owner.

Any third-party logos or trademarks included in the distribution (icons, logos, etc) have been licensed under the EPL.

The EMF Compare IP log is located at

Non-Code Aspects

Unit tests

5107 unit tests launched on every build

Code coverage is about:

  • 75 % of the core
  • 63 % of the differencing plugin
  • 60 % of the matching plugin

Code quality

Checkstyle activated on each distinct plug-in.

Eclemma used on a regular basis to improve test coverage.

Yourkit used on a regular basis to improve performances.

Javadoc represents more than 50% of the Java source code.

An Ohloh page is available at


Metamodel definitions and interfaces are considered APIs.

Commitment to provide stand-alone diff and match features (Jars that can be used without Eclipse with minimal to no dependencies towards eclipse Jars).

Non-API classes are separated from the exposed API through an "internal" namespace.

Non-API packages are exported with an internal visibility so that they remain visible but with a discouraged access warning.

API Tooling is activated on all plugins to mark exceptions within the exposed API.


EMF Compare documentation and tutorials are available from both the Eclipse wiki and the integrated Eclipse help (Menu Help > Help Contents).

User tutorials

  • Setting up and using the EMF Compare framework
  • Comparing and merging XML files

Developer tutorials

  • Architecture overview
  • Adding new actions to the export menu
  • Adapting the comparison process
  • Using the compare services



blocker 1 0 0 15 16
critical 1 1 0 17 19
major 8 6 0 46 60
normal 30 10 0 203 243
minor 4 0 0 9 13
enhancement 13 4 0 44 61
TOTAL 57 21 0 334 412

Note : these figures are subject to change as the whole team is in the process of fixing bugs until the final release (this snapshot has been taken on Mai 30, 2012)‏

Back to the top