Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 361534

Summary: Resources Level cross referencer
Product: [Modeling] EMFCompare Reporter: Cedric Brun <cedric.brun>
Component: CoreAssignee: EMF Compare <emf.compare-inbox>
Status: NEW --- QA Contact:
Severity: normal    
Priority: P3 CC: laurent.goubet
Version: 1.3   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:

Description Cedric Brun CLA 2011-10-20 08:38:15 EDT
So far the logical model support in EMF compare is using a somewhat hard-coded logic to look for models with inverses references to the selected one : going to the container, browsing it's content and finding cross references. 

This works well for many common use cases (like having diagrams in the same directory as models) but is not perfect. 

I started to work on a Resources Level Cross referencer coupled to a workspace listener so that any subsequent call to this cross referencer (except the first one) would quickly give a result. 

This ticket is a placeholder for discussion about this new api and feature.
Comment 1 Cedric Brun CLA 2011-10-20 11:11:07 EDT
The current implementation is here : https://github.com/cbrun/emf.compare/tree/experimental_cross_referencer_361534
Comment 2 Cedric Brun CLA 2012-01-18 12:11:04 EST
I pushed a few commits.

XMI fast loading support now uses a Sax Parser so that we don't have to
deal with encoding. 
Provided a builder API to configure which content-types or file
extension to crawl.

I did test performances on a large workspace with thousands of models.
The XMI-fast mode takes a few seconds to initialize and subsequent calls
are instantaneous (yeah !)

Using content-types makes things slower during the initialization (file
extensions are faster to check !)

Non-XMI models are supposed to work but are not tested. Loading those is, at the end of the day, more complex as it requires to have the corresponding metamodel registered and some scenarios could lead to loading linked models during the processing which should make the whole thing fail.

Next step : testing this with Eclipse's CVS and EGIT integration.
Comment 3 Laurent Goubet CLA 2013-01-23 04:36:38 EST
We'll need the same kind of enhancement for what has been done in EMF Compare 2 wrt the Team integration.