Community
Participate
Working Groups
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.
The current implementation is here : https://github.com/cbrun/emf.compare/tree/experimental_cross_referencer_361534
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.
We'll need the same kind of enhancement for what has been done in EMF Compare 2 wrt the Team integration.