EMF Compare brings support for model comparison to the EMF framework. It allows users to determine changes that have been made to their models, identify overlaps between distinct models and merge changes that have been performed between successive versions of their models.
In many use cases, the tools and environment used to display and edit the models are tailored to the user's specific needs. Models may be edited in plain-text through grammar-based syntaxes, hierarchical trees, domain-specific graphical editors (diagrams or form-based user interfaces), ... In such a heavily customizable world, the generic support EMF Compare provides will rarely be satisfactory. Users will expect to find their familiar edition environment when reviewing and merging differences.
In addition to the end-users, the architects themselves may need comparison functionalities to review and analyze the impacts of the changes they make to the domain-specific languages or the tooling around it. EMF Compare can be used here as a test framework to help the architects in their tasks.
This talk will introduce you to the customizable aspects of the EMF Compare comparison engine and user interface, showing how we have customized EMF Compare to display Sirius diagrams and tailored them to display the differences in a variety of way to help the user understand the changes between the compared models.
Then, we'll expand on the extensibility of the framework part of EMF Compare and show how we've used it in addition to JGit to create a testing framework around JUnit to quickly develop non-regression tests centered around the comparison and merging of models.