|
Re: Customization and Team support [message #1066916 is a reply to message #1066838] |
Fri, 05 July 2013 07:02 |
|
Kamel,
There are quite a few extension points for EMF Compare, and you can take a look at the extensions we provide for UML and GMF comparisons for examples of use. The most important would be org.eclipse.emf.compare.rcp.postProcessor that will allow you to alter the result of every single phase of the comparison. This "post-processing" way of doing things has proven to be enough for our extension use cases, though if you need to replace the default behavior as a whole, this can only be done (through extension points) for the match, using the org.eclipse.emf.compare.rcp.matchEngine extension point.
The wiki is not fully written yet, and though we made sure that most of EMF Compare can be extended at will, we are still missing a lot of extension points (most extensions can only be setup programatically for now). If there are things you cannot achieve using the existing extension facilities, please elaborate on your use case and what you need in fine.
Laurent Goubet
Obeo
|
|
|
Re: Customization and Team support [message #1403699 is a reply to message #1066916] |
Fri, 25 July 2014 12:39 |
|
Veronique Blanchet Messages: 1 Registered: July 2014 |
Junior Member |
|
|
Hi,
I'm a beginner with EMF Compare. I'm also trying to customize the Diff Engine. I want first to do a comparison without taking into account the "move" difference, in order to have only "delete" and "add" difference and to get a comparison using only those two ones. Then I will maybe need to add others kind of differences (or to adapt the differences). That's why I decided to extend the DefaultDiffEngine class as written in the Developer Guide.
I found an extension point corresponding to this engine (org.eclipse.emf.compare.rcp.diffEngine) in the org.eclipse.emf.compare.rcp package and I added my extension.
But I don't understand what to do next in order to make it works. Indeed, actually when I launch it, I can just select it on the configuration menu, but it's not used for the comparison. I mean if I have a breakpoint on the class I created, it is never called.
In the developer guide, it's written that we need to write this:
Quote:A custom diff engine can then be used for your comparisons:
IDiffEngine customDiffEngine === new MyDiffEngine(...);
EMFCompare.builder().setDiffEngine(customDiffEngine).build().compare(scope);
but where are we supposed to write this ?
Thank you in advance,
Best regards,
Veronique
[Updated on: Thu, 31 July 2014 15:14] Report message to a moderator
|
|
|
Re: Customization and Team support [message #1404350 is a reply to message #1403699] |
Thu, 31 July 2014 12:57 |
|
Hi Véronique,
First, please create your own threads instead of "hijacking" another's, as this will allow for faster triaging from our side.
That being said, if what you need is only to ignore the "move" differences, you can just follow the example from the developper guide. As you can see, though this example tells you how to do this programmatically, it only requires you to have your own sub-class of DefaultDiffEngine.
Diff engines can also be provided to EMF Compare dynamically through the org.eclipse.emf.compare.rcp.diffEngine extension point. You can see how we do it for the default one in the plugin.xml file of the rcp plugin. For yours to be used, you have to make sure that you provide one with a ranking higher than the default one (higher than 100). As long as its ranking is higher than the default, and you haven't changed the preference to another engine (which disables the ranking), yours should be used.
Laurent Goubet
Obeo
|
|
|
Powered by
FUDForum. Page generated in 0.04002 seconds