[443330] Improves URI handling.

The resolvers are now able to handle "platform:/plugin" URI correctly.

Bug:443330
Change-Id: Id8e339c8afcbf753e9fdc384281ad054032f974a
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
[443330] Avoid getting a "Profile version change" error.

Previously in order to check that the version of a profile had not
change the program was using URI comparison in order to compare that the
EPackage pointed by the two URI were identical.  In some case, when the
profile was referenced using PATHMAP, it happens that the uri comparison
fail whereas the to uri point to the same object (One of the uri was
referencing the object using a pathmap whereas the other was using the
resolved uri). Normalizing uris before comparison corrects this problem.

Bug: 443330
Change-Id: I046dad5edf68aa9a59dbe347a8302ab91b49357e
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
[443330] Load UML static profile using path map

Improves the UMLLoadOnDemandPolicy in order to load static profile
referenced by a URI using pathmap. The previous implementation did not
resolve the URI using pathmap, it implies some use cases where the
profile was not loaded because it was referenced using a pathmap URI
whereas the profile was registered using a "platform:/plugin/" URI.


Change-Id: Ib7a6c111dea9c4cf1c747ba661a8a483b9562a64
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
[441089] Nagivation between differences now uses an iterative algorithm.

Bug: 441089
Change-Id: I6484f9d6519a32422d3fc3ebd56fa46cb265a050
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
Fixed typos in the Tutorial, Developer guide, Logical model
documentation

Change-Id: I00fb049bac40d1d88688df59e0a627ea74ba4616
Signed-off-by: Alexandra Buzila <alexandra.buzila@gmail.com>
[444351]  Fix bug in EqualityHelper.matchingArrays

EqualityHelper.matchingArrays now returns false for arrays of different
lengths
Add very basic tests for EqualityHelper.matchingValues

Bug: 444351
Change-Id: I569e3f0bae796fbb8d2cc35196f550480ce25516
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
[443696] Add contextual menu on differences in SMV

Add a contextual menu on differences in structure merge viewer. This
menu provides two actions, depending on merge mode :
-accept/reject
-merge left to right/merge right to left

Add associated Q7 test

Bug:443696
Change-Id: Ia8dc1c00f76736e04ad091d27dbfbcb205673a78
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
[443504] Fix computation of ignored elements when finding insertion idx

When finding the insertion index of a multi-valued feature, we now make
sure that values of the target list are only ignored in the computation
of the LCS, when there is another unresolved diff element that not only
concerns the same feature and same value but also the same target
container.

Therefore, we extended and refactored the UnresolvedDiffMatching
predicate, which is used for filtering out values to be ignored, and
provide it with the additional information needed for determining the
target container (i.e., direction of merging).

Bug: 443504
Change-Id: I8b9978c1e21593db6fd092e1e87b032ea0f5f425
Signed-off-by: Philip Langer <planger@eclipsesource.com>
[441754] The default activated group is built twice

The default activated group was built twice. Now the group menu uses the
default group provider if it has been already created.

Bug: 441754
Change-Id: I05489b336768eeadfae7083dcd02e57da477bc67
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
[404811] Expand group item on double-click

When a user double-click on a group item, it expands the group to the
second level. It doesn't change the content merge viewers. The merge
buttons are still deactivated.

Bug:404811
Change-Id: Ib7a3279ef6a0c353109de6ceb07572ff83b65478
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
[443420] Handle not integrated dynamic profile.

This modification force dynamic integrated profile to be loaded. In the
previous implementation only the profile registered against the the UML
profile extension point were loaded. However it does not handle
correctly the case of "fully" dynamic profile. That is to say profiles
that are directly referenced from a UML model without being registered
in the uml profile registry. Now an approximation will decide whether of
not an URI references a profile using the convention ".profile.uml" as
file extension. Registered profile that does not use this convention
will still be loaded.

Bug: 443420
Change-Id: Icde513b9dd52501953194d8875622231f0de99d1
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
[443968] Fix NPE in ComparisonUtils.getSubDiffs

Fix NPE in ComparisonUtils.getSubDiffs
Add test

Bug: 443968
Change-Id: I0fa1d0105b12cebaaee534ea087b912bf3b7143f
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
[443031] Fix NPE on FeatureFilter.referenceIsSet

Fix NPE on FeatureFilter.referenceIsSet
Add tests

Bug: 443031
Change-Id: Id2ecebcff6c174341199451d472aad4c06101239
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
[442887] Protect compare actions from over-enthusiast users

Initialize of the toolbar once the compare model has been built and
displayed in the SMV.

Bug:442887
Change-Id: I98649a8746e28065431648231fb5878e517442d1
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
EGit behavior change

See bug 442386 for further information 


Change-Id: I85b78d8e211e9f8ff1a23a1bb6c685f9d2eed62a
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
Copy all commands didn't work with UML

... and cascading elements. If the only visible difference
in the compare editor is an UML "refining" difference, then
trying to "copy all non-conflicting" will result in a
working merge but an unsaveable model (editor wasn't set as
"dirty") and an empty content pane.

This should probably be investigated more : why are we
relying on the "setSelection" post-merge to set the editor
dirty? This may fail in more cases than this one.

Change-Id: Ic5b8d73d8fb2bbdfbf0c59efdede0b76accfdc37
Bumping minor for all plugins/features changed since Luna SR1

Change-Id: I52fa8de1837f33e3734a481c058b80e94ce7e168
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
Consider potential duplicates in String similarity

We need to ensure that "aaa" is never considered to be equal to "aaaa".
The previous unit tests were failing to notice the logic error since we
were only comparing "aa" and "aaaa"... whereas "aa" is less than or
equal to two characters long, falling into a special case within
DiffUtils.

Bug: 444712
Change-Id: I0e81e58eadc288f5a79daac75e245f33ca655119
Optimize dice coefficient storing bigrams within ints

Bigrams are a combination of two char objects, which are
stored on 16 bits. We can take advantage of that and store
them within ints instead, allowing us to use simple
arithemtics instead of String comparison to compare the
bigrams together, making the whole dice coefficient
computation faster in turn.

Change-Id: I532f02cfc1505b5722f3c757c1e933461d1df383
[444978] Prevents duplicated IStorage when creating the logical model.

In the use case described by the bug we have a Set of IStorage that
holds twice the same IStorage (pointing to the profile). Overriding the
equal implementation prevents returning a corrupted Set.

Bug: 444978
Change-Id: Iaf3be0faa509796f86c1966531bfefc336c8a59c
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>