Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EMF Compare/UML Compare"

Line 1: Line 1:
 
The primary goal of this section is to provide technical specification of the UML Comparison engine. This engine will provide support of UML specific concepts and operations.
 
The primary goal of this section is to provide technical specification of the UML Comparison engine. This engine will provide support of UML specific concepts and operations.
 +
 +
= Overview =
 +
 +
There are two ways of implementing UML Compare engine:
 +
* Use the provided extension mechanism and override the visit() method to implement UML specific difference semantic
 +
* Implement our own Diff/Match Engine (or override Generic Diff/Mathc engine if suited) to implement specific diff detection.
 +
 +
We now detail the two options, their pros and cons, and finally provide our choosen solution
 +
 +
== Builtin extension mechanism ==
 +
 +
== Implements specific Diff/Match engine ==
 +
 +
The shame is that (from our comprehension), the extension mechanism does not work (we will explain that hereafter) and even if it could be made working by some fixes, it does not scale well in essence.
 +
 +
*Suggestion*
 +
 +
Make the *AbstractDiffExtension#visit()* method deprecated in EMF Compare 1.2 and remove it from 2.0
 +
 +
The GenericXXXEngine (where XXX is Match or Diff) implementations provide useful base implementation of EMF model comparison. Then we will
  
 
= UML Compare match engine =
 
= UML Compare match engine =
 +
 +
There is no need to subclass
  
 
= UML Compare diff engine =
 
= UML Compare diff engine =

Revision as of 04:08, 14 April 2011

The primary goal of this section is to provide technical specification of the UML Comparison engine. This engine will provide support of UML specific concepts and operations.

Overview

There are two ways of implementing UML Compare engine:

  • Use the provided extension mechanism and override the visit() method to implement UML specific difference semantic
  • Implement our own Diff/Match Engine (or override Generic Diff/Mathc engine if suited) to implement specific diff detection.

We now detail the two options, their pros and cons, and finally provide our choosen solution

Builtin extension mechanism

Implements specific Diff/Match engine

The shame is that (from our comprehension), the extension mechanism does not work (we will explain that hereafter) and even if it could be made working by some fixes, it does not scale well in essence.

  • Suggestion*

Make the *AbstractDiffExtension#visit()* method deprecated in EMF Compare 1.2 and remove it from 2.0

The GenericXXXEngine (where XXX is Match or Diff) implementations provide useful base implementation of EMF model comparison. Then we will

UML Compare match engine

There is no need to subclass

UML Compare diff engine

Profile / Stereotype support

Testing support

Back to the top