Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Delaigue2016-05-09 02:57:06 -0400
committerLaurent Delaigue2016-09-12 12:11:12 -0400
commit776044b8a9d95e30770233fdfd1bce28228dc9a2 (patch)
tree6fff7a043aac2ecc5055f6c89269232b2f4ef219
parent741f9ffd6108a4a0e42b2a2648bd29cb048e6ea7 (diff)
downloadorg.eclipse.emf.compare-776044b8a9d95e30770233fdfd1bce28228dc9a2.tar.gz
org.eclipse.emf.compare-776044b8a9d95e30770233fdfd1bce28228dc9a2.tar.xz
org.eclipse.emf.compare-776044b8a9d95e30770233fdfd1bce28228dc9a2.zip
Add support for additive merge
* Add a custom ResourceMappingMerger and specific mergers associated (reference merger and conflict merger) * Add a mechanism to select the merger for a diff not only by rank, but also by another criterion, whose semantics is free (IMergeCriterion) Change-Id: Ib32f8430bc58e69e627640efbafecdfae0279f04 Also-by: Mathieu Cartaud <mathieu.cartaud@obeo.fr> Signed-off-by: Laurent Delaigue <laurent.delaigue@obeo.fr>
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/plugin.xml4
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/AdditivePapyrusResourceAttachmentChangeMerger.java65
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/PapyrusResourceAttachmentChangeMerger.java15
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractGitTestCase.java (renamed from plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/AbstractResourceAttachmentChangeMoveTests.java)454
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/conflicts/MoveOfDiagramConflictDetectionTest.java1
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AdditiveMergeDiagramTests.java104
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/AdditiveMergeDiagramInputData.java70
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.notation218
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.uml16
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.notation131
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.uml11
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.notation105
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.uml10
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.notation192
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.uml15
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.notation192
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.uml15
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.notation431
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.uml18
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.notation297
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.uml13
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.notation297
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.uml13
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.notation574
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.uml21
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.notation231
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.uml8
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.notation100
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.uml8
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.notation139
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.uml12
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.notation209
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.uml8
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.notation191
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.uml18
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.notation92
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.uml7
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.notation74
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.uml7
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.notation257
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.uml9
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.notation191
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.uml18
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.notation74
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.uml7
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.notation131
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.uml11
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.notation44
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.uml6
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.notation44
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.uml6
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.notation79
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.uml9
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/rac.zipbin0 -> 56821 bytes
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/solvable.zipbin0 -> 78036 bytes
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/unsolvable.zipbin0 -> 39157 bytes
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java4
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java3
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java3
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java3
-rw-r--r--plugins/org.eclipse.emf.compare.diagram/plugin.xml4
-rw-r--r--plugins/org.eclipse.emf.compare.diagram/src/org/eclipse/emf/compare/diagram/internal/merge/AdditiveCompareDiagramMerger.java64
-rw-r--r--plugins/org.eclipse.emf.compare.egit/plugin.properties1
-rw-r--r--plugins/org.eclipse.emf.compare.egit/plugin.xml4
-rw-r--r--plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/AdditiveModelMerger.java51
-rw-r--r--plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/RecursiveModelMerger.java7
-rw-r--r--plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/StrategyAdditiveModel.java29
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitMergeStrategyID.java2
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitTestSupport.java1
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/egit/CompareGitTestCase.java35
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/AdditiveMergeTests.java84
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/ecore.zipbin0 -> 24149 bytes
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/uml.zipbin0 -> 17489 bytes
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/models/ModelTestCase.java4
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/suite/GitTests.java3
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/plugin.xml3
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/AdditiveResourceMappingMerger.java329
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFLogicalModelAdapterFactory.java8
-rw-r--r--plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFResourceMappingMerger.java23
-rw-r--r--plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/IAdditiveResourceMappingMerger.java29
-rw-r--r--plugins/org.eclipse.emf.compare.rcp/plugin.xml12
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/framework/AbstractInputData.java10
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AbstractMerger.java75
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveConflictMerger.java127
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveMergeCriterion.java30
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveReferenceChangeMerger.java144
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveResourceAttachmentChangeMerger.java63
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ConflictMerger.java55
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/DelegatingMerger.java105
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterion.java27
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterionAware.java31
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMerger.java94
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java49
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.java10
117 files changed, 6498 insertions, 346 deletions
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/plugin.xml b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/plugin.xml
index d85f9234f..18629eaf3 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/plugin.xml
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/plugin.xml
@@ -51,6 +51,10 @@
class="org.eclipse.emf.compare.diagram.ide.ui.papyrus.internal.merge.PapyrusResourceAttachmentChangeMerger"
ranking="100">
</merger>
+ <merger
+ class="org.eclipse.emf.compare.diagram.ide.ui.papyrus.internal.merge.AdditivePapyrusResourceAttachmentChangeMerger"
+ ranking="100">
+ </merger>
</extension>
<extension
point="org.eclipse.core.runtime.adapters">
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/AdditivePapyrusResourceAttachmentChangeMerger.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/AdditivePapyrusResourceAttachmentChangeMerger.java
new file mode 100644
index 000000000..24360b417
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/AdditivePapyrusResourceAttachmentChangeMerger.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.ide.ui.papyrus.internal.merge;
+
+import static org.eclipse.emf.compare.DifferenceKind.DELETE;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceState.MERGED;
+import static org.eclipse.emf.compare.DifferenceState.UNRESOLVED;
+
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.merge.AbstractMerger;
+import org.eclipse.emf.compare.merge.AdditiveMergeCriterion;
+import org.eclipse.emf.compare.merge.IMergeCriterion;
+
+/**
+ * This specific implementation of {@link AbstractMerger} will be used to merge papyrus resource attachment
+ * changes in an additive merge context.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ * @since 3.3
+ */
+public class AdditivePapyrusResourceAttachmentChangeMerger extends PapyrusResourceAttachmentChangeMerger {
+
+ /**
+ * The constructor specify the context where this merger can be used.
+ */
+ public AdditivePapyrusResourceAttachmentChangeMerger() {
+ super();
+ mergeOptions.put(IMergeCriterion.OPTION_MERGE_CRITERION, AdditiveMergeCriterion.INSTANCE);
+ }
+
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == AdditiveMergeCriterion.INSTANCE;
+ }
+
+ @Override
+ public void copyRightToLeft(Diff target, Monitor monitor) {
+ if (target.getState() != UNRESOLVED) {
+ return;
+ }
+
+ if (target.getKind() == DELETE) {
+ if (target.getSource() == LEFT) {
+ super.copyRightToLeft(target, monitor);
+ } else {
+ target.setState(MERGED);
+ for (Diff refiningDiff : target.getRefinedBy()) {
+ refiningDiff.setState(MERGED);
+ }
+ }
+ } else {
+ super.copyRightToLeft(target, monitor);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/PapyrusResourceAttachmentChangeMerger.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/PapyrusResourceAttachmentChangeMerger.java
index ee4400975..f60078163 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/PapyrusResourceAttachmentChangeMerger.java
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/src/org/eclipse/emf/compare/diagram/ide/ui/papyrus/internal/merge/PapyrusResourceAttachmentChangeMerger.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.emf.compare.diagram.ide.ui.papyrus.internal.merge;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceSource.RIGHT;
+
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
@@ -31,6 +34,7 @@ import org.eclipse.emf.compare.ResourceAttachmentChange;
import org.eclipse.emf.compare.diagram.ide.ui.papyrus.internal.CompareDiagramIDEUIPapyrusPlugin;
import org.eclipse.emf.compare.diagram.ide.ui.papyrus.internal.CompareUIPapyrusMessages;
import org.eclipse.emf.compare.internal.utils.ComparisonUtil;
+import org.eclipse.emf.compare.merge.IMergeCriterion;
import org.eclipse.emf.compare.merge.ResourceAttachmentChangeMerger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
@@ -76,6 +80,11 @@ public class PapyrusResourceAttachmentChangeMerger extends ResourceAttachmentCha
return false;
}
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == null;
+ }
+
/**
* {@inheritDoc}
* <p>
@@ -116,9 +125,9 @@ public class PapyrusResourceAttachmentChangeMerger extends ResourceAttachmentCha
concernsTheSamePapyrusVirtualNodeAs(diff));
final ResourceSet targetRS;
if (rightToLeft) {
- targetRS = getResourceSet(comp, DifferenceSource.LEFT);
+ targetRS = getResourceSet(comp, LEFT);
} else {
- targetRS = getResourceSet(comp, DifferenceSource.RIGHT);
+ targetRS = getResourceSet(comp, RIGHT);
}
for (MatchResource mr : relatedMatchResource) {
if (rightToLeft) {
@@ -305,7 +314,7 @@ public class PapyrusResourceAttachmentChangeMerger extends ResourceAttachmentCha
URI uri = input.getRight().getURI();
return !rightURI.equals(uri) && rightURI.trimFileExtension().equals(uri.trimFileExtension());
}
- if (input.getOrigin() != null && originURI.trimFileExtension() != null) {
+ if (input.getOrigin() != null && originURI != null && originURI.trimFileExtension() != null) {
URI uri = input.getOrigin().getURI();
return !originURI.equals(uri)
&& originURI.trimFileExtension().equals(uri.trimFileExtension());
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/AbstractResourceAttachmentChangeMoveTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractGitTestCase.java
index 13a6c5607..338765224 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/AbstractResourceAttachmentChangeMoveTests.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractGitTestCase.java
@@ -1,217 +1,237 @@
-package org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ModelProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.egit.core.Activator;
-import org.eclipse.egit.core.GitCorePreferences;
-import org.eclipse.emf.common.util.BasicMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.compare.Comparison;
-import org.eclipse.emf.compare.EMFCompare;
-import org.eclipse.emf.compare.EMFCompare.Builder;
-import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.GitTestRepository;
-import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.MockSystemReader;
-import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
-import org.eclipse.emf.compare.ide.ui.internal.logical.ComparisonScopeBuilder;
-import org.eclipse.emf.compare.ide.ui.internal.logical.EMFModelProvider;
-import org.eclipse.emf.compare.ide.ui.internal.logical.IdenticalResourceMinimizer;
-import org.eclipse.emf.compare.ide.ui.internal.logical.StorageTypedElement;
-import org.eclipse.emf.compare.ide.ui.internal.logical.SubscriberStorageAccessor;
-import org.eclipse.emf.compare.ide.ui.internal.logical.resolver.CrossReferenceResolutionScope;
-import org.eclipse.emf.compare.ide.ui.internal.logical.resolver.ThreadedModelResolver;
-import org.eclipse.emf.compare.ide.ui.internal.preferences.EMFCompareUIPreferences;
-import org.eclipse.emf.compare.ide.ui.logical.IStorageProvider;
-import org.eclipse.emf.compare.ide.ui.logical.IStorageProviderAccessor;
-import org.eclipse.emf.compare.ide.ui.tests.CompareTestCase;
-import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
-import org.eclipse.emf.compare.internal.utils.Graph;
-import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin;
-import org.eclipse.emf.compare.rcp.internal.extension.impl.EMFCompareBuilderConfigurator;
-import org.eclipse.emf.compare.scope.IComparisonScope;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.util.FileUtils;
-import org.eclipse.jgit.util.SystemReader;
-import org.eclipse.team.core.subscribers.Subscriber;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.osgi.framework.Bundle;
-
-@SuppressWarnings({"restriction", "nls" })
-public class AbstractResourceAttachmentChangeMoveTests extends CompareTestCase {
-
- /**
- * The bundle containing this test.
- */
- protected static final String TEST_BUNDLE = "org.eclipse.emf.compare.diagram.papyrus.tests.git";
-
- protected static final String MASTER = Constants.R_HEADS + Constants.MASTER;
-
- protected static final String BRANCH_1 = Constants.R_HEADS + "branch1";
-
- protected static final String BRANCH_2 = Constants.R_HEADS + "branch2";
-
- protected static final String BRANCH_3 = Constants.R_HEADS + "branch3";
-
- protected GitTestRepository repository;
-
- // The ".git" folder of the test repository
- protected File gitDir;
-
- protected static String deafultResolutionScope;
-
- @BeforeClass
- public static void setUpClass() {
- // suppress auto-ignoring and auto-sharing to avoid interference
- IEclipsePreferences eGitPreferences = InstanceScope.INSTANCE.getNode(Activator.getPluginId());
- eGitPreferences.put(GitCorePreferences.core_preferredMergeStrategy, "model recursive");
- eGitPreferences.putBoolean(GitCorePreferences.core_autoShareProjects, false);
- // This is actually the value of "GitCorePreferences.core_autoIgnoreDerivedResources"... but it was
- // not in Egit 2.1
- eGitPreferences.putBoolean("core_autoIgnoreDerivedResources", false);
- final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
- deafultResolutionScope = store.getString(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE);
- store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE,
- CrossReferenceResolutionScope.WORKSPACE.name());
- }
-
- @AfterClass
- public static void tearDownClass() {
- final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
- store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE, deafultResolutionScope);
- }
-
- @Override
- @Before
- public void setUp() throws Exception {
- // ensure there are no shared Repository instances left
- // when starting a new test
- Activator.getDefault().getRepositoryCache().clear();
- final MockSystemReader mockSystemReader = new MockSystemReader();
- SystemReader.setInstance(mockSystemReader);
- final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
- String gitRepoPath = workspaceRoot.getRawLocation().toFile() + File.separator + "repo";
- mockSystemReader.setProperty(Constants.GIT_CEILING_DIRECTORIES_KEY,
- workspaceRoot.getLocation().toFile().getParentFile().getAbsoluteFile().toString());
- gitDir = new File(gitRepoPath, Constants.DOT_GIT);
- repository = new GitTestRepository(gitDir);
- repository.ignore(workspaceRoot.getRawLocation().append(".metadata").toFile());
- }
-
- @Override
- @After
- public void tearDown() throws Exception {
- final EMFModelProvider emfModelProvider = (EMFModelProvider)ModelProvider
- .getModelProviderDescriptor(EMFModelProvider.PROVIDER_ID).getModelProvider();
- emfModelProvider.clear();
- repository.dispose();
- Activator.getDefault().getRepositoryCache().clear();
- if (gitDir.exists()) {
- File gitRoot = gitDir.getParentFile();
- if (gitRoot.exists()) {
- FileUtils.delete(gitRoot, FileUtils.RECURSIVE | FileUtils.RETRY);
- }
- }
- }
-
- /**
- * Copies the file located in {@link #testDataPath} + {@code filePath} to the given
- * {@code destinationPath} in {@code iProject}.
- *
- * @param iProject
- * The {@link IProject} to which the file is added.
- * @param filePath
- * The path relative to {@link #testDataPath} where the file is originally located.
- * @param destinationPath
- * The path in the {@code iProject} to which the file will be copied.
- * @return The newly created {@link IFile}.
- */
- protected IFile addToProject(String testDataPath, TestProject project, IProject iProject, String filePath,
- String destinationPath) throws IOException, URISyntaxException, CoreException {
- final Bundle bundle = Platform.getBundle(TEST_BUNDLE);
- final URI fileUri = getFileUri(bundle.getEntry(testDataPath + filePath));
-
- final File file = project.getOrCreateFile(iProject, destinationPath + fileUri.lastSegment());
-
- copyFile(toFile(fileUri), file);
-
- return project.getIFile(iProject, file);
- }
-
- protected void removeFromProject(IProject iProject, String name) throws CoreException {
- iProject.getFile(name).delete(true, null);
- }
-
- protected URI getFileUri(final URL bundleUrl) throws IOException {
- URL fileLocation = FileLocator.toFileURL(bundleUrl);
- return URI.createFileURI(fileLocation.getPath());
- }
-
- protected File toFile(final URI fileUri) throws URISyntaxException {
- return new File(fileUri.toFileString());
- }
-
- protected Comparison compare(String sourceRev, String targetRev, IFile file) throws Exception {
- final String fullPath = file.getFullPath().toString();
- final Subscriber subscriber = repository.createSubscriberForComparison(sourceRev, targetRev, file,
- false);
- final IStorageProviderAccessor accessor = new SubscriberStorageAccessor(subscriber);
- final IStorageProvider sourceProvider = accessor.getStorageProvider(file,
- IStorageProviderAccessor.DiffSide.SOURCE);
- final IStorageProvider remoteProvider = accessor.getStorageProvider(file,
- IStorageProviderAccessor.DiffSide.REMOTE);
- final IStorageProvider ancestorProvider = accessor.getStorageProvider(file,
- IStorageProviderAccessor.DiffSide.ORIGIN);
- assertNotNull(sourceProvider);
- assertNotNull(remoteProvider);
- assertNotNull(ancestorProvider);
-
- final IProgressMonitor monitor = new NullProgressMonitor();
- // do we really need to create a new one?
- final IStorageProviderAccessor storageAccessor = new SubscriberStorageAccessor(subscriber);
- final ITypedElement left = new StorageTypedElement(file, fullPath);
- final ITypedElement right = new StorageTypedElement(remoteProvider.getStorage(monitor), fullPath);
- final ITypedElement origin = new StorageTypedElement(ancestorProvider.getStorage(monitor), fullPath);
- final ThreadedModelResolver resolver = new ThreadedModelResolver();
- resolver.setGraph(new Graph<URI>());
- resolver.initialize();
- final ComparisonScopeBuilder scopeBuilder = new ComparisonScopeBuilder(resolver,
- new IdenticalResourceMinimizer(), storageAccessor);
- final IComparisonScope scope = scopeBuilder.build(left, right, origin, monitor);
-
- final ResourceSet leftResourceSet = (ResourceSet)scope.getLeft();
- final ResourceSet rightResourceSet = (ResourceSet)scope.getRight();
- final ResourceSet originResourceSet = (ResourceSet)scope.getOrigin();
-
- assertFalse(leftResourceSet.getResources().isEmpty());
- assertFalse(rightResourceSet.getResources().isEmpty());
- assertFalse(originResourceSet.getResources().isEmpty());
-
- final Builder comparisonBuilder = EMFCompare.builder();
- EMFCompareBuilderConfigurator.createDefault().configure(comparisonBuilder);
-
- return comparisonBuilder.build().compare(scope, new BasicMonitor());
- }
-}
+package org.eclipse.emf.compare.diagram.papyrus.tests;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import org.eclipse.compare.ITypedElement;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.mapping.ModelProvider;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.egit.core.Activator;
+import org.eclipse.egit.core.GitCorePreferences;
+import org.eclipse.egit.core.op.MergeOperation;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.EMFCompare;
+import org.eclipse.emf.compare.EMFCompare.Builder;
+import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.GitTestRepository;
+import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.MockSystemReader;
+import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
+import org.eclipse.emf.compare.ide.ui.internal.logical.ComparisonScopeBuilder;
+import org.eclipse.emf.compare.ide.ui.internal.logical.EMFModelProvider;
+import org.eclipse.emf.compare.ide.ui.internal.logical.IdenticalResourceMinimizer;
+import org.eclipse.emf.compare.ide.ui.internal.logical.StorageTypedElement;
+import org.eclipse.emf.compare.ide.ui.internal.logical.SubscriberStorageAccessor;
+import org.eclipse.emf.compare.ide.ui.internal.logical.resolver.CrossReferenceResolutionScope;
+import org.eclipse.emf.compare.ide.ui.internal.logical.resolver.ThreadedModelResolver;
+import org.eclipse.emf.compare.ide.ui.internal.preferences.EMFCompareUIPreferences;
+import org.eclipse.emf.compare.ide.ui.logical.IStorageProvider;
+import org.eclipse.emf.compare.ide.ui.logical.IStorageProviderAccessor;
+import org.eclipse.emf.compare.ide.ui.tests.CompareTestCase;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
+import org.eclipse.emf.compare.internal.utils.Graph;
+import org.eclipse.emf.compare.rcp.internal.extension.impl.EMFCompareBuilderConfigurator;
+import org.eclipse.emf.compare.scope.IComparisonScope;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.SystemReader;
+import org.eclipse.team.core.subscribers.Subscriber;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.osgi.framework.Bundle;
+
+@SuppressWarnings({"restriction", "nls" })
+public class AbstractGitTestCase extends CompareTestCase {
+
+ /**
+ * The bundle containing this test.
+ */
+ protected static final String TEST_BUNDLE = "org.eclipse.emf.compare.diagram.papyrus.tests.git";
+
+ protected static final String MASTER = Constants.R_HEADS + Constants.MASTER;
+
+ protected static final String BRANCH_1 = Constants.R_HEADS + "branch1";
+
+ protected static final String BRANCH_2 = Constants.R_HEADS + "branch2";
+
+ protected static final String BRANCH_3 = Constants.R_HEADS + "branch3";
+
+ protected GitTestRepository repository;
+
+ // The ".git" folder of the test repository
+ protected File gitDir;
+
+ protected static String deafultResolutionScope;
+
+ @BeforeClass
+ public static void setUpClass() {
+ // suppress auto-ignoring and auto-sharing to avoid interference
+ IEclipsePreferences eGitPreferences = InstanceScope.INSTANCE.getNode(Activator.getPluginId());
+ eGitPreferences.put(GitCorePreferences.core_preferredMergeStrategy, "model recursive");
+ eGitPreferences.putBoolean(GitCorePreferences.core_autoShareProjects, false);
+ // This is actually the value of "GitCorePreferences.core_autoIgnoreDerivedResources"... but it was
+ // not in Egit 2.1
+ eGitPreferences.putBoolean("core_autoIgnoreDerivedResources", false);
+ final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
+ deafultResolutionScope = store.getString(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE);
+ store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE,
+ CrossReferenceResolutionScope.WORKSPACE.name());
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
+ store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE, deafultResolutionScope);
+ }
+
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ // ensure there are no shared Repository instances left
+ // when starting a new test
+ Activator.getDefault().getRepositoryCache().clear();
+ final MockSystemReader mockSystemReader = new MockSystemReader();
+ SystemReader.setInstance(mockSystemReader);
+ final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ String gitRepoPath = workspaceRoot.getRawLocation().toFile() + File.separator + "repo";
+ mockSystemReader.setProperty(Constants.GIT_CEILING_DIRECTORIES_KEY, workspaceRoot.getLocation()
+ .toFile().getParentFile().getAbsoluteFile().toString());
+ gitDir = new File(gitRepoPath, Constants.DOT_GIT);
+ repository = new GitTestRepository(gitDir);
+ repository.ignore(workspaceRoot.getRawLocation().append(".metadata").toFile());
+ }
+
+ @Override
+ @After
+ public void tearDown() throws Exception {
+ final EMFModelProvider emfModelProvider = (EMFModelProvider)ModelProvider.getModelProviderDescriptor(
+ EMFModelProvider.PROVIDER_ID).getModelProvider();
+ emfModelProvider.clear();
+ repository.dispose();
+ Activator.getDefault().getRepositoryCache().clear();
+ if (gitDir.exists()) {
+ File gitRoot = gitDir.getParentFile();
+ if (gitRoot.exists()) {
+ FileUtils.delete(gitRoot, FileUtils.RECURSIVE | FileUtils.RETRY);
+ }
+ }
+ }
+
+ /**
+ * Copies the file located in {@link #testDataPath} + {@code filePath} to the given
+ * {@code destinationPath} in {@code iProject}.
+ *
+ * @param iProject
+ * The {@link IProject} to which the file is added.
+ * @param filePath
+ * The path relative to {@link #testDataPath} where the file is originally located.
+ * @param destinationPath
+ * The path in the {@code iProject} to which the file will be copied.
+ * @return The newly created {@link IFile}.
+ */
+ protected IFile addToProject(String testDataPath, TestProject project, IProject iProject, String filePath, String destinationPath)
+ throws IOException, URISyntaxException, CoreException {
+ final Bundle bundle = Platform.getBundle(TEST_BUNDLE);
+ final URI fileUri = getFileUri(bundle.getEntry(testDataPath + filePath));
+
+ final File file = project.getOrCreateFile(iProject, destinationPath + fileUri.lastSegment());
+
+ copyFile(toFile(fileUri), file);
+
+ return project.getIFile(iProject, file);
+ }
+
+ protected void removeFromProject(IProject iProject, String name) throws CoreException {
+ iProject.getFile(name).delete(true, null);
+ }
+
+ protected URI getFileUri(final URL bundleUrl) throws IOException {
+ URL fileLocation = FileLocator.toFileURL(bundleUrl);
+ return URI.createFileURI(fileLocation.getPath());
+ }
+
+ protected File toFile(final URI fileUri) throws URISyntaxException {
+ return new File(fileUri.toFileString());
+ }
+
+ protected Comparison compare(String sourceRev, String targetRev, IFile file) throws Exception {
+ final String fullPath = file.getFullPath().toString();
+ final Subscriber subscriber = repository.createSubscriberForComparison(sourceRev, targetRev, file,
+ false);
+ final IStorageProviderAccessor accessor = new SubscriberStorageAccessor(subscriber);
+ final IStorageProvider sourceProvider = accessor.getStorageProvider(file,
+ IStorageProviderAccessor.DiffSide.SOURCE);
+ final IStorageProvider remoteProvider = accessor.getStorageProvider(file,
+ IStorageProviderAccessor.DiffSide.REMOTE);
+ final IStorageProvider ancestorProvider = accessor.getStorageProvider(file,
+ IStorageProviderAccessor.DiffSide.ORIGIN);
+ assertNotNull(sourceProvider);
+ assertNotNull(remoteProvider);
+ assertNotNull(ancestorProvider);
+
+ final IProgressMonitor monitor = new NullProgressMonitor();
+ // do we really need to create a new one?
+ final IStorageProviderAccessor storageAccessor = new SubscriberStorageAccessor(subscriber);
+ final ITypedElement left = new StorageTypedElement(file, fullPath);
+ final ITypedElement right = new StorageTypedElement(remoteProvider.getStorage(monitor), fullPath);
+ final ITypedElement origin = new StorageTypedElement(ancestorProvider.getStorage(monitor), fullPath);
+ final ThreadedModelResolver resolver = new ThreadedModelResolver();
+ resolver.setGraph(new Graph<URI>());
+ resolver.initialize();
+ final ComparisonScopeBuilder scopeBuilder = new ComparisonScopeBuilder(resolver,
+ new IdenticalResourceMinimizer(), storageAccessor);
+ final IComparisonScope scope = scopeBuilder.build(left, right, origin, monitor);
+
+ final ResourceSet leftResourceSet = (ResourceSet)scope.getLeft();
+ final ResourceSet rightResourceSet = (ResourceSet)scope.getRight();
+ final ResourceSet originResourceSet = (ResourceSet)scope.getOrigin();
+
+ assertFalse(leftResourceSet.getResources().isEmpty());
+ assertFalse(rightResourceSet.getResources().isEmpty());
+ assertFalse(originResourceSet.getResources().isEmpty());
+
+ final Builder comparisonBuilder = EMFCompare.builder();
+ EMFCompareBuilderConfigurator.createDefault().configure(comparisonBuilder);
+
+ return comparisonBuilder.build().compare(scope, new BasicMonitor());
+ }
+
+ protected void merge(Repository repo, String refName) throws CoreException {
+ new MergeOperation(repo, refName).execute(null);
+ }
+
+ protected void merge(Repository repo, String refName, String strategyName) throws CoreException {
+ new MergeOperation(repo, refName, strategyName).execute(null);
+ }
+
+ protected Status status(Repository repo) throws Exception {
+ Git git = new Git(repo);
+ try {
+ return git.status().call();
+ } finally {
+ git.close();
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/conflicts/MoveOfDiagramConflictDetectionTest.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/conflicts/MoveOfDiagramConflictDetectionTest.java
index 1f2e26523..2dd3778a3 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/conflicts/MoveOfDiagramConflictDetectionTest.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/conflicts/MoveOfDiagramConflictDetectionTest.java
@@ -20,7 +20,6 @@ import org.eclipse.emf.compare.Conflict;
import org.eclipse.emf.compare.ConflictKind;
import org.eclipse.emf.compare.conflict.DefaultConflictDetector;
import org.eclipse.emf.compare.conflict.MatchBasedConflictDetector;
-import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move.AbstractResourceAttachmentChangeMoveTests;
import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitTestRunner;
import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitCompare;
import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitInput;
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AdditiveMergeDiagramTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AdditiveMergeDiagramTests.java
new file mode 100644
index 000000000..ebd5bafa4
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AdditiveMergeDiagramTests.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge;
+
+import static com.google.common.collect.Iterables.all;
+import static org.eclipse.emf.compare.ConflictKind.PSEUDO;
+import static org.eclipse.emf.compare.ConflictKind.REAL;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.hasConflict;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.conflict.MatchBasedConflictDetector;
+import org.eclipse.emf.compare.ide.ui.tests.framework.annotations.ConflictDetectors;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitMergeStrategyID;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitTestRunner;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitTestSupport;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitInput;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitMerge;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitMergeStrategy;
+import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.lib.Repository;
+import org.junit.runner.RunWith;
+
+@RunWith(GitTestRunner.class)
+@GitMergeStrategy(GitMergeStrategyID.MODEL_ADDITIVE)
+// FIXME DefaultConflictDetector is broken here
+@ConflictDetectors(MatchBasedConflictDetector.class)
+@SuppressWarnings({"nls" })
+public class AdditiveMergeDiagramTests {
+
+ @GitMerge(local = "wave", remote = "wired")
+ @GitInput("data/additive/rac.zip")
+ public void testAdditiveMergeWithRAC_MergeWiredOnWave(Status status, Repository repository,
+ List<IProject> projects, GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("wave", "expected", "model.notation");
+
+ assertTrue(all(comparison.getDifferences(), hasConflict(PSEUDO)));
+ }
+
+ @GitMerge(local = "wired", remote = "wave")
+ @GitInput("data/additive/rac.zip")
+ public void testAdditiveMergeWithRAC_WaveOnWired(Status status, Repository repository,
+ List<IProject> projects, GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("wired", "expected", "model.notation");
+
+ assertTrue(all(comparison.getDifferences(), hasConflict(PSEUDO)));
+ }
+
+ /**
+ * Additive Merge of Solvable conflicts between 2 branches.
+ */
+ @GitMerge(local = "branch1", remote = "branch2")
+ @GitInput("data/additive/solvable.zip")
+ public void testAdditiveMergeSolvableConflicts_Branch2OnBranch1(Status status, Repository repository,
+ List<IProject> projects, GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("branch1", "expected", "model.notation");
+
+ // We can't know for sure the order of the new elements
+ // this is due to the fact that new elements are created in the same
+ // package on both sides and it's (currently) impossible to guarantee
+ // the order in which they will be placed in their parent during a merge
+ // Let's just check that all diffs are in conflict
+ assertTrue(all(comparison.getDifferences(), hasConflict(PSEUDO, REAL)));
+ }
+
+ @GitMerge(local = "branch2", remote = "branch1")
+ @GitInput("data/additive/solvable.zip")
+ public void testAdditiveMergeSolvableConflicts_Branch1OnBranch2(Status status, Repository repository,
+ List<IProject> projects, GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("branch2", "expected", "model.notation");
+
+ // All the diffs that are not in pseudo-conflicts should be MOVEs.
+ // this is due to the fact that new elements are created in the same
+ // package on both sides and it's (currently) impossible to guarantee
+ // the order in which they will be placed in their parent during a merge
+ // Let's just check that all diffs are in conflict
+ assertTrue(all(comparison.getDifferences(), hasConflict(PSEUDO, REAL)));
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/AdditiveMergeDiagramInputData.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/AdditiveMergeDiagramInputData.java
new file mode 100644
index 000000000..e595a8d4d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/AdditiveMergeDiagramInputData.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.additive;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.compare.diagram.papyrus.tests.DiagramInputData;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+@SuppressWarnings({"nls" })
+public class AdditiveMergeDiagramInputData extends DiagramInputData {
+
+ public ResourceSet getUmlDiagramNoConflictsResult() throws IOException {
+ List<String> paths = new ArrayList<String>();
+ paths.add("noConflicts/result/model.notation");
+ paths.add("noConflicts/result/model.uml");
+ paths.add("noConflicts/result/model.di");
+ return loadFromClassLoader(paths, new ResourceSetImpl());
+ }
+
+ public ResourceSet getUmlDiagramConflictsTest1Result1() throws IOException {
+ List<String> paths = new ArrayList<String>();
+ paths.add("conflicts/test1/result1/model.notation");
+ paths.add("conflicts/test1/result1/model.uml");
+ paths.add("conflicts/test1/result1/model.di");
+ return loadFromClassLoader(paths, new ResourceSetImpl());
+ }
+
+ public ResourceSet getUmlDiagramConflictsTest1Result2() throws IOException {
+ List<String> paths = new ArrayList<String>();
+ paths.add("conflicts/test1/result2/model.notation");
+ paths.add("conflicts/test1/result2/model.uml");
+ paths.add("conflicts/test1/result2/model.di");
+ return loadFromClassLoader(paths, new ResourceSetImpl());
+ }
+
+ public ResourceSet getUmlDiagramConflictsTest2Result() throws IOException {
+ List<String> paths = new ArrayList<String>();
+ paths.add("conflicts/test2/result/model.notation");
+ paths.add("conflicts/test2/result/model.uml");
+ paths.add("conflicts/test2/result/model.di");
+ return loadFromClassLoader(paths, new ResourceSetImpl());
+ }
+
+ public ResourceSet getUmlDiagramRACResult() throws IOException {
+ List<String> paths = new ArrayList<String>();
+ paths.add("control/result/model.notation");
+ paths.add("control/result/model.uml");
+ paths.add("control/result/model.di");
+ paths.add("control/result/wired.notation");
+ paths.add("control/result/wired.uml");
+ paths.add("control/result/wired.di");
+ paths.add("control/result/wave.notation");
+ paths.add("control/result/wave.uml");
+ paths.add("control/result/wave.di");
+ return loadFromClassLoader(paths, new ResourceSetImpl());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.notation
new file mode 100644
index 000000000..7eee85e32
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.notation
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_ceKyUAV6Eea8W-7CHyNTkg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hIa68AV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hIdXMAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hIdXMQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_u11tMAV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u12UQgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UQwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12URAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12URQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12URgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12URwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12USAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12USQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12USgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12USwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UTAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UTQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12UTgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12UTwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12UUAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UUQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_u1nDsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u11tMQV6Eea8W-7CHyNTkg" x="8" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wDlSsAV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wDl5wAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wDl5wQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wDl5wgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wDl5wwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wDl5xAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wDl5xQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wDl5xgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wDl5xwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wDl5yAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wDl5yQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wDl5ygV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wDl5ywV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wDl5zAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wDl5zQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wDl5zgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wDl5zwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wDl50AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wDl50QV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_wDYeYAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wDlSsQV6Eea8W-7CHyNTkg" x="215" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_00xw0AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_00xw0gV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_00xw0wV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_00xw1AV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_00xw1QV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_00xw1gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_00xw1wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_00xw2AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_00xw2QV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_00xw2gV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_00xw2wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_00xw3AV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_00xw3QV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_00xw3gV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_00xw3wV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_00xw4AV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_00xw4QV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_00xw4gV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_00xw4wV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_00h5MAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_00xw0QV6Eea8W-7CHyNTkg" x="114" y="124"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hIdXMgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIdXMwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_hIOtsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIa68QV6Eea8W-7CHyNTkg" x="46" y="22" width="356" height="275"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jBWygAV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jBXZkAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBXZkQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_k1MHoAV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_k1MHogV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k1MHowV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k1MHpAV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1MusAV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1MusQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1MusgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1MuswV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1MutAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1MutQV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1MutgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1MutwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1MuuAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1MuuQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1MuugV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1MuuwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1MuvAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1MuvQV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1MuvgV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_k1FZ8AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1MHoQV6Eea8W-7CHyNTkg" x="15" y="27"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qYTx8AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qYUZAgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZAwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZBAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZBQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZBgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZBwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZCAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZCQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZCgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZCwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZDAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZDQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZDgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZDwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZEAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZEQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qYL2IAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYTx8QV6Eea8W-7CHyNTkg" x="349" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ruNN4AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4gV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4wV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ruNN5AV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN08AV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN08QV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN08gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN08wV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN09AV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN09QV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN09gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN09wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0-AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0-QV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN0-gV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN0-wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN0_AV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0_QV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0_gV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_ruC10AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruNN4QV6Eea8W-7CHyNTkg" x="194" y="32"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBXZkgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBXZkwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_jBUWQAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBWygQV6Eea8W-7CHyNTkg" x="481" y="39" width="517" height="266"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PrG6EAV7Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PrHhIAV7Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PrHhIQV7Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_SbL1AAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbMcEgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbMcEwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbMcFAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbMcFQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbMcFgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbMcFwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDIAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDIQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDIgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDIwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDJAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDJQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDJgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDJwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDKAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDKQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Sa-ZoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbL1AQV7Eea8W-7CHyNTkg" x="87" y="44"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PrHhIgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrHhIwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_PrEd0AV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrG6EQV7Eea8W-7CHyNTkg" x="278" y="323" width="370" height="185"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ceKyUQV6Eea8W-7CHyNTkg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ceKyUgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ceKyUwV6Eea8W-7CHyNTkg">
+ <owner xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.uml
new file mode 100644
index 000000000..57aa2853a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit1/model.uml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_cZUukAV6Eea8W-7CHyNTkg" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_hIOtsAV6Eea8W-7CHyNTkg" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_u1nDsAV6Eea8W-7CHyNTkg" name="Rooter1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wDYeYAV6Eea8W-7CHyNTkg" name="Switch"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_00h5MAV6Eea8W-7CHyNTkg" name="Rooter2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_jBUWQAV6Eea8W-7CHyNTkg" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_k1FZ8AV6Eea8W-7CHyNTkg" name="Antenna1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qYL2IAV6Eea8W-7CHyNTkg" name="Transmitter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ruC10AV6Eea8W-7CHyNTkg" name="WifiRooter"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_PrEd0AV7Eea8W-7CHyNTkg" name="wave2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sa-ZoAV7Eea8W-7CHyNTkg" name="Antenna"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.notation
new file mode 100644
index 000000000..6555892e1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.notation
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_ceKyUAV6Eea8W-7CHyNTkg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jBWygAV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jBXZkAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBXZkQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_qYTx8AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qYUZAgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZAwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZBAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZBQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZBgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZBwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZCAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZCQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZCgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZCwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZDAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZDQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZDgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZDwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZEAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZEQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qYL2IAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYTx8QV6Eea8W-7CHyNTkg" x="349" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ruNN4AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4gV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4wV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ruNN5AV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN08AV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN08QV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN08gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN08wV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN09AV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN09QV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN09gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN09wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0-AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0-QV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN0-gV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN0-wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN0_AV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0_QV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0_gV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_ruC10AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruNN4QV6Eea8W-7CHyNTkg" x="195" y="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iRXDgAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRXqkAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRXqkQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iRXqkgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqkwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqlAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqlQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqlgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqlwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqmAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqmQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqmgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqmwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqnAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqnQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqngV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqnwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqoQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_iRMrcAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXDgQV7Eea8W-7CHyNTkg" x="53" y="73"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBXZkgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBXZkwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_jBUWQAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBWygQV6Eea8W-7CHyNTkg" x="481" y="39" width="517" height="266"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PrG6EAV7Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PrHhIAV7Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PrHhIQV7Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_SbL1AAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbMcEgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbMcEwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbMcFAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbMcFQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbMcFgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbMcFwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDIAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDIQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDIgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDIwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDJAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDJQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDJgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDJwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDKAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDKQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Sa-ZoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbL1AQV7Eea8W-7CHyNTkg" x="87" y="44"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PrHhIgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrHhIwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_PrEd0AV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrG6EQV7Eea8W-7CHyNTkg" x="278" y="323" width="370" height="185"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ceKyUQV6Eea8W-7CHyNTkg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ceKyUgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ceKyUwV6Eea8W-7CHyNTkg">
+ <owner xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.uml
new file mode 100644
index 000000000..60f42232e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit2/model.uml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_cZUukAV6Eea8W-7CHyNTkg" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_jBUWQAV6Eea8W-7CHyNTkg" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_qYL2IAV6Eea8W-7CHyNTkg" name="TransmitterBis"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ruC10AV6Eea8W-7CHyNTkg" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iRMrcAV7Eea8W-7CHyNTkg" name="NewAntenna"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_PrEd0AV7Eea8W-7CHyNTkg" name="wave2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sa-ZoAV7Eea8W-7CHyNTkg" name="AntennaBis"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.notation
new file mode 100644
index 000000000..e696ab3d8
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.notation
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_ceKyUAV6Eea8W-7CHyNTkg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hIa68AV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hIdXMAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hIdXMQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_u11tMAV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u12UQgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UQwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12URAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12URQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12URgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12URwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12USAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12USQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12USgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12USwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UTAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UTQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12UTgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12UTwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12UUAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UUQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_u1nDsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u11tMQV6Eea8W-7CHyNTkg" x="8" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zPweUAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPxFYAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPxFYQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zPxFYgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFYwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFZAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFZQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFZgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFZwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFaAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFaQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFagV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFawV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFbAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFbQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFbgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFbwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFcAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFcQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_zPn7cAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPweUQV7Eea8W-7CHyNTkg" x="103" y="134"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hIdXMgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIdXMwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_hIOtsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIa68QV6Eea8W-7CHyNTkg" x="46" y="22" width="356" height="275"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PrG6EAV7Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PrHhIAV7Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PrHhIQV7Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_SbL1AAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbMcEgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbMcEwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbMcFAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbMcFQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbMcFgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbMcFwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDIAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDIQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDIgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDIwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDJAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDJQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDJgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDJwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDKAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDKQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Sa-ZoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbL1AQV7Eea8W-7CHyNTkg" x="87" y="44"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PrHhIgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrHhIwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_PrEd0AV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrG6EQV7Eea8W-7CHyNTkg" x="278" y="323" width="370" height="185"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ceKyUQV6Eea8W-7CHyNTkg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ceKyUgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ceKyUwV6Eea8W-7CHyNTkg">
+ <owner xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.uml
new file mode 100644
index 000000000..8dd6d138c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/commit3/model.uml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_cZUukAV6Eea8W-7CHyNTkg" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_hIOtsAV6Eea8W-7CHyNTkg" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_u1nDsAV6Eea8W-7CHyNTkg" name="Rooter1Bis"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zPn7cAV7Eea8W-7CHyNTkg" name="NewSwitch"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_PrEd0AV7Eea8W-7CHyNTkg" name="wave2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sa-ZoAV7Eea8W-7CHyNTkg" name="AntennaTer"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.notation
new file mode 100644
index 000000000..568242b7a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.notation
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_ceKyUAV6Eea8W-7CHyNTkg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jBWygAV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jBXZkAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBXZkQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_qYTx8AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qYUZAgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZAwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZBAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZBQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZBgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZBwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZCAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZCQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZCgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZCwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZDAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZDQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZDgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZDwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZEAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZEQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qYL2IAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYTx8QV6Eea8W-7CHyNTkg" x="349" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ruNN4AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4gV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4wV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ruNN5AV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN08AV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN08QV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN08gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN08wV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN09AV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN09QV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN09gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN09wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0-AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0-QV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN0-gV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN0-wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN0_AV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0_QV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0_gV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_ruC10AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruNN4QV6Eea8W-7CHyNTkg" x="195" y="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iRXDgAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRXqkAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRXqkQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iRXqkgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqkwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqlAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqlQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqlgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqlwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqmAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqmQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqmgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqmwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqnAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqnQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqngV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqnwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqoQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_iRMrcAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXDgQV7Eea8W-7CHyNTkg" x="53" y="73"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBXZkgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBXZkwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_jBUWQAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBWygQV6Eea8W-7CHyNTkg" x="481" y="39" width="517" height="266"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hIa68AV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hIdXMAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hIdXMQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_zPweUAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPxFYAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPxFYQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zPxFYgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFYwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFZAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFZQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFZgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFZwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFaAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFaQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFagV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFawV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFbAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFbQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFbgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFbwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFcAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFcQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_zPn7cAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPweUQV7Eea8W-7CHyNTkg" x="103" y="134"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_u11tMAV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u12UQgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UQwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12URAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12URQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12URgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12URwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12USAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12USQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12USgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12USwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UTAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UTQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12UTgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12UTwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12UUAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UUQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_u1nDsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u11tMQV6Eea8W-7CHyNTkg" x="8" y="16"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hIdXMgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIdXMwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_hIOtsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIa68QV6Eea8W-7CHyNTkg" x="46" y="22" width="356" height="275"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PrG6EAV7Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PrHhIAV7Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PrHhIQV7Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_SbL1AAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbMcEgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbMcEwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbMcFAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbMcFQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbMcFgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbMcFwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDIAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDIQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDIgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDIwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDJAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDJQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDJgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDJwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDKAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDKQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Sa-ZoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbL1AQV7Eea8W-7CHyNTkg" x="87" y="44"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PrHhIgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrHhIwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_PrEd0AV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrG6EQV7Eea8W-7CHyNTkg" x="278" y="323" width="370" height="185"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ceKyUQV6Eea8W-7CHyNTkg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ceKyUgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ceKyUwV6Eea8W-7CHyNTkg">
+ <owner xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.uml
new file mode 100644
index 000000000..4dda8cef2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result1/model.uml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_cZUukAV6Eea8W-7CHyNTkg" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_jBUWQAV6Eea8W-7CHyNTkg" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_qYL2IAV6Eea8W-7CHyNTkg" name="TransmitterBis"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ruC10AV6Eea8W-7CHyNTkg" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iRMrcAV7Eea8W-7CHyNTkg" name="NewAntenna"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hIOtsAV6Eea8W-7CHyNTkg" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_zPn7cAV7Eea8W-7CHyNTkg" name="NewSwitch"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_u1nDsAV6Eea8W-7CHyNTkg" name="Rooter1Bis"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_PrEd0AV7Eea8W-7CHyNTkg" name="wave2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sa-ZoAV7Eea8W-7CHyNTkg" name="AntennaBis"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.notation
new file mode 100644
index 000000000..eee394943
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.notation
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_ceKyUAV6Eea8W-7CHyNTkg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_hIa68AV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hIdXMAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hIdXMQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_u11tMAV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u12UQQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u12UQgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UQwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12URAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12URQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12URgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12URwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12USAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12USQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12USgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12USwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UTAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_u12UTQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_u12UTgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u12UTwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u12UUAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u12UUQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_u1nDsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u11tMQV6Eea8W-7CHyNTkg" x="8" y="16"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zPweUAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPxFYAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zPxFYQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zPxFYgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFYwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFZAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFZQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFZgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFZwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFaAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFaQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFagV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFawV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFbAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zPxFbQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zPxFbgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zPxFbwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zPxFcAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPxFcQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_zPn7cAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPweUQV7Eea8W-7CHyNTkg" x="103" y="134"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hIdXMgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIdXMwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_hIOtsAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIa68QV6Eea8W-7CHyNTkg" x="46" y="22" width="356" height="275"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jBWygAV6Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jBXZkAV6Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jBXZkQV6Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_qYTx8AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAAV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qYUZAQV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qYUZAgV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZAwV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZBAV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZBQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZBgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZBwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZCAV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZCQV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZCgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZCwV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZDAV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qYUZDQV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qYUZDgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qYUZDwV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qYUZEAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYUZEQV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qYL2IAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYTx8QV6Eea8W-7CHyNTkg" x="349" y="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ruNN4AV6Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4gV6Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ruNN4wV6Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ruNN5AV6Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN08AV6Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN08QV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN08gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN08wV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN09AV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN09QV6Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN09gV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN09wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0-AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0-QV6Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ruN0-gV6Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ruN0-wV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ruN0_AV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ruN0_QV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruN0_gV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_ruC10AV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruNN4QV6Eea8W-7CHyNTkg" x="195" y="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iRXDgAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRXqkAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iRXqkQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iRXqkgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqkwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqlAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqlQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqlgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqlwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqmAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqmQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqmgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqmwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqnAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iRXqnQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iRXqngV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iRXqnwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iRXqoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXqoQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_iRMrcAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iRXDgQV7Eea8W-7CHyNTkg" x="53" y="73"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jBXZkgV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBXZkwV6Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_jBUWQAV6Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jBWygQV6Eea8W-7CHyNTkg" x="481" y="39" width="517" height="266"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PrG6EAV7Eea8W-7CHyNTkg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PrHhIAV7Eea8W-7CHyNTkg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PrHhIQV7Eea8W-7CHyNTkg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_SbL1AAV7Eea8W-7CHyNTkg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEAV7Eea8W-7CHyNTkg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SbMcEQV7Eea8W-7CHyNTkg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SbMcEgV7Eea8W-7CHyNTkg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbMcEwV7Eea8W-7CHyNTkg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbMcFAV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbMcFQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbMcFgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbMcFwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDIAV7Eea8W-7CHyNTkg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDIQV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDIgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDIwV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDJAV7Eea8W-7CHyNTkg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SbNDJQV7Eea8W-7CHyNTkg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SbNDJgV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SbNDJwV7Eea8W-7CHyNTkg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SbNDKAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbNDKQV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Sa-ZoAV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SbL1AQV7Eea8W-7CHyNTkg" x="87" y="44"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PrHhIgV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrHhIwV7Eea8W-7CHyNTkg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_PrEd0AV7Eea8W-7CHyNTkg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PrG6EQV7Eea8W-7CHyNTkg" x="278" y="323" width="370" height="185"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ceKyUQV6Eea8W-7CHyNTkg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ceKyUgV6Eea8W-7CHyNTkg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ceKyUwV6Eea8W-7CHyNTkg">
+ <owner xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_cZUukAV6Eea8W-7CHyNTkg"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.uml
new file mode 100644
index 000000000..5c7739908
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test1/result2/model.uml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_cZUukAV6Eea8W-7CHyNTkg" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_hIOtsAV6Eea8W-7CHyNTkg" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_u1nDsAV6Eea8W-7CHyNTkg" name="Rooter1Bis"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zPn7cAV7Eea8W-7CHyNTkg" name="NewSwitch"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_jBUWQAV6Eea8W-7CHyNTkg" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_qYL2IAV6Eea8W-7CHyNTkg" name="TransmitterBis"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ruC10AV6Eea8W-7CHyNTkg" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iRMrcAV7Eea8W-7CHyNTkg" name="NewAntenna"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_PrEd0AV7Eea8W-7CHyNTkg" name="wave2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sa-ZoAV7Eea8W-7CHyNTkg" name="AntennaTer"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.notation
new file mode 100644
index 000000000..01242c95a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.notation
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_0Lt8kAYFEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="globalDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3FhbQAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Fj3gAYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Fj3gQYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="__jGrkAYFEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="__jGrkgYFEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__jGrkwYFEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__jHSoAYFEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__jHSoQYFEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__jHSogYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__jHSowYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__jHSpAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__jHSpQYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__jHSpgYFEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__jHSpwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__jHSqAYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__jHSqQYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__jHSqgYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__jHSqwYFEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__jHSrAYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__jHSrQYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__jHSrgYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__jHSrwYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#__i-IsAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__jGrkQYFEea42MxsVYThfw" x="267" y="130"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_A-u8EAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A-u8EgYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A-u8EwYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A-u8FAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjIAYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjIQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjIgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjIwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjJAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjJQYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjJgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjJwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjKAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjKQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjKgYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjKwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjLAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjLQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjLgYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_A-kkAAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-u8EQYGEea42MxsVYThfw" x="30" y="133"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RXsHgAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXsukAYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXsukQYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXsukgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsukwYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsulAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsulQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsulgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsulwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsumAYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsumQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsumgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsumwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsunAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsunQYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsungYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsunwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsuoAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsuoQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_RXeFEAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsHgQYGEea42MxsVYThfw" x="144" y="22"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3Fj3ggYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Fj3gwYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3FhbQQYFEea42MxsVYThfw" x="57" y="-15" width="439" height="292"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4HiR4AYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4Hi48AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Hi48QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_CF_fEAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CF_fEgYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CGAGIAYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGAGIQYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGIgYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGIwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGJAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGJQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGJgYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGJwYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGKAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGKQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGKgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGKwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGLAYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGLQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGLgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGLwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGMAYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_CFz44AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CF_fEQYGEea42MxsVYThfw" x="69" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Vj9ToAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vj96sAYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vj96sQYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj96sgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96swYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96tAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96tQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96tgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96twYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96uAYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96uQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96ugYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96uwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96vAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96vQYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96vgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96vwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96wAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96wQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_VjuqIAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj9ToQYGEea42MxsVYThfw" x="285" y="66"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Hi48gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Hi48wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HiR4QYFEea42MxsVYThfw" x="611" y="6" width="477" height="293"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5DVLwAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5DVy0AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5DVy0QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_9oVoAAYFEea42MxsVYThfw" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oWPEAYFEea42MxsVYThfw" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oWPEQYFEea42MxsVYThfw" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9oWPEgYFEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2IAYFEea42MxsVYThfw" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2IQYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2IgYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2IwYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2JAYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2JQYFEea42MxsVYThfw" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2JgYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2JwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2KAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2KQYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2KgYFEea42MxsVYThfw" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2KwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2LAYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2LQYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2LgYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_9oMeEAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oVoAQYFEea42MxsVYThfw" x="49" y="53"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5DVy0gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVy0wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_5DTWkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVLwQYFEea42MxsVYThfw" x="428" y="300" width="364" height="202"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0Lt8kQYFEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0Lt8kgYFEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_0Lt8kwYFEea42MxsVYThfw">
+ <owner xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_E7-NsAYGEea42MxsVYThfw" type="4005" source="__jGrkAYFEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_E7_b0AYGEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E7_b0QYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E7_b0gYGEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E7_b0wYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E7-0wAYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_E7sg4AYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E7-0wQYGEea42MxsVYThfw" points="[17, 14, -190, -122]$[270, 236, 63, 100]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E9f3sAYGEea42MxsVYThfw" id="(0.52,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E9f3sQYGEea42MxsVYThfw" id="(0.0,0.3)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GrQaAAYGEea42MxsVYThfw" type="4005" source="_A-u8EAYGEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GrRBEAYGEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GrRBEQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GrRBEgYGEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GrRBEwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GrQaAQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_Gq84AAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GrQaAgYGEea42MxsVYThfw" points="[41, 21, -336, -171]$[360, 202, -17, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GsESUAYGEea42MxsVYThfw" id="(0.26,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GsESUQYGEea42MxsVYThfw" id="(0.0,0.62)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KRbPcAYGEea42MxsVYThfw" type="4005" source="_CF_fEAYGEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KRbPcwYGEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KRbPdAYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KRb2gAYGEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KRb2gQYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KRbPcQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_KQjswAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KRbPcgYGEea42MxsVYThfw" points="[0, 0, 276, -198]$[-176, 279, 100, 81]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KSN5oAYGEea42MxsVYThfw" id="(0.0,0.52)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KSN5oQYGEea42MxsVYThfw" id="(0.96,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_sHJMsAYGEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="wiredDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tAczQAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAdaUAYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAdaUQYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAdaUgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAdaUwYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAdaVAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAdaVQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAdaVgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAdaVwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAdaWAYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAdaWQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAdaWgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAdaWwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAdaXAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAdaXQYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAdaXgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAdaXwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAdaYAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAdaYQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#__i-IsAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAczQQYGEea42MxsVYThfw" x="463" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tAzYkAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAzYkgYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAzYkwYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAzYlAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYlQYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYlgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYlwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYmAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYmQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYmgYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYmwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYnAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYnQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYngYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYnwYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYoAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYoQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYogYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYowYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_A-kkAAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYkQYGEea42MxsVYThfw" x="230" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tBCpIAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBCpIgYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBCpIwYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tBCpJAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpJQYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpJgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpJwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpKAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpKQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpKgYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpKwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpLAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpLQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpLgYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpLwYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpMAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpMQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpMgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpMwYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_RXeFEAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpIQYGEea42MxsVYThfw" x="744" y="97"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uXL8sAYGEea42MxsVYThfw" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXMjwAYGEea42MxsVYThfw" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXMjwQYGEea42MxsVYThfw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uXMjwgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjwwYGEea42MxsVYThfw" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjxAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjxQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMjxgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMjxwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjyAYGEea42MxsVYThfw" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjyQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjygYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMjywYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMjzAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjzQYGEea42MxsVYThfw" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjzgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjzwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMj0AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMj0QYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_9oMeEAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXL8sQYGEea42MxsVYThfw" x="318" y="359"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sHJMsQYGEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sHJMsgYGEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sHJMswYGEea42MxsVYThfw">
+ <owner xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_vPT3gAYGEea42MxsVYThfw" type="4008" source="_tAczQAYGEea42MxsVYThfw" target="_uXL8sAYGEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPUekAYGEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vPUekQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vPUekgYGEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vPUekwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vPT3gQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_E7sg4AYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vPT3ggYGEea42MxsVYThfw" points="[0, 0, 139, -204]$[-139, 204, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vPVFoAYGEea42MxsVYThfw" id="(0.0,0.63)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vPVFoQYGEea42MxsVYThfw" id="(0.61,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wIKLEAYGEea42MxsVYThfw" type="4008" source="_tAzYkAYGEea42MxsVYThfw" target="_uXL8sAYGEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIKyIAYGEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIKyIQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIKyIgYGEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIKyIwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wIKLEQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_Gq84AAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wIKLEgYGEea42MxsVYThfw" points="[30, 100, -58, -187]$[88, 287, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wILZMAYGEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wILZMQYGEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_2bz6cAYGEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="waveDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_2-Wm0AYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-XN4AYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-XN4QYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2-XN4gYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN4wYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN5AYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN5QYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN5gYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN5wYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN6AYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN6QYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN6gYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN6wYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN7AYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN7QYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN7gYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN7wYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN8AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN8QYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_CFz44AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-Wm0QYGEea42MxsVYThfw" x="520" y="222"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2-lQUAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-l3YAYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-l3YQYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2-l3YgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3YwYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3ZAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3ZQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3ZgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3ZwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3aAYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3aQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3agYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3awYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3bAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3bQYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3bgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3bwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3cAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3cQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_VjuqIAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-lQUQYGEea42MxsVYThfw" x="316" y="142"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_2bz6cQYGEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2bz6cgYGEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_2bz6cwYGEea42MxsVYThfw">
+ <owner xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.uml
new file mode 100644
index 000000000..e3c8081f6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit1/model.uml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_fXBloAYFEea42MxsVYThfw" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_3FXDMAYFEea42MxsVYThfw" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="__i-IsAYFEea42MxsVYThfw" name="Rooter1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_A-kkAAYGEea42MxsVYThfw" name="Rooter2"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_E7sg4AYGEea42MxsVYThfw" client="_3FXDMAYFEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Gq84AAYGEea42MxsVYThfw" client="_A-kkAAYGEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RXeFEAYGEea42MxsVYThfw" name="Switch"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_4HfOkAYFEea42MxsVYThfw" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_CFz44AYGEea42MxsVYThfw" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_KQjswAYGEea42MxsVYThfw" client="_CFz44AYGEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VjuqIAYGEea42MxsVYThfw" name="Antenna"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5DTWkAYFEea42MxsVYThfw" name="commons">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_9oMeEAYFEea42MxsVYThfw" name="Rooter"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.notation
new file mode 100644
index 000000000..db39ee2e2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.notation
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_0Lt8kAYFEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="globalDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3FhbQAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Fj3gAYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Fj3gQYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_A-u8EAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A-u8EgYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A-u8EwYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A-u8FAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjIAYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjIQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjIgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjIwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjJAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjJQYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjJgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjJwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjKAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjKQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjKgYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjKwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjLAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjLQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjLgYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_A-kkAAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-u8EQYGEea42MxsVYThfw" x="30" y="133"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RXsHgAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXsukAYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXsukQYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXsukgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsukwYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsulAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsulQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsulgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsulwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsumAYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsumQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsumgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsumwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsunAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsunQYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsungYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsunwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsuoAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsuoQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_RXeFEAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsHgQYGEea42MxsVYThfw" x="144" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UscnYAYHEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UscnYgYHEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UscnYwYHEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UscnZAYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UscnZQYHEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UscnZgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UscnZwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UscnaAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UscnaQYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UsdOcAYHEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UsdOcQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UsdOcgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UsdOcwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UsdOdAYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UsdOdQYHEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UsdOdgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UsdOdwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UsdOeAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UsdOeQYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_UsUEgAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UscnYQYHEea42MxsVYThfw" x="323" y="75"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3Fj3ggYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Fj3gwYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3FhbQQYFEea42MxsVYThfw" x="57" y="-15" width="439" height="292"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5DVLwAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5DVy0AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5DVy0QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_9oVoAAYFEea42MxsVYThfw" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oWPEAYFEea42MxsVYThfw" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oWPEQYFEea42MxsVYThfw" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9oWPEgYFEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2IAYFEea42MxsVYThfw" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2IQYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2IgYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2IwYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2JAYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2JQYFEea42MxsVYThfw" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2JgYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2JwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2KAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2KQYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2KgYFEea42MxsVYThfw" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2KwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2LAYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2LQYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2LgYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_9oMeEAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oVoAQYFEea42MxsVYThfw" x="49" y="53"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5DVy0gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVy0wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_5DTWkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVLwQYFEea42MxsVYThfw" x="428" y="300" width="364" height="202"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0Lt8kQYFEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0Lt8kgYFEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_0Lt8kwYFEea42MxsVYThfw">
+ <owner xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_GrQaAAYGEea42MxsVYThfw" type="4005" source="_A-u8EAYGEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GrRBEAYGEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GrRBEQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GrRBEgYGEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GrRBEwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GrQaAQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_Gq84AAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GrQaAgYGEea42MxsVYThfw" points="[41, 21, -336, -171]$[360, 202, -17, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GsESUAYGEea42MxsVYThfw" id="(0.26,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GsESUQYGEea42MxsVYThfw" id="(0.0,0.62)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WT7ikAYHEea42MxsVYThfw" type="4005" source="_UscnYAYHEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WT8JoAYHEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WT8JoQYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WT8JogYHEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WT8JowYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WT7ikQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_WTxKgAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WT7ikgYHEea42MxsVYThfw" points="[0, 0, -28, -193]$[28, 193, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WUgxYAYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WUhYcAYHEea42MxsVYThfw" id="(0.22,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_sHJMsAYGEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="wiredDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tAzYkAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAzYkgYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAzYkwYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAzYlAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYlQYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYlgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYlwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYmAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYmQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYmgYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYmwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYnAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYnQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYngYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYnwYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYoAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYoQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYogYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYowYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_A-kkAAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYkQYGEea42MxsVYThfw" x="230" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tBCpIAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBCpIgYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBCpIwYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tBCpJAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpJQYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpJgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpJwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpKAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpKQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpKgYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpKwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpLAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpLQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpLgYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpLwYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpMAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpMQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpMgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpMwYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_RXeFEAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpIQYGEea42MxsVYThfw" x="744" y="97"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uXL8sAYGEea42MxsVYThfw" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXMjwAYGEea42MxsVYThfw" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXMjwQYGEea42MxsVYThfw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uXMjwgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjwwYGEea42MxsVYThfw" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjxAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjxQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMjxgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMjxwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjyAYGEea42MxsVYThfw" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjyQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjygYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMjywYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMjzAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjzQYGEea42MxsVYThfw" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjzgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjzwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMj0AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMj0QYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_9oMeEAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXL8sQYGEea42MxsVYThfw" x="318" y="359"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZHEYkAYHEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHE_oAYHEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHE_oQYHEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHE_ogYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHE_owYHEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZHE_pAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZHE_pQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZHE_pgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHE_pwYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHE_qAYHEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZHFmsAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZHFmsQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZHFmsgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHFmswYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHFmtAYHEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZHFmtQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZHFmtgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZHFmtwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHFmuAYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_UsUEgAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHEYkQYHEea42MxsVYThfw" x="498" y="102"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sHJMsQYGEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sHJMsgYGEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sHJMswYGEea42MxsVYThfw">
+ <owner xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wIKLEAYGEea42MxsVYThfw" type="4008" source="_tAzYkAYGEea42MxsVYThfw" target="_uXL8sAYGEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIKyIAYGEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIKyIQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIKyIgYGEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIKyIwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wIKLEQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_Gq84AAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wIKLEgYGEea42MxsVYThfw" points="[30, 100, -58, -187]$[88, 287, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wILZMAYGEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wILZMQYGEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZHcMAAYHEea42MxsVYThfw" type="4008" source="_ZHEYkAYHEea42MxsVYThfw" target="_uXL8sAYGEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHcMAwYHEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHcMBAYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHcMBQYHEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHcMBgYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZHcMAQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_WTxKgAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZHcMAgYHEea42MxsVYThfw" points="[0, 0, -318, -359]$[318, 359, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZHczEAYHEea42MxsVYThfw" id="(0.0,0.38)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZHczEQYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.uml
new file mode 100644
index 000000000..5aec13191
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit2/model.uml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_fXBloAYFEea42MxsVYThfw" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_3FXDMAYFEea42MxsVYThfw" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_A-kkAAYGEea42MxsVYThfw" name="Rooter2Bis"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Gq84AAYGEea42MxsVYThfw" client="_A-kkAAYGEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RXeFEAYGEea42MxsVYThfw" name="Switch"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_UsUEgAYHEea42MxsVYThfw" name="NewRooter"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_WTxKgAYHEea42MxsVYThfw" client="_UsUEgAYHEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5DTWkAYFEea42MxsVYThfw" name="commons">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_9oMeEAYFEea42MxsVYThfw" name="Rooter"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.notation
new file mode 100644
index 000000000..ee579e9d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.notation
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_0Lt8kAYFEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="globalDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_4HiR4AYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4Hi48AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Hi48QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_CF_fEAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CF_fEgYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CGAGIAYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGAGIQYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGIgYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGIwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGJAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGJQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGJgYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGJwYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGKAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGKQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGKgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGKwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGLAYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGLQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGLgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGLwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGMAYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_CFz44AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CF_fEQYGEea42MxsVYThfw" x="63" y="11"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Vj9ToAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vj96sAYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vj96sQYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj96sgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96swYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96tAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96tQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96tgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96twYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96uAYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96uQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96ugYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96uwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96vAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96vQYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96vgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96vwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96wAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96wQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_VjuqIAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj9ToQYGEea42MxsVYThfw" x="285" y="66"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qX5AIAYHEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qX5nMAYHEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qX5nMQYHEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qX5nMgYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qX5nMwYHEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX5nNAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qX5nNQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qX5nNgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5nNwYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qX5nOAYHEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX5nOQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qX5nOgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qX5nOwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5nPAYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qX5nPQYHEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX5nPgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qX5nPwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qX5nQAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5nQQYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qXxEUAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5AIQYHEea42MxsVYThfw" x="43" y="148"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Hi48gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Hi48wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HiR4QYFEea42MxsVYThfw" x="611" y="6" width="477" height="293"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5DVLwAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5DVy0AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5DVy0QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_mWj4sAYHEea42MxsVYThfw" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mWkfwAYHEea42MxsVYThfw" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mWkfwQYHEea42MxsVYThfw" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mWkfwgYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWkfwwYHEea42MxsVYThfw" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWkfxAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWkfxQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWkfxgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWkfxwYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWkfyAYHEea42MxsVYThfw" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWkfyQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWkfygYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWkfywYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWkfzAYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWkfzQYHEea42MxsVYThfw" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWkfzgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWkfzwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWkf0AYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWkf0QYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_mWdLAAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWj4sQYHEea42MxsVYThfw" x="207" y="63"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5DVy0gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVy0wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_5DTWkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVLwQYFEea42MxsVYThfw" x="428" y="300" width="364" height="202"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0Lt8kQYFEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0Lt8kgYFEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_0Lt8kwYFEea42MxsVYThfw">
+ <owner xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_oV1o0AYHEea42MxsVYThfw" type="4005" source="_Vj9ToAYGEea42MxsVYThfw" target="_mWj4sAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oV1o0wYHEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oV1o1AYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oV1o1QYHEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oV1o1gYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oV1o0QYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_oVRoIAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oV1o0gYHEea42MxsVYThfw" points="[0, 0, 238, -226]$[-219, 216, 19, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oWS70AYHEea42MxsVYThfw" id="(0.0,0.71)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oWS70QYHEea42MxsVYThfw" id="(1.0,0.18)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_s_k0EAYHEea42MxsVYThfw" type="4005" source="_qX5AIAYHEea42MxsVYThfw" target="_mWj4sAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s_lbIAYHEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_lbIQYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s_lbIgYHEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_lbIwYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_s_k0EQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_s_CokAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s_k0EgYHEea42MxsVYThfw" points="[0, 26, 19, -109]$[-19, 135, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAFKYAYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAFKYQYHEea42MxsVYThfw" id="(0.19,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_2bz6cAYGEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="waveDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_2-Wm0AYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-XN4AYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-XN4QYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2-XN4gYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN4wYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN5AYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN5QYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN5gYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN5wYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN6AYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN6QYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN6gYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN6wYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN7AYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN7QYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN7gYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN7wYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN8AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN8QYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_CFz44AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-Wm0QYGEea42MxsVYThfw" x="690" y="155"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2-lQUAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-l3YAYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-l3YQYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2-l3YgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3YwYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3ZAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3ZQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3ZgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3ZwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3aAYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3aQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3agYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3awYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3bAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3bQYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3bgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3bwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3cAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3cQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_VjuqIAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-lQUQYGEea42MxsVYThfw" x="319" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wSVlUAYHEea42MxsVYThfw" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSVlUgYHEea42MxsVYThfw" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSVlUwYHEea42MxsVYThfw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSWMYAYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSWMYQYHEea42MxsVYThfw" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSWMYgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSWMYwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSWMZAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSWMZQYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSWMZgYHEea42MxsVYThfw" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSWMZwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSWMaAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSWMaQYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSWMagYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSWMawYHEea42MxsVYThfw" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSWMbAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSWMbQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSWMbgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSWMbwYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_mWdLAAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSVlUQYHEea42MxsVYThfw" x="335" y="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wSxqMAYHEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSxqMgYHEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSxqMwYHEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSxqNAYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSxqNQYHEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSxqNgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSxqNwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSxqOAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSxqOQYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSxqOgYHEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSxqOwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSxqPAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSxqPQYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSxqPgYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSyRQAYHEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSyRQQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSyRQgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSyRQwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSyRRAYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qXxEUAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSxqMQYHEea42MxsVYThfw" x="491" y="75"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_2bz6cQYGEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2bz6cgYGEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_2bz6cwYGEea42MxsVYThfw">
+ <owner xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wSpHUAYHEea42MxsVYThfw" type="4008" source="_2-lQUAYGEea42MxsVYThfw" target="_wSVlUAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSpHUwYHEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSpHVAYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSpHVQYHEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSpHVgYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wSpHUQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_oVRoIAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wSpHUgYHEea42MxsVYThfw" points="[0, 0, 316, 142]$[-316, -142, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wSpuYAYHEea42MxsVYThfw" id="(0.07,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wSpuYQYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wTD-EAYHEea42MxsVYThfw" type="4008" source="_wSxqMAYHEea42MxsVYThfw" target="_wSVlUAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wTD-EwYHEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wTD-FAYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wTD-FQYHEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wTD-FgYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wTD-EQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_s_CokAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wTD-EgYHEea42MxsVYThfw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTElIAYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTElIQYHEea42MxsVYThfw" id="(0.76,0.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.uml
new file mode 100644
index 000000000..8f45b5db8
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/commit3/model.uml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_fXBloAYFEea42MxsVYThfw" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_4HfOkAYFEea42MxsVYThfw" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_CFz44AYGEea42MxsVYThfw" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VjuqIAYGEea42MxsVYThfw" name="Antenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_oVRoIAYHEea42MxsVYThfw" client="_VjuqIAYGEea42MxsVYThfw" supplier="_mWdLAAYHEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qXxEUAYHEea42MxsVYThfw" name="NewAntenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_s_CokAYHEea42MxsVYThfw" client="_qXxEUAYHEea42MxsVYThfw" supplier="_mWdLAAYHEea42MxsVYThfw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5DTWkAYFEea42MxsVYThfw" name="commons">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_mWdLAAYHEea42MxsVYThfw" name="IAntenna"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.notation
new file mode 100644
index 000000000..00a2103bc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.notation
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_0Lt8kAYFEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="globalDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_3FhbQAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Fj3gAYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3Fj3gQYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_A-u8EAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A-u8EgYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A-u8EwYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A-u8FAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjIAYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjIQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjIgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjIwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjJAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjJQYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjJgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjJwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjKAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjKQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A-vjKgYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A-vjKwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A-vjLAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A-vjLQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-vjLgYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_A-kkAAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-u8EQYGEea42MxsVYThfw" x="30" y="133"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RXsHgAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXsukAYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RXsukQYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RXsukgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsukwYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsulAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsulQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsulgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsulwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsumAYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsumQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsumgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsumwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsunAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RXsunQYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RXsungYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RXsunwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RXsuoAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsuoQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_RXeFEAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RXsHgQYGEea42MxsVYThfw" x="144" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UscnYAYHEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UscnYgYHEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UscnYwYHEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UscnZAYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UscnZQYHEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UscnZgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UscnZwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UscnaAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UscnaQYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UsdOcAYHEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UsdOcQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UsdOcgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UsdOcwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UsdOdAYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UsdOdQYHEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UsdOdgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UsdOdwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UsdOeAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UsdOeQYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_UsUEgAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UscnYQYHEea42MxsVYThfw" x="323" y="75"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3Fj3ggYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Fj3gwYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3FhbQQYFEea42MxsVYThfw" x="57" y="-15" width="439" height="292"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4HiR4AYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4Hi48AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4Hi48QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_CF_fEAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CF_fEgYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CGAGIAYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGAGIQYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGIgYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGIwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGJAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGJQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGJgYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGJwYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGKAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGKQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGKgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGKwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CGAGLAYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CGAGLQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CGAGLgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CGAGLwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CGAGMAYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_CFz44AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CF_fEQYGEea42MxsVYThfw" x="63" y="11"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Vj9ToAYGEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vj96sAYGEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Vj96sQYGEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj96sgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96swYGEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96tAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96tQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96tgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96twYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96uAYGEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96uQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96ugYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96uwYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96vAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Vj96vQYGEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Vj96vgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Vj96vwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Vj96wAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj96wQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_VjuqIAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj9ToQYGEea42MxsVYThfw" x="285" y="66"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qX5AIAYHEea42MxsVYThfw" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qX5nMAYHEea42MxsVYThfw" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qX5nMQYHEea42MxsVYThfw" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qX5nMgYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qX5nMwYHEea42MxsVYThfw" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX5nNAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qX5nNQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qX5nNgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5nNwYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qX5nOAYHEea42MxsVYThfw" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX5nOQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qX5nOgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qX5nOwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5nPAYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qX5nPQYHEea42MxsVYThfw" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qX5nPgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qX5nPwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qX5nQAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5nQQYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qXxEUAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qX5AIQYHEea42MxsVYThfw" x="43" y="148"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4Hi48gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Hi48wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HiR4QYFEea42MxsVYThfw" x="611" y="6" width="477" height="293"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5DVLwAYFEea42MxsVYThfw" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5DVy0AYFEea42MxsVYThfw" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5DVy0QYFEea42MxsVYThfw" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_9oVoAAYFEea42MxsVYThfw" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oWPEAYFEea42MxsVYThfw" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9oWPEQYFEea42MxsVYThfw" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9oWPEgYFEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2IAYFEea42MxsVYThfw" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2IQYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2IgYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2IwYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2JAYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2JQYFEea42MxsVYThfw" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2JgYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2JwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2KAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2KQYFEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9oW2KgYFEea42MxsVYThfw" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9oW2KwYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9oW2LAYFEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9oW2LQYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oW2LgYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_9oMeEAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9oVoAQYFEea42MxsVYThfw" x="49" y="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mWj4sAYHEea42MxsVYThfw" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mWkfwAYHEea42MxsVYThfw" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mWkfwQYHEea42MxsVYThfw" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mWkfwgYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWkfwwYHEea42MxsVYThfw" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWkfxAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWkfxQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWkfxgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWkfxwYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWkfyAYHEea42MxsVYThfw" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWkfyQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWkfygYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWkfywYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWkfzAYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWkfzQYHEea42MxsVYThfw" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWkfzgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWkfzwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWkf0AYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWkf0QYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_mWdLAAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWj4sQYHEea42MxsVYThfw" x="207" y="63"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5DVy0gYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVy0wYFEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_5DTWkAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5DVLwQYFEea42MxsVYThfw" x="428" y="300" width="364" height="202"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0Lt8kQYFEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0Lt8kgYFEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_0Lt8kwYFEea42MxsVYThfw">
+ <owner xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_fXBloAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_GrQaAAYGEea42MxsVYThfw" type="4005" source="_A-u8EAYGEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GrRBEAYGEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GrRBEQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GrRBEgYGEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GrRBEwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GrQaAQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_Gq84AAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GrQaAgYGEea42MxsVYThfw" points="[41, 21, -336, -171]$[360, 202, -17, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GsESUAYGEea42MxsVYThfw" id="(0.26,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GsESUQYGEea42MxsVYThfw" id="(0.0,0.62)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WT7ikAYHEea42MxsVYThfw" type="4005" source="_UscnYAYHEea42MxsVYThfw" target="_9oVoAAYFEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WT8JoAYHEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WT8JoQYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WT8JogYHEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WT8JowYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WT7ikQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_WTxKgAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WT7ikgYHEea42MxsVYThfw" points="[0, 0, -28, -193]$[28, 193, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WUgxYAYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WUhYcAYHEea42MxsVYThfw" id="(0.22,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oV1o0AYHEea42MxsVYThfw" type="4005" source="_Vj9ToAYGEea42MxsVYThfw" target="_mWj4sAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oV1o0wYHEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oV1o1AYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oV1o1QYHEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oV1o1gYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oV1o0QYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_oVRoIAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oV1o0gYHEea42MxsVYThfw" points="[0, 0, 238, -226]$[-219, 216, 19, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oWS70AYHEea42MxsVYThfw" id="(0.0,0.71)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oWS70QYHEea42MxsVYThfw" id="(1.0,0.18)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_s_k0EAYHEea42MxsVYThfw" type="4005" source="_qX5AIAYHEea42MxsVYThfw" target="_mWj4sAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s_lbIAYHEea42MxsVYThfw" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_lbIQYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s_lbIgYHEea42MxsVYThfw" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_lbIwYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_s_k0EQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_s_CokAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s_k0EgYHEea42MxsVYThfw" points="[0, 26, 19, -109]$[-19, 135, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAFKYAYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tAFKYQYHEea42MxsVYThfw" id="(0.19,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_2bz6cAYGEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="waveDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_2-Wm0AYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-XN4AYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-XN4QYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2-XN4gYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN4wYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN5AYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN5QYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN5gYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN5wYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN6AYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN6QYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN6gYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN6wYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN7AYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-XN7QYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-XN7gYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-XN7wYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-XN8AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-XN8QYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_CFz44AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-Wm0QYGEea42MxsVYThfw" x="690" y="155"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2-lQUAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-l3YAYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2-l3YQYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2-l3YgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3YwYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3ZAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3ZQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3ZgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3ZwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3aAYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3aQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3agYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3awYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3bAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2-l3bQYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2-l3bgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2-l3bwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2-l3cAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-l3cQYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_VjuqIAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2-lQUQYGEea42MxsVYThfw" x="319" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wSVlUAYHEea42MxsVYThfw" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSVlUgYHEea42MxsVYThfw" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSVlUwYHEea42MxsVYThfw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSWMYAYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSWMYQYHEea42MxsVYThfw" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSWMYgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSWMYwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSWMZAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSWMZQYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSWMZgYHEea42MxsVYThfw" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSWMZwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSWMaAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSWMaQYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSWMagYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSWMawYHEea42MxsVYThfw" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSWMbAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSWMbQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSWMbgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSWMbwYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_mWdLAAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSVlUQYHEea42MxsVYThfw" x="335" y="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wSxqMAYHEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSxqMgYHEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSxqMwYHEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSxqNAYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSxqNQYHEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSxqNgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSxqNwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSxqOAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSxqOQYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSxqOgYHEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSxqOwYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSxqPAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSxqPQYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSxqPgYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wSyRQAYHEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wSyRQQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wSyRQgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wSyRQwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSyRRAYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_qXxEUAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wSxqMQYHEea42MxsVYThfw" x="491" y="75"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_2bz6cQYGEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2bz6cgYGEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_2bz6cwYGEea42MxsVYThfw">
+ <owner xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_4HfOkAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wSpHUAYHEea42MxsVYThfw" type="4008" source="_2-lQUAYGEea42MxsVYThfw" target="_wSVlUAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSpHUwYHEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSpHVAYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wSpHVQYHEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wSpHVgYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wSpHUQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_oVRoIAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wSpHUgYHEea42MxsVYThfw" points="[0, 0, 316, 142]$[-316, -142, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wSpuYAYHEea42MxsVYThfw" id="(0.07,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wSpuYQYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wTD-EAYHEea42MxsVYThfw" type="4008" source="_wSxqMAYHEea42MxsVYThfw" target="_wSVlUAYHEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wTD-EwYHEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wTD-FAYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wTD-FQYHEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wTD-FgYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wTD-EQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_s_CokAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wTD-EgYHEea42MxsVYThfw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTElIAYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTElIQYHEea42MxsVYThfw" id="(0.76,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_sHJMsAYGEea42MxsVYThfw" type="PapyrusUMLClassDiagram" name="wiredDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tAzYkAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAzYkgYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tAzYkwYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tAzYlAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYlQYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYlgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYlwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYmAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYmQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYmgYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYmwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYnAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYnQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYngYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tAzYnwYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tAzYoAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tAzYoQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tAzYogYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYowYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_A-kkAAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tAzYkQYGEea42MxsVYThfw" x="230" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tBCpIAYGEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBCpIgYGEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tBCpIwYGEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tBCpJAYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpJQYGEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpJgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpJwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpKAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpKQYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpKgYGEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpKwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpLAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpLQYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpLgYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tBCpLwYGEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tBCpMAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tBCpMQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tBCpMgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpMwYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_RXeFEAYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tBCpIQYGEea42MxsVYThfw" x="744" y="97"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uXL8sAYGEea42MxsVYThfw" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXMjwAYGEea42MxsVYThfw" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXMjwQYGEea42MxsVYThfw" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uXMjwgYGEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjwwYGEea42MxsVYThfw" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjxAYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjxQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMjxgYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMjxwYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjyAYGEea42MxsVYThfw" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjyQYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjygYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMjywYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMjzAYGEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXMjzQYGEea42MxsVYThfw" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXMjzgYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXMjzwYGEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXMj0AYGEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXMj0QYGEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_9oMeEAYFEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXL8sQYGEea42MxsVYThfw" x="318" y="359"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZHEYkAYHEea42MxsVYThfw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHE_oAYHEea42MxsVYThfw" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHE_oQYHEea42MxsVYThfw" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHE_ogYHEea42MxsVYThfw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHE_owYHEea42MxsVYThfw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZHE_pAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZHE_pQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZHE_pgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHE_pwYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHE_qAYHEea42MxsVYThfw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZHFmsAYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZHFmsQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZHFmsgYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHFmswYHEea42MxsVYThfw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHFmtAYHEea42MxsVYThfw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZHFmtQYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZHFmtgYHEea42MxsVYThfw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZHFmtwYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHFmuAYHEea42MxsVYThfw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_UsUEgAYHEea42MxsVYThfw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHEYkQYHEea42MxsVYThfw" x="498" y="102"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sHJMsQYGEea42MxsVYThfw" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sHJMsgYGEea42MxsVYThfw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sHJMswYGEea42MxsVYThfw">
+ <owner xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_3FXDMAYFEea42MxsVYThfw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wIKLEAYGEea42MxsVYThfw" type="4008" source="_tAzYkAYGEea42MxsVYThfw" target="_uXL8sAYGEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIKyIAYGEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIKyIQYGEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wIKyIgYGEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wIKyIwYGEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wIKLEQYGEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_Gq84AAYGEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wIKLEgYGEea42MxsVYThfw" points="[30, 100, -58, -187]$[88, 287, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wILZMAYGEea42MxsVYThfw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wILZMQYGEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZHcMAAYHEea42MxsVYThfw" type="4008" source="_ZHEYkAYHEea42MxsVYThfw" target="_uXL8sAYGEea42MxsVYThfw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHcMAwYHEea42MxsVYThfw" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHcMBAYHEea42MxsVYThfw" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHcMBQYHEea42MxsVYThfw" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHcMBgYHEea42MxsVYThfw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZHcMAQYHEea42MxsVYThfw"/>
+ <element xmi:type="uml:Realization" href="model.uml#_WTxKgAYHEea42MxsVYThfw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZHcMAgYHEea42MxsVYThfw" points="[0, 0, -318, -359]$[318, 359, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZHczEAYHEea42MxsVYThfw" id="(0.0,0.38)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZHczEQYHEea42MxsVYThfw" id="(0.0,0.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.uml
new file mode 100644
index 000000000..1b74fd24d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/conflicts/test2/result/model.uml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_fXBloAYFEea42MxsVYThfw" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_3FXDMAYFEea42MxsVYThfw" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_A-kkAAYGEea42MxsVYThfw" name="Rooter2Bis"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Gq84AAYGEea42MxsVYThfw" client="_A-kkAAYGEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RXeFEAYGEea42MxsVYThfw" name="Switch"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_UsUEgAYHEea42MxsVYThfw" name="NewRooter"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_WTxKgAYHEea42MxsVYThfw" client="_UsUEgAYHEea42MxsVYThfw" supplier="_9oMeEAYFEea42MxsVYThfw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_4HfOkAYFEea42MxsVYThfw" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_CFz44AYGEea42MxsVYThfw" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VjuqIAYGEea42MxsVYThfw" name="Antenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_oVRoIAYHEea42MxsVYThfw" client="_VjuqIAYGEea42MxsVYThfw" supplier="_mWdLAAYHEea42MxsVYThfw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qXxEUAYHEea42MxsVYThfw" name="NewAntenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_s_CokAYHEea42MxsVYThfw" client="_qXxEUAYHEea42MxsVYThfw" supplier="_mWdLAAYHEea42MxsVYThfw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5DTWkAYFEea42MxsVYThfw" name="commons">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_9oMeEAYFEea42MxsVYThfw" name="Rooter"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_mWdLAAYHEea42MxsVYThfw" name="IAntenna"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.notation
new file mode 100644
index 000000000..8b6b88ddf
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.notation
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Iv1HcAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_LIZhUAeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIbWgAeTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LIbWgQeTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_RhqJcAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RhqJcgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RhqwgAeTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RhqwgQeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwggeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwgweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwhAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwhQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwhgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwhweTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwiAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwiQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwigeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwiweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwjAeTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwjQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwjgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwjweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwkAeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_RhjbwAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqJcQeTEeapseY6dvJNJQ" x="51" y="66"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_S4KCUAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_S4KpYAeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_S4KpYQeTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S4KpYgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S4KpYweTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S4KpZAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S4KpZQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S4KpZgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S4KpZweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S4KpaAeTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S4KpaQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S4KpageTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S4KpaweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S4KpbAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_S4KpbQeTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_S4KpbgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_S4KpbweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_S4KpcAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S4KpcQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_S4D7sAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S4KCUQeTEeapseY6dvJNJQ" x="177" y="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VIbb0AeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VIbb0geTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VIbb0weTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VIbb1AeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VIbb1QeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VIbb1geTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VIbb1weTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VIbb2AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VIbb2QeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VIbb2geTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VIbb2weTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VIbb3AeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VIbb3QeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VIbb3geTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VIbb3weTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VIbb4AeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VIbb4QeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VIbb4geTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VIbb4weTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_VISR4AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VIbb0QeTEeapseY6dvJNJQ" x="270" y="140"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LIbWggeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIbWgweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIZhUQeTEeapseY6dvJNJQ" x="30" y="6" width="414" height="292"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MQd8oAeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MQd8ogeTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MQd8oweTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_Xob6cAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xob6cgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xob6cweTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xob6dAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Xob6dQeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Xob6dgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Xob6dweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Xob6eAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xob6eQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Xob6egeTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Xob6eweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Xob6fAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Xob6fQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xob6fgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Xob6fweTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Xob6gAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Xob6gQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Xob6ggeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xob6gweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_XoQ7UAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xob6cQeTEeapseY6dvJNJQ" x="28" y="28"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YnuNMAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YnuNMgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YnuNMweTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YnuNNAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNNQeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNNgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNNweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNOAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNOQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNOgeTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNOweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNPAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNPQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNPgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNPweTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNQAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNQQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNQgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNQweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_YnjOEAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNMQeTEeapseY6dvJNJQ" x="207" y="79"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MQd8pAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQd8pQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQd8oQeTEeapseY6dvJNJQ" x="503" y="17" width="345" height="236"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aE6j8AeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aE6j8geTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aE6j8weTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_b9zYMAeTEeapseY6dvJNJQ" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QAeTEeapseY6dvJNJQ" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QQeTEeapseY6dvJNJQ" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b9z_QgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_QweTEeapseY6dvJNJQ" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_RAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_RQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_RgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_RweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_SAeTEeapseY6dvJNJQ" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_SQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_SgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_SweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_TAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_TQeTEeapseY6dvJNJQ" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_TgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_TweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_UAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_UQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9zYMQeTEeapseY6dvJNJQ" x="66" y="18"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aE6j9AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j9QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_aE5V0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j8QeTEeapseY6dvJNJQ" x="470" y="316" width="427" height="174"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Iv1HcQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Iv1HcgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Iv1HcweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_d8jj4AeTEeapseY6dvJNJQ" type="4005" source="_VIbb0AeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_d8kK8AeTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d8kK8QeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d8kK8geTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d8kK8weTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_d8jj4QeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_d8RQAAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d8jj4geTEeapseY6dvJNJQ" points="[30, 19, -206, -88]$[285, 207, 49, 100]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d9U_8AeTEeapseY6dvJNJQ" id="(0.12,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d9U_8QeTEeapseY6dvJNJQ" id="(0.0,0.43)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eypeYAeTEeapseY6dvJNJQ" type="4005" source="_RhqJcAeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eypeYweTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eypeZAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eypeZQeTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eypeZgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eypeYQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_eya04AeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eypeYgeTEeapseY6dvJNJQ" points="[0, 0, -451, -254]$[451, 262, 0, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ezRwgAeTEeapseY6dvJNJQ" id="(0.36,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ezRwgQeTEeapseY6dvJNJQ" id="(0.0,0.65)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wsd_oAeTEeapseY6dvJNJQ" type="4005" source="_YnuNMAeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wsemsAeTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wsfNwAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wsfNwQeTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wsfNwgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wsd_oQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_wsQkQAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsd_ogeTEeapseY6dvJNJQ" points="[0, 0, 174, -159]$[-74, 246, 100, 87]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wtIG8AeTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wtIG8QeTEeapseY6dvJNJQ" id="(0.87,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.uml
new file mode 100644
index 000000000..f99f6b521
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/model.uml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Ei07gAeTEeapseY6dvJNJQ" name="RootElement">
+ <packagedElement xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <packagedElement xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aE5V0AeTEeapseY6dvJNJQ" name="Common">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_b9l80AeTEeapseY6dvJNJQ" name="IRooter"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.notation
new file mode 100644
index 000000000..18addd13d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.notation
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zK9bUAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="WaveDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_z-piEAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-piEgeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-qJIAeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z-qJIQeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-qJIgeTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-qJIweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-qJJAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-qJJQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-qJJgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-qJJweTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-qJKAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-qJKQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-qJKgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-qJKweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-qJLAeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-qJLQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-qJLgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-qJLweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-qJMAeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_XoQ7UAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-piEQeTEeapseY6dvJNJQ" x="261" y="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z-2WYAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-29cAeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-29cQeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z-29cgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29cweTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29dAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29dQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29dgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29dweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29eAeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29eQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29egeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29eweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29fAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29fQeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29fgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29fweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29gAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29gQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_YnjOEAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-2WYQeTEeapseY6dvJNJQ" x="477" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z_DKsAeTEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_DxwAeTEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_DxwQeTEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_DxwgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxwweTEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxxAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxxQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_DxxgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DxxweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxyAeTEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxyQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxygeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_DxyweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DxzAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxzQeTEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxzgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxzweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_Dx0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_Dx0QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DKsQeTEeapseY6dvJNJQ" x="406" y="226"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zK9bUQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zK9bUgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zK9bUweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_z_TCUAeTEeapseY6dvJNJQ" type="4008" source="_z-2WYAeTEeapseY6dvJNJQ" target="_z_DKsAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_TCUweTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_TCVAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_TpYAeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_TpYQeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_z_TCUQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_wsQkQAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z_TCUgeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z_TpYgeTEeapseY6dvJNJQ" id="(0.23,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z_TpYweTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.uml
new file mode 100644
index 000000000..374b0c443
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wave.uml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_MQcHcAeTEeapseY6dvJNJQ" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_XoQ7UAeTEeapseY6dvJNJQ" name="Antenna"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YnjOEAeTEeapseY6dvJNJQ" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_wsQkQAeTEeapseY6dvJNJQ" client="_YnjOEAeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.notation
new file mode 100644
index 000000000..7023c3148
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.notation
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_sLdSkAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="WiredDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sx0vAAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sx1WEAeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sx1WEQeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sx1WEgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WEweTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WFAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WFQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WFgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WFweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WGAeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WGQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WGgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WGweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WHAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WHQeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WHgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WHweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WIAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WIQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_RhjbwAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx0vAQeTEeapseY6dvJNJQ" x="169" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_syA8QAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_syA8QgeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_syA8QweTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_syBjUAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syBjUQeTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syBjUgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syBjUweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syBjVAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syBjVQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syBjVgeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syBjVweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syBjWAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syBjWQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syBjWgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syBjWweTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syBjXAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syBjXQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syBjXgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syBjXweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_S4D7sAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syA8QQeTEeapseY6dvJNJQ" x="383" y="93"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sySpEAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sySpEgeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sySpEweTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_syTQIAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syTQIQeTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syTQIgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syTQIweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syTQJAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syTQJQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syTQJgeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syTQJweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syTQKAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syTQKQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syTQKgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syTQKweTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syTQLAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syTQLQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syTQLgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syTQLweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_VISR4AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sySpEQeTEeapseY6dvJNJQ" x="601" y="77"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_syjHwAeTEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_syjHwgeTEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_syjHwweTEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_syjHxAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHxQeTEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjHxgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjHxweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjHyAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHyQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHygeTEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjHyweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjHzAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjHzQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHzgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHzweTEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjH0AeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjH0QeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjH0geTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjH0weTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHwQeTEeapseY6dvJNJQ" x="479" y="356"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sLdSkQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sLdSkgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sLdSkweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_sy4e8AeTEeapseY6dvJNJQ" type="4008" source="_sySpEAeTEeapseY6dvJNJQ" target="_syjHwAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sy5GAgeTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sy5GAweTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sy5GBAeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sy5GBQeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sy5GAAeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_d8RQAAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sy5GAQeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sy5tEAeTEeapseY6dvJNJQ" id="(0.6,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sy5tEQeTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_szHvgAeTEeapseY6dvJNJQ" type="4008" source="_sx0vAAeTEeapseY6dvJNJQ" target="_syjHwAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_szHvgweTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_szHvhAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_szHvhQeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_szHvhgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_szHvgQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_eya04AeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_szHvggeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szIWkAeTEeapseY6dvJNJQ" id="(1.0,0.67)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szIWkQeTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.uml
new file mode 100644
index 000000000..5b8d3beeb
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit1/wired.uml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_LIQ-cAeTEeapseY6dvJNJQ" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_RhjbwAeTEeapseY6dvJNJQ" name="Rooter1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_S4D7sAeTEeapseY6dvJNJQ" name="Switch"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VISR4AeTEeapseY6dvJNJQ" name="Rooter2"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_d8RQAAeTEeapseY6dvJNJQ" client="_VISR4AeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_eya04AeTEeapseY6dvJNJQ" client="_RhjbwAeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.notation
new file mode 100644
index 000000000..92d644cff
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.notation
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Iv1HcAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_MQd8oAeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MQd8ogeTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MQd8oweTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_YnuNMAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YnuNMgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YnuNMweTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YnuNNAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNNQeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNNgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNNweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNOAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNOQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNOgeTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNOweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNPAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNPQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNPgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNPweTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNQAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNQQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNQgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNQweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_YnjOEAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNMQeTEeapseY6dvJNJQ" x="29" y="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RWoIsAeUEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RWoIsgeUEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RWoIsweUEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RWoItAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RWoItQeUEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RWovwAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RWovwQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RWovwgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWovwweUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RWovxAeUEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RWovxQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RWovxgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RWovxweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWovyAeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RWovyQeUEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RWovygeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RWovyweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RWovzAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWovzQeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_RWe-wAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWoIsQeUEeapseY6dvJNJQ" x="371" y="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X0QTcAeUEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_X0QTcgeUEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X0QTcweUEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X0QTdAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X0QTdQeUEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X0QTdgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X0QTdweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X0QTeAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTeQeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X0QTegeUEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X0QTeweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X0QTfAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X0QTfQeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTfgeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X0QTfweUEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X0QTgAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X0QTgQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X0QTggeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTgweUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_X0F7YAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTcQeUEeapseY6dvJNJQ" x="194" y="38"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MQd8pAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQd8pQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQd8oQeTEeapseY6dvJNJQ" x="503" y="17" width="548" height="236"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aE6j8AeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aE6j8geTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aE6j8weTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_b9zYMAeTEeapseY6dvJNJQ" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QAeTEeapseY6dvJNJQ" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QQeTEeapseY6dvJNJQ" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b9z_QgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_QweTEeapseY6dvJNJQ" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_RAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_RQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_RgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_RweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_SAeTEeapseY6dvJNJQ" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_SQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_SgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_SweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_TAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_TQeTEeapseY6dvJNJQ" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_TgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_TweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_UAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_UQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9zYMQeTEeapseY6dvJNJQ" x="66" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Kf46YAeUEeapseY6dvJNJQ" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kf46YgeUEeapseY6dvJNJQ" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kf46YweUEeapseY6dvJNJQ" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kf46ZAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kf46ZQeUEeapseY6dvJNJQ" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kf5hcAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kf5hcQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kf5hcgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf5hcweUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kf5hdAeUEeapseY6dvJNJQ" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kf5hdQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kf5hdgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kf5hdweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf5heAeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kf5heQeUEeapseY6dvJNJQ" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kf5hegeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kf5heweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kf5hfAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf5hfQeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf46YQeUEeapseY6dvJNJQ" x="268" y="34"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aE6j9AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j9QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_aE5V0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j8QeTEeapseY6dvJNJQ" x="470" y="316" width="427" height="174"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Iv1HcQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Iv1HcgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Iv1HcweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wsd_oAeTEeapseY6dvJNJQ" type="4005" source="_YnuNMAeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wsemsAeTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wsfNwAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wsfNwQeTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wsfNwgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wsd_oQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_wsQkQAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsd_ogeTEeapseY6dvJNJQ" points="[0, 0, 174, -159]$[-74, 246, 100, 87]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wtIG8AeTEeapseY6dvJNJQ" id="(0.25,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wtIG8QeTEeapseY6dvJNJQ" id="(0.87,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VepG8AeUEeapseY6dvJNJQ" type="4005" source="_RWoIsAeUEeapseY6dvJNJQ" target="_Kf46YAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VepuAAeUEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VepuAQeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VepuAgeUEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VepuAweUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VepG8QeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Vef9AAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VepG8geUEeapseY6dvJNJQ" points="[0, 0, 136, -192]$[-36, 264, 100, 72]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VfHBAAeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VfHoEAeUEeapseY6dvJNJQ" id="(0.64,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Z2Vf8AeUEeapseY6dvJNJQ" type="4005" source="_X0QTcAeUEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z2Vf8weUEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2Vf9AeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z2Vf9QeUEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2Vf9geUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z2Vf8QeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Z1xfQAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z2Vf8geUEeapseY6dvJNJQ" points="[-45, 98, 161, -181]$[-106, 323, 100, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z2784AeUEeapseY6dvJNJQ" id="(0.36,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z2784QeUEeapseY6dvJNJQ" id="(0.77,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_azRCQAeUEeapseY6dvJNJQ" type="4005" source="_X0QTcAeUEeapseY6dvJNJQ" target="_Kf46YAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_azRCQweUEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_azRCRAeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_azRCRQeUEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_azRCRgeUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_azRCQQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_aytooAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_azRCQgeUEeapseY6dvJNJQ" points="[3, 13, -62, -249]$[41, 265, -24, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_az6igAeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_az6igQeUEeapseY6dvJNJQ" id="(0.07,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.uml
new file mode 100644
index 000000000..3409e29ef
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/model.uml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Ei07gAeTEeapseY6dvJNJQ" name="RootElement">
+ <packagedElement xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aE5V0AeTEeapseY6dvJNJQ" name="Common">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_b9l80AeTEeapseY6dvJNJQ" name="IRooter"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_KfvwcAeUEeapseY6dvJNJQ" name="IAntenna"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.notation
new file mode 100644
index 000000000..a9a117862
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.notation
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zK9bUAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="WaveDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_z-2WYAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-29cAeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-29cQeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z-29cgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29cweTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29dAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29dQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29dgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29dweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29eAeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29eQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29egeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29eweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29fAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29fQeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29fgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29fweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29gAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29gQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_YnjOEAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-2WYQeTEeapseY6dvJNJQ" x="477" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z_DKsAeTEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_DxwAeTEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_DxwQeTEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_DxwgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxwweTEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxxAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxxQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_DxxgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DxxweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxyAeTEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxyQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxygeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_DxyweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DxzAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxzQeTEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxzgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxzweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_Dx0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_Dx0QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DKsQeTEeapseY6dvJNJQ" x="466" y="298"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_clGzUAeUEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_clIBcAeUEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clIBcQeUEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clIBcgeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clIBcweUEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clIBdAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clIBdQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clIBdgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clIBdweUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clIBeAeUEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clIBeQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clIBegeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clIBeweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clIBfAeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clIBfQeUEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clIBfgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clIBfweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clIBgAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clIBgQeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_RWe-wAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clGzUQeUEeapseY6dvJNJQ" x="999" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_clX5EAeUEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_clX5EgeUEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clX5EweUEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clX5FAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clX5FQeUEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clX5FgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clX5FweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clX5GAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clX5GQeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clX5GgeUEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clX5GweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clX5HAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clX5HQeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clX5HgeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clYgIAeUEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clYgIQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clYgIgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clYgIweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clYgJAeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clX5EQeUEeapseY6dvJNJQ" x="701" y="288"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cl1zIAeUEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cl1zIgeUEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cl1zIweUEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cl1zJAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cl1zJQeUEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cl1zJgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cl1zJweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cl1zKAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zKQeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cl1zKgeUEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cl1zKweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cl1zLAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cl1zLQeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zLgeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cl1zLweUEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cl1zMAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cl1zMQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cl1zMgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zMweUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_X0F7YAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zIQeUEeapseY6dvJNJQ" x="738" y="50"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zK9bUQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zK9bUgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zK9bUweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_z_TCUAeTEeapseY6dvJNJQ" type="4008" source="_z-2WYAeTEeapseY6dvJNJQ" target="_z_DKsAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_TCUweTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_TCVAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_TpYAeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_TpYQeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_z_TCUQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_wsQkQAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z_TCUgeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z_TpYgeTEeapseY6dvJNJQ" id="(0.23,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z_TpYweTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_clq0AAeUEeapseY6dvJNJQ" type="4008" source="_clGzUAeUEeapseY6dvJNJQ" target="_clX5EAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_clq0AweUEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clq0BAeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clq0BQeUEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clq0BgeUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_clq0AQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Vef9AAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_clq0AgeUEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_clq0BweUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_clq0CAeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cmJ8MAeUEeapseY6dvJNJQ" type="4008" source="_cl1zIAeUEeapseY6dvJNJQ" target="_z_DKsAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmJ8MweUEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmJ8NAeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmKjQAeUEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmKjQQeUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cmJ8MQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Z1xfQAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cmJ8MgeUEeapseY6dvJNJQ" points="[0, 0, -406, -226]$[406, 226, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmKjQgeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmKjQweUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cmWJcAeUEeapseY6dvJNJQ" type="4008" source="_cl1zIAeUEeapseY6dvJNJQ" target="_clX5EAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmWwgAeUEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmWwgQeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmWwggeUEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmWwgweUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cmWJcQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_aytooAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cmWJcgeUEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmXXkAeUEeapseY6dvJNJQ" id="(0.25,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmXXkQeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.uml
new file mode 100644
index 000000000..be4343017
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit2/wave.uml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_MQcHcAeTEeapseY6dvJNJQ" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_YnjOEAeTEeapseY6dvJNJQ" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_wsQkQAeTEeapseY6dvJNJQ" client="_YnjOEAeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RWe-wAeUEeapseY6dvJNJQ" name="NewAntenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Vef9AAeUEeapseY6dvJNJQ" client="_RWe-wAeUEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_X0F7YAeUEeapseY6dvJNJQ" name="RooterAntenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Z1xfQAeUEeapseY6dvJNJQ" client="_X0F7YAeUEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_aytooAeUEeapseY6dvJNJQ" client="_X0F7YAeUEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.notation
new file mode 100644
index 000000000..893793a53
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.notation
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Iv1HcAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_LIZhUAeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIbWgAeTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LIbWgQeTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_RhqJcAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RhqJcgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RhqwgAeTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RhqwgQeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwggeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwgweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwhAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwhQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwhgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwhweTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwiAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwiQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwigeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwiweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwjAeTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwjQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwjgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwjweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwkAeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_RhjbwAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqJcQeTEeapseY6dvJNJQ" x="51" y="66"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LIbWggeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIbWgweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIZhUQeTEeapseY6dvJNJQ" x="30" y="6" width="414" height="292"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aE6j8AeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aE6j8geTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aE6j8weTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_b9zYMAeTEeapseY6dvJNJQ" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QAeTEeapseY6dvJNJQ" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QQeTEeapseY6dvJNJQ" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b9z_QgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_QweTEeapseY6dvJNJQ" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_RAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_RQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_RgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_RweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_SAeTEeapseY6dvJNJQ" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_SQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_SgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_SweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_TAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_TQeTEeapseY6dvJNJQ" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_TgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_TweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_UAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_UQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9zYMQeTEeapseY6dvJNJQ" x="66" y="18"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aE6j9AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j9QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_aE5V0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j8QeTEeapseY6dvJNJQ" x="470" y="316" width="427" height="174"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Iv1HcQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Iv1HcgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Iv1HcweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_eypeYAeTEeapseY6dvJNJQ" type="4005" source="_RhqJcAeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eypeYweTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eypeZAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eypeZQeTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eypeZgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eypeYQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_eya04AeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eypeYgeTEeapseY6dvJNJQ" points="[0, 0, -451, -254]$[451, 262, 0, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ezRwgAeTEeapseY6dvJNJQ" id="(0.36,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ezRwgQeTEeapseY6dvJNJQ" id="(0.0,0.65)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.uml
new file mode 100644
index 000000000..900a7245e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/model.uml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Ei07gAeTEeapseY6dvJNJQ" name="RootElement">
+ <packagedElement xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aE5V0AeTEeapseY6dvJNJQ" name="Common">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_b9l80AeTEeapseY6dvJNJQ" name="IRooter"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.notation
new file mode 100644
index 000000000..fb808ff60
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.notation
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_sLdSkAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="WiredDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sx0vAAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sx1WEAeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sx1WEQeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sx1WEgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WEweTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WFAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WFQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WFgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WFweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WGAeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WGQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WGgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WGweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WHAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WHQeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WHgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WHweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WIAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WIQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_RhjbwAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx0vAQeTEeapseY6dvJNJQ" x="169" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_syjHwAeTEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_syjHwgeTEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_syjHwweTEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_syjHxAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHxQeTEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjHxgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjHxweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjHyAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHyQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHygeTEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjHyweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjHzAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjHzQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHzgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHzweTEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjH0AeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjH0QeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjH0geTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjH0weTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHwQeTEeapseY6dvJNJQ" x="479" y="356"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sLdSkQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sLdSkgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sLdSkweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_szHvgAeTEeapseY6dvJNJQ" type="4008" source="_sx0vAAeTEeapseY6dvJNJQ" target="_syjHwAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_szHvgweTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_szHvhAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_szHvhQeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_szHvhgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_szHvgQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_eya04AeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_szHvggeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szIWkAeTEeapseY6dvJNJQ" id="(1.0,0.67)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szIWkQeTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.uml
new file mode 100644
index 000000000..7ff6204a0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/commit3/wired.uml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_LIQ-cAeTEeapseY6dvJNJQ" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_RhjbwAeTEeapseY6dvJNJQ" name="Rooter1"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_eya04AeTEeapseY6dvJNJQ" client="_RhjbwAeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.notation
new file mode 100644
index 000000000..5e24c5038
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.notation
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Iv1HcAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_MQd8oAeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MQd8ogeTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MQd8oweTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_YnuNMAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YnuNMgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YnuNMweTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YnuNNAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNNQeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNNgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNNweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNOAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNOQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNOgeTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNOweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNPAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNPQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNPgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YnuNPweTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YnuNQAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YnuNQQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YnuNQgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNQweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_YnjOEAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YnuNMQeTEeapseY6dvJNJQ" x="29" y="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RWoIsAeUEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RWoIsgeUEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RWoIsweUEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RWoItAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RWoItQeUEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RWovwAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RWovwQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RWovwgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWovwweUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RWovxAeUEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RWovxQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RWovxgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RWovxweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWovyAeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RWovyQeUEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RWovygeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RWovyweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RWovzAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWovzQeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_RWe-wAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RWoIsQeUEeapseY6dvJNJQ" x="371" y="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_X0QTcAeUEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_X0QTcgeUEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X0QTcweUEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X0QTdAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X0QTdQeUEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X0QTdgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X0QTdweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X0QTeAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTeQeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X0QTegeUEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X0QTeweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X0QTfAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X0QTfQeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTfgeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_X0QTfweUEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X0QTgAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X0QTgQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X0QTggeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTgweUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_X0F7YAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X0QTcQeUEeapseY6dvJNJQ" x="194" y="38"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MQd8pAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQd8pQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQd8oQeTEeapseY6dvJNJQ" x="503" y="17" width="548" height="236"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LIZhUAeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIbWgAeTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LIbWgQeTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_RhqJcAeTEeapseY6dvJNJQ" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RhqJcgeTEeapseY6dvJNJQ" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RhqwgAeTEeapseY6dvJNJQ" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RhqwgQeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwggeTEeapseY6dvJNJQ" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwgweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwhAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwhQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwhgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwhweTEeapseY6dvJNJQ" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwiAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwiQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwigeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwiweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RhqwjAeTEeapseY6dvJNJQ" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RhqwjQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RhqwjgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RhqwjweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqwkAeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_RhjbwAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhqJcQeTEeapseY6dvJNJQ" x="51" y="66"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LIbWggeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIbWgweTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LIZhUQeTEeapseY6dvJNJQ" x="30" y="6" width="414" height="292"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aE6j8AeTEeapseY6dvJNJQ" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aE6j8geTEeapseY6dvJNJQ" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aE6j8weTEeapseY6dvJNJQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_b9zYMAeTEeapseY6dvJNJQ" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QAeTEeapseY6dvJNJQ" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b9z_QQeTEeapseY6dvJNJQ" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b9z_QgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_QweTEeapseY6dvJNJQ" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_RAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_RQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_RgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_RweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_SAeTEeapseY6dvJNJQ" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_SQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_SgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_SweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_TAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b9z_TQeTEeapseY6dvJNJQ" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b9z_TgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b9z_TweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b9z_UAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9z_UQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b9zYMQeTEeapseY6dvJNJQ" x="66" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Kf46YAeUEeapseY6dvJNJQ" type="3023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kf46YgeUEeapseY6dvJNJQ" type="5049"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kf46YweUEeapseY6dvJNJQ" type="8515">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kf46ZAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kf46ZQeUEeapseY6dvJNJQ" type="7027">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kf5hcAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kf5hcQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kf5hcgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf5hcweUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kf5hdAeUEeapseY6dvJNJQ" type="7028">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kf5hdQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kf5hdgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kf5hdweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf5heAeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kf5heQeUEeapseY6dvJNJQ" type="7029">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kf5hegeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kf5heweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kf5hfAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf5hfQeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kf46YQeUEeapseY6dvJNJQ" x="268" y="34"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aE6j9AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j9QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_aE5V0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aE6j8QeTEeapseY6dvJNJQ" x="470" y="316" width="427" height="174"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Iv1HcQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Iv1HcgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Iv1HcweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Ei07gAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wsd_oAeTEeapseY6dvJNJQ" type="4005" source="_YnuNMAeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wsemsAeTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wsfNwAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wsfNwQeTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wsfNwgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wsd_oQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_wsQkQAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsd_ogeTEeapseY6dvJNJQ" points="[0, 0, 174, -159]$[-74, 246, 100, 87]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wtIG8AeTEeapseY6dvJNJQ" id="(0.25,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wtIG8QeTEeapseY6dvJNJQ" id="(0.87,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VepG8AeUEeapseY6dvJNJQ" type="4005" source="_RWoIsAeUEeapseY6dvJNJQ" target="_Kf46YAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VepuAAeUEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VepuAQeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VepuAgeUEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VepuAweUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VepG8QeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Vef9AAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VepG8geUEeapseY6dvJNJQ" points="[0, 0, 136, -192]$[-36, 264, 100, 72]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VfHBAAeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VfHoEAeUEeapseY6dvJNJQ" id="(0.64,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Z2Vf8AeUEeapseY6dvJNJQ" type="4005" source="_X0QTcAeUEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z2Vf8weUEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2Vf9AeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z2Vf9QeUEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2Vf9geUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z2Vf8QeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Z1xfQAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z2Vf8geUEeapseY6dvJNJQ" points="[-45, 98, 161, -181]$[-106, 323, 100, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z2784AeUEeapseY6dvJNJQ" id="(0.36,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z2784QeUEeapseY6dvJNJQ" id="(0.77,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_azRCQAeUEeapseY6dvJNJQ" type="4005" source="_X0QTcAeUEeapseY6dvJNJQ" target="_Kf46YAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_azRCQweUEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_azRCRAeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_azRCRQeUEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_azRCRgeUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_azRCQQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_aytooAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_azRCQgeUEeapseY6dvJNJQ" points="[3, 13, -62, -249]$[41, 265, -24, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_az6igAeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_az6igQeUEeapseY6dvJNJQ" id="(0.07,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eypeYAeTEeapseY6dvJNJQ" type="4005" source="_RhqJcAeTEeapseY6dvJNJQ" target="_b9zYMAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eypeYweTEeapseY6dvJNJQ" type="6012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eypeZAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eypeZQeTEeapseY6dvJNJQ" type="6013">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eypeZgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eypeYQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_eya04AeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eypeYgeTEeapseY6dvJNJQ" points="[0, 0, -451, -254]$[451, 262, 0, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ezRwgAeTEeapseY6dvJNJQ" id="(0.36,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ezRwgQeTEeapseY6dvJNJQ" id="(0.0,0.65)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.uml
new file mode 100644
index 000000000..e9779ef97
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/model.uml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Ei07gAeTEeapseY6dvJNJQ" name="RootElement">
+ <packagedElement xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <packagedElement xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aE5V0AeTEeapseY6dvJNJQ" name="Common">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_b9l80AeTEeapseY6dvJNJQ" name="IRooter"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_KfvwcAeUEeapseY6dvJNJQ" name="IAntenna"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.notation
new file mode 100644
index 000000000..a9a117862
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.notation
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zK9bUAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="WaveDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_z-2WYAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-29cAeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z-29cQeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z-29cgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29cweTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29dAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29dQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29dgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29dweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29eAeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29eQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29egeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29eweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29fAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z-29fQeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z-29fgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z-29fweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z-29gAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-29gQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_YnjOEAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-2WYQeTEeapseY6dvJNJQ" x="477" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z_DKsAeTEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_DxwAeTEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_DxwQeTEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_DxwgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxwweTEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxxAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxxQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_DxxgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DxxweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxyAeTEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxyQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxygeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_DxyweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DxzAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z_DxzQeTEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z_DxzgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z_DxzweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z_Dx0AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_Dx0QeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_DKsQeTEeapseY6dvJNJQ" x="466" y="298"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_clGzUAeUEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_clIBcAeUEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clIBcQeUEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clIBcgeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clIBcweUEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clIBdAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clIBdQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clIBdgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clIBdweUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clIBeAeUEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clIBeQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clIBegeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clIBeweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clIBfAeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clIBfQeUEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clIBfgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clIBfweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clIBgAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clIBgQeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_RWe-wAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clGzUQeUEeapseY6dvJNJQ" x="999" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_clX5EAeUEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_clX5EgeUEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clX5EweUEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clX5FAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clX5FQeUEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clX5FgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clX5FweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clX5GAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clX5GQeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clX5GgeUEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clX5GweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clX5HAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clX5HQeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clX5HgeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_clYgIAeUEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_clYgIQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_clYgIgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_clYgIweUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clYgJAeUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_clX5EQeUEeapseY6dvJNJQ" x="701" y="288"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cl1zIAeUEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cl1zIgeUEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cl1zIweUEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cl1zJAeUEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cl1zJQeUEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cl1zJgeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cl1zJweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cl1zKAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zKQeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cl1zKgeUEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cl1zKweUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cl1zLAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cl1zLQeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zLgeUEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cl1zLweUEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cl1zMAeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cl1zMQeUEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cl1zMgeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zMweUEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wave.uml#_X0F7YAeUEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cl1zIQeUEeapseY6dvJNJQ" x="738" y="50"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zK9bUQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zK9bUgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zK9bUweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="wave.uml#_MQcHcAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_z_TCUAeTEeapseY6dvJNJQ" type="4008" source="_z-2WYAeTEeapseY6dvJNJQ" target="_z_DKsAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_TCUweTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_TCVAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z_TpYAeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z_TpYQeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_z_TCUQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_wsQkQAeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z_TCUgeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z_TpYgeTEeapseY6dvJNJQ" id="(0.23,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z_TpYweTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_clq0AAeUEeapseY6dvJNJQ" type="4008" source="_clGzUAeUEeapseY6dvJNJQ" target="_clX5EAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_clq0AweUEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clq0BAeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_clq0BQeUEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_clq0BgeUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_clq0AQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Vef9AAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_clq0AgeUEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_clq0BweUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_clq0CAeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cmJ8MAeUEeapseY6dvJNJQ" type="4008" source="_cl1zIAeUEeapseY6dvJNJQ" target="_z_DKsAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmJ8MweUEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmJ8NAeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmKjQAeUEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmKjQQeUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cmJ8MQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_Z1xfQAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cmJ8MgeUEeapseY6dvJNJQ" points="[0, 0, -406, -226]$[406, 226, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmKjQgeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmKjQweUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cmWJcAeUEeapseY6dvJNJQ" type="4008" source="_cl1zIAeUEeapseY6dvJNJQ" target="_clX5EAeUEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmWwgAeUEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmWwgQeUEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cmWwggeUEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cmWwgweUEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cmWJcQeUEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wave.uml#_aytooAeUEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cmWJcgeUEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmXXkAeUEeapseY6dvJNJQ" id="(0.25,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cmXXkQeUEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.uml
new file mode 100644
index 000000000..be4343017
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wave.uml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_MQcHcAeTEeapseY6dvJNJQ" name="wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_YnjOEAeTEeapseY6dvJNJQ" name="WifiRooter"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_wsQkQAeTEeapseY6dvJNJQ" client="_YnjOEAeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RWe-wAeUEeapseY6dvJNJQ" name="NewAntenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Vef9AAeUEeapseY6dvJNJQ" client="_RWe-wAeUEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_X0F7YAeUEeapseY6dvJNJQ" name="RooterAntenna"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_Z1xfQAeUEeapseY6dvJNJQ" client="_X0F7YAeUEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_aytooAeUEeapseY6dvJNJQ" client="_X0F7YAeUEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_KfvwcAeUEeapseY6dvJNJQ"/>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.di
new file mode 100644
index 000000000..8cb3993bd
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.notation
new file mode 100644
index 000000000..fb808ff60
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.notation
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_sLdSkAeTEeapseY6dvJNJQ" type="PapyrusUMLClassDiagram" name="WiredDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sx0vAAeTEeapseY6dvJNJQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sx1WEAeTEeapseY6dvJNJQ" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sx1WEQeTEeapseY6dvJNJQ" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sx1WEgeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WEweTEeapseY6dvJNJQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WFAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WFQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WFgeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WFweTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WGAeTEeapseY6dvJNJQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WGQeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WGgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WGweTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WHAeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sx1WHQeTEeapseY6dvJNJQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sx1WHgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sx1WHweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sx1WIAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx1WIQeTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="wired.uml#_RhjbwAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sx0vAQeTEeapseY6dvJNJQ" x="169" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_syjHwAeTEeapseY6dvJNJQ" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_syjHwgeTEeapseY6dvJNJQ" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_syjHwweTEeapseY6dvJNJQ" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_syjHxAeTEeapseY6dvJNJQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHxQeTEeapseY6dvJNJQ" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjHxgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjHxweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjHyAeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHyQeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHygeTEeapseY6dvJNJQ" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjHyweTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjHzAeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjHzQeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHzgeTEeapseY6dvJNJQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_syjHzweTEeapseY6dvJNJQ" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_syjH0AeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_syjH0QeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_syjH0geTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjH0weTEeapseY6dvJNJQ"/>
+ </children>
+ <element xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_syjHwQeTEeapseY6dvJNJQ" x="479" y="356"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sLdSkQeTEeapseY6dvJNJQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sLdSkgeTEeapseY6dvJNJQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sLdSkweTEeapseY6dvJNJQ">
+ <owner xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ </styles>
+ <element xmi:type="uml:Package" href="wired.uml#_LIQ-cAeTEeapseY6dvJNJQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_szHvgAeTEeapseY6dvJNJQ" type="4008" source="_sx0vAAeTEeapseY6dvJNJQ" target="_syjHwAeTEeapseY6dvJNJQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_szHvgweTEeapseY6dvJNJQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_szHvhAeTEeapseY6dvJNJQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_szHvhQeTEeapseY6dvJNJQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_szHvhgeTEeapseY6dvJNJQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_szHvgQeTEeapseY6dvJNJQ"/>
+ <element xmi:type="uml:Realization" href="wired.uml#_eya04AeTEeapseY6dvJNJQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_szHvggeTEeapseY6dvJNJQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szIWkAeTEeapseY6dvJNJQ" id="(1.0,0.67)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szIWkQeTEeapseY6dvJNJQ" id="(0.0,0.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.uml
new file mode 100644
index 000000000..7ff6204a0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/control/result/wired.uml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_LIQ-cAeTEeapseY6dvJNJQ" name="wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_RhjbwAeTEeapseY6dvJNJQ" name="Rooter1"/>
+ <packagedElement xmi:type="uml:Realization" xmi:id="_eya04AeTEeapseY6dvJNJQ" client="_RhjbwAeTEeapseY6dvJNJQ">
+ <supplier xmi:type="uml:Interface" href="model.uml#_b9l80AeTEeapseY6dvJNJQ"/>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.notation
new file mode 100644
index 000000000..8fdf6fe4a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.notation
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qP5O4ALfEeaaELR1VeNn7g" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sa01YALfEeaaELR1VeNn7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sa2DgALfEeaaELR1VeNn7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sa2DgQLfEeaaELR1VeNn7g" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_3vuREALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3vu4IALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3vu4IQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3vu4IgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3vu4IwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3vu4JALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3vu4JQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3vu4JgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3vu4JwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3vu4KALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3vu4KQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3vu4KgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3vu4KwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3vu4LALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3vu4LQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3vu4LgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3vu4LwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3vu4MALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3vu4MQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_3vm8UALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3vuREQLfEeaaELR1VeNn7g" x="30" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5ljKQALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ljxUALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ljxUQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ljxUgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxUwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxVALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxVQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxVgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxVwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxWALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxWQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxWgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxWwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxXALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxXQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxXgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxXwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxYALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxYQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_5lcckALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljKQQLfEeaaELR1VeNn7g" x="217" y="120"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sa2DggLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sa2DgwLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_sapPMALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sa01YQLfEeaaELR1VeNn7g" x="85" y="74" width="402" height="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tXFpUALfEeaaELR1VeNn7g" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tXGQYALfEeaaELR1VeNn7g" type="5020"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tXGQYQLfEeaaELR1VeNn7g" type="7009">
+ <children xmi:type="notation:Shape" xmi:id="_7M-bEALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7M_CIALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7M_CIQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7M_CIgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CIwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CJALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CJQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CJgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CJwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CKALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CKQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CKgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CKwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CLALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CLQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CLgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CLwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CMALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CMQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_7M0DAALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M-bEQLfEeaaELR1VeNn7g" x="60" y="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__lsHwALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="__lsu0ALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__lsu0QLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__lsu0gLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__lsu0wLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__lsu1ALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__lsu1QLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__lsu1gLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__lsu1wLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__lsu2ALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__lsu2QLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__lsu2gLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__lsu2wLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__lsu3ALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__lsu3QLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__lsu3gLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__lsu3wLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__lsu4ALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__lsu4QLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#__lf6gALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__lsHwQLfEeaaELR1VeNn7g" x="237" y="125"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tXGQYgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tXGQYwLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Model" href="model.uml#_tXD0IALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tXFpUQLfEeaaELR1VeNn7g" x="581" y="68" width="398" height="354"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qP5O4QLfEeaaELR1VeNn7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qP5O4gLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qP5O4wLfEeaaELR1VeNn7g">
+ <owner xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.uml
new file mode 100644
index 000000000..b97b3d88a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit1/model.uml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qK6oQALfEeaaELR1VeNn7g" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_sapPMALfEeaaELR1VeNn7g" name="Wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_3vm8UALfEeaaELR1VeNn7g" name="Rooter1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5lcckALfEeaaELR1VeNn7g" name="Switch1"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_tXD0IALfEeaaELR1VeNn7g" name="Wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_7M0DAALfEeaaELR1VeNn7g" name="aerial1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="__lf6gALfEeaaELR1VeNn7g" name="relay1"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.notation
new file mode 100644
index 000000000..8ef4ba74c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.notation
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qP5O4ALfEeaaELR1VeNn7g" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_tXFpUALfEeaaELR1VeNn7g" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tXGQYALfEeaaELR1VeNn7g" type="5020"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tXGQYQLfEeaaELR1VeNn7g" type="7009">
+ <children xmi:type="notation:Shape" xmi:id="_7M-bEALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7M_CIALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7M_CIQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7M_CIgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CIwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CJALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CJQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CJgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CJwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CKALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CKQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CKgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CKwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CLALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CLQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CLgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CLwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CMALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CMQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_7M0DAALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M-bEQLfEeaaELR1VeNn7g" x="60" y="81"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tXGQYgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tXGQYwLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Model" href="model.uml#_tXD0IALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tXFpUQLfEeaaELR1VeNn7g" x="581" y="68" width="398" height="354"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qP5O4QLfEeaaELR1VeNn7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qP5O4gLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qP5O4wLfEeaaELR1VeNn7g">
+ <owner xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.uml
new file mode 100644
index 000000000..b55d69c64
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit2/model.uml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qK6oQALfEeaaELR1VeNn7g" name="RootElement">
+ <packagedElement xmi:type="uml:Model" xmi:id="_tXD0IALfEeaaELR1VeNn7g" name="Wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_7M0DAALfEeaaELR1VeNn7g" name="aerial1"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.notation
new file mode 100644
index 000000000..6b097a02b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.notation
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qP5O4ALfEeaaELR1VeNn7g" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sa01YALfEeaaELR1VeNn7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sa2DgALfEeaaELR1VeNn7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sa2DgQLfEeaaELR1VeNn7g" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_5ljKQALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ljxUALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ljxUQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ljxUgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxUwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxVALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxVQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxVgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxVwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxWALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxWQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxWgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxWwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxXALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxXQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxXgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxXwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxYALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxYQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_5lcckALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljKQQLfEeaaELR1VeNn7g" x="217" y="120"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sa2DggLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sa2DgwLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_sapPMALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sa01YQLfEeaaELR1VeNn7g" x="85" y="74" width="402" height="326"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qP5O4QLfEeaaELR1VeNn7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qP5O4gLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qP5O4wLfEeaaELR1VeNn7g">
+ <owner xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.uml
new file mode 100644
index 000000000..db15100e7
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/commit3/model.uml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qK6oQALfEeaaELR1VeNn7g" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_sapPMALfEeaaELR1VeNn7g" name="Wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_5lcckALfEeaaELR1VeNn7g" name="Switch1"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.notation
new file mode 100644
index 000000000..6939e52ac
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.notation
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qP5O4ALfEeaaELR1VeNn7g" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sa01YALfEeaaELR1VeNn7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sa2DgALfEeaaELR1VeNn7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sa2DgQLfEeaaELR1VeNn7g" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_5ljKQALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ljxUALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ljxUQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ljxUgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxUwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxVALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxVQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxVgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxVwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxWALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxWQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxWgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxWwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxXALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5ljxXQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5ljxXgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5ljxXwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5ljxYALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljxYQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_5lcckALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5ljKQQLfEeaaELR1VeNn7g" x="217" y="120"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sa2DggLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sa2DgwLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_sapPMALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sa01YQLfEeaaELR1VeNn7g" x="85" y="74" width="402" height="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tXFpUALfEeaaELR1VeNn7g" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tXGQYALfEeaaELR1VeNn7g" type="5020"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tXGQYQLfEeaaELR1VeNn7g" type="7009">
+ <children xmi:type="notation:Shape" xmi:id="_7M-bEALfEeaaELR1VeNn7g" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7M_CIALfEeaaELR1VeNn7g" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7M_CIQLfEeaaELR1VeNn7g" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7M_CIgLfEeaaELR1VeNn7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CIwLfEeaaELR1VeNn7g" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CJALfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CJQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CJgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CJwLfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CKALfEeaaELR1VeNn7g" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CKQLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CKgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CKwLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CLALfEeaaELR1VeNn7g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7M_CLQLfEeaaELR1VeNn7g" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7M_CLgLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7M_CLwLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7M_CMALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M_CMQLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_7M0DAALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7M-bEQLfEeaaELR1VeNn7g" x="60" y="81"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tXGQYgLfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tXGQYwLfEeaaELR1VeNn7g"/>
+ </children>
+ <element xmi:type="uml:Model" href="model.uml#_tXD0IALfEeaaELR1VeNn7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tXFpUQLfEeaaELR1VeNn7g" x="581" y="68" width="398" height="354"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qP5O4QLfEeaaELR1VeNn7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qP5O4gLfEeaaELR1VeNn7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qP5O4wLfEeaaELR1VeNn7g">
+ <owner xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_qK6oQALfEeaaELR1VeNn7g"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.uml
new file mode 100644
index 000000000..2742f0a25
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/noConflicts/result/model.uml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qK6oQALfEeaaELR1VeNn7g" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_sapPMALfEeaaELR1VeNn7g" name="Wired">
+ <packagedElement xmi:type="uml:Class" xmi:id="_5lcckALfEeaaELR1VeNn7g" name="Switch1"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_tXD0IALfEeaaELR1VeNn7g" name="Wave">
+ <packagedElement xmi:type="uml:Class" xmi:id="_7M0DAALfEeaaELR1VeNn7g" name="aerial1"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/rac.zip b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/rac.zip
new file mode 100644
index 000000000..3881a28f1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/rac.zip
Binary files differ
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/solvable.zip b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/solvable.zip
new file mode 100644
index 000000000..72ce82dd2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/solvable.zip
Binary files differ
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/unsolvable.zip b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/unsolvable.zip
new file mode 100644
index 000000000..efb93af50
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/additive/unsolvable.zip
Binary files differ
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java
index ce27dcb62..b0883283b 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java
@@ -15,7 +15,7 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.compare.Comparison;
import org.eclipse.emf.compare.Diff;
import org.eclipse.emf.compare.ResourceAttachmentChange;
-import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move.AbstractResourceAttachmentChangeMoveTests;
+import org.eclipse.emf.compare.diagram.papyrus.tests.AbstractGitTestCase;
import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationModel;
@@ -24,7 +24,7 @@ import org.junit.Ignore;
import org.junit.Test;
@SuppressWarnings({"nls", "unused" })
-public class AttachmentChangeImplicationTest extends AbstractResourceAttachmentChangeMoveTests {
+public class AttachmentChangeImplicationTest extends AbstractGitTestCase {
/**
* Path to the test data.
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java
index 827ca601a..5294116ea 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java
@@ -50,6 +50,7 @@ import org.eclipse.emf.compare.EMFCompare;
import org.eclipse.emf.compare.EMFCompare.Builder;
import org.eclipse.emf.compare.ResourceAttachmentChange;
import org.eclipse.emf.compare.diagram.internal.extensions.DiagramChange;
+import org.eclipse.emf.compare.diagram.papyrus.tests.AbstractGitTestCase;
import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.GitTestRepository;
import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.MockSystemReader;
import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
@@ -103,7 +104,7 @@ import com.google.common.collect.Iterables;
* @author <a href="mailto:axel.richard@obeo.fr">Axel Richard</a>
*/
@SuppressWarnings({"restriction", "nls", "unused" })
-public class ResourceAttachmentChangeMoveConflictTests extends AbstractResourceAttachmentChangeMoveTests {
+public class ResourceAttachmentChangeMoveConflictTests extends AbstractGitTestCase {
/**
* Path to the test data.
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java
index 4885191ec..6d457b7e2 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java
@@ -31,6 +31,7 @@ import org.eclipse.emf.compare.DifferenceKind;
import org.eclipse.emf.compare.MatchResource;
import org.eclipse.emf.compare.ResourceAttachmentChange;
import org.eclipse.emf.compare.diagram.internal.merge.CompareDiagramMerger;
+import org.eclipse.emf.compare.diagram.papyrus.tests.AbstractGitTestCase;
import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
import org.eclipse.emf.compare.merge.IMerger;
import org.eclipse.emf.compare.uml2.internal.merge.UMLMerger;
@@ -43,7 +44,7 @@ import org.junit.Test;
import com.google.common.base.Predicate;
@SuppressWarnings("restriction")
-public class ResourceAttachmentChangeMoveOrderTests extends AbstractResourceAttachmentChangeMoveTests {
+public class ResourceAttachmentChangeMoveOrderTests extends AbstractGitTestCase {
/** Path to the test data. */
private static final String TEST_DATA_PATH = "src/org/eclipse/emf/compare/diagram/papyrus/tests/resourceattachmentchange/move/data/";
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java
index 0a626e3e3..bad00d1ca 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.compare.diagram.papyrus.tests.egit.ResourceAttachmentChan
import org.eclipse.emf.compare.diagram.papyrus.tests.egit.ResourceAttachmentChangeDelete1GitMergeTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.egit.ResourceAttachmentChangeDelete2GitMergeTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.egit.StereotypeConflictTest;
+import org.eclipse.emf.compare.diagram.papyrus.tests.merge.AdditiveMergeDiagramTests;
import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.implication.AttachmentChangeImplicationTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveConflictTests;
import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveNoConflictTests;
@@ -49,7 +50,7 @@ import junit.textui.TestRunner;
ResourceAttachmentChangeDelete2GitMergeTest.class, ResourceAttachmentChangeMoveConflictTests.class,
ResourceAttachmentChangeMoveNoConflictTests.class, ResourceAttachmentChangeMoveOrderTests.class,
StereotypeConflictTest.class, IgnoreDiFileChangesInGitMergeTest.class,
- MoveOfDiagramConflictDetectionTest.class })
+ MoveOfDiagramConflictDetectionTest.class, AdditiveMergeDiagramTests.class, })
public class PapyrusGitTests {
/**
* Launches the test with the given arguments.
diff --git a/plugins/org.eclipse.emf.compare.diagram/plugin.xml b/plugins/org.eclipse.emf.compare.diagram/plugin.xml
index 9009a926d..19318ebd0 100644
--- a/plugins/org.eclipse.emf.compare.diagram/plugin.xml
+++ b/plugins/org.eclipse.emf.compare.diagram/plugin.xml
@@ -40,6 +40,10 @@
class="org.eclipse.emf.compare.diagram.internal.merge.CompareDiagramMerger"
ranking="20">
</merger>
+ <merger
+ class="org.eclipse.emf.compare.diagram.internal.merge.AdditiveCompareDiagramMerger"
+ ranking="20">
+ </merger>
</extension>
</plugin>
diff --git a/plugins/org.eclipse.emf.compare.diagram/src/org/eclipse/emf/compare/diagram/internal/merge/AdditiveCompareDiagramMerger.java b/plugins/org.eclipse.emf.compare.diagram/src/org/eclipse/emf/compare/diagram/internal/merge/AdditiveCompareDiagramMerger.java
new file mode 100644
index 000000000..51b236a17
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram/src/org/eclipse/emf/compare/diagram/internal/merge/AdditiveCompareDiagramMerger.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.internal.merge;
+
+import static org.eclipse.emf.compare.DifferenceKind.DELETE;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceSource.RIGHT;
+import static org.eclipse.emf.compare.DifferenceState.MERGED;
+import static org.eclipse.emf.compare.DifferenceState.UNRESOLVED;
+
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.merge.AbstractMerger;
+import org.eclipse.emf.compare.merge.AdditiveMergeCriterion;
+import org.eclipse.emf.compare.merge.IMergeCriterion;
+
+/**
+ * This specific implementation of {@link AbstractMerger} will be used to merge conflicts in an additive merge
+ * context.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ */
+public class AdditiveCompareDiagramMerger extends CompareDiagramMerger {
+
+ /**
+ * The constructor specify the context where this merger can be used.
+ */
+ public AdditiveCompareDiagramMerger() {
+ super();
+ mergeOptions.put(IMergeCriterion.OPTION_MERGE_CRITERION, AdditiveMergeCriterion.INSTANCE);
+ }
+
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == AdditiveMergeCriterion.INSTANCE;
+ }
+
+ @Override
+ public void copyRightToLeft(Diff target, Monitor monitor) {
+ if (target.getState() != UNRESOLVED) {
+ return;
+ }
+
+ if (target.getSource() == RIGHT && target.getKind() != DELETE) {
+ super.copyRightToLeft(target, monitor);
+ } else if (target.getSource() == LEFT && target.getKind() == DELETE) {
+ super.copyRightToLeft(target, monitor);
+ } else {
+ target.setState(MERGED);
+ for (Diff refiningDiff : target.getRefinedBy()) {
+ refiningDiff.setState(MERGED);
+ }
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.egit/plugin.properties b/plugins/org.eclipse.emf.compare.egit/plugin.properties
index 49be1a2f0..6ec4663e2 100644
--- a/plugins/org.eclipse.emf.compare.egit/plugin.properties
+++ b/plugins/org.eclipse.emf.compare.egit/plugin.properties
@@ -12,3 +12,4 @@ pluginName = EMF Compare EGit Support
providerName = Eclipse Modeling Project
StrategyRecursiveModel-Label = Recursive Model Merge Strategy (from EMFCompare)
+StrategyAdditiveModel-Label = Additive Model Merge Strategy (from EMFCompare)
diff --git a/plugins/org.eclipse.emf.compare.egit/plugin.xml b/plugins/org.eclipse.emf.compare.egit/plugin.xml
index 6b0279b2d..a1d616759 100644
--- a/plugins/org.eclipse.emf.compare.egit/plugin.xml
+++ b/plugins/org.eclipse.emf.compare.egit/plugin.xml
@@ -17,6 +17,10 @@
class="org.eclipse.emf.compare.egit.internal.merge.StrategyRecursiveModel"
label="%StrategyRecursiveModel-Label">
</strategy>
+ <strategy
+ class="org.eclipse.emf.compare.egit.internal.merge.StrategyAdditiveModel"
+ label="%StrategyAdditiveModel-Label">
+ </strategy>
</extension>
<extension
point="org.eclipse.emf.compare.rcp.postProcessor">
diff --git a/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/AdditiveModelMerger.java b/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/AdditiveModelMerger.java
new file mode 100644
index 000000000..ad8f77720
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/AdditiveModelMerger.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.egit.internal.merge;
+
+import java.util.Set;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.compare.ide.IAdditiveResourceMappingMerger;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.team.core.mapping.IResourceMappingMerger;
+
+/**
+ * This extends the recursive model merger in order to specialize it for additive merge. The goal of this
+ * merger is to allow users to split a model in several architectural releases focused on a feature and
+ * stripped out of everything else and then merge this models.
+ * <p>
+ * The additive model merger extends the behavior of the recursive model merger. It only customize the
+ * resource mapping merger used.
+ * </p>
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ */
+public class AdditiveModelMerger extends RecursiveModelMerger {
+
+ /**
+ * Default constructor.
+ *
+ * @param db
+ * The repository
+ * @param inCore
+ * a parameter
+ */
+ public AdditiveModelMerger(Repository db, boolean inCore) {
+ super(db, inCore);
+ }
+
+ @Override
+ protected IResourceMappingMerger getResourceMappingMerger(Set<IResource> logicalModel)
+ throws CoreException {
+ return LogicalModels.findAdapter(logicalModel, IAdditiveResourceMappingMerger.class);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/RecursiveModelMerger.java b/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/RecursiveModelMerger.java
index c22a8fda2..0ca25b5c5 100644
--- a/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/RecursiveModelMerger.java
+++ b/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/RecursiveModelMerger.java
@@ -188,7 +188,7 @@ public class RecursiveModelMerger extends RecursiveMerger {
try {
// We need to refresh because new resources may have been added
refreshRoots(subscriber.roots());
- modelMerger = LogicalModels.findAdapter(logicalModel, IResourceMappingMerger.class);
+ modelMerger = getResourceMappingMerger(logicalModel);
} catch (CoreException e) {
Activator.logError(MergeText.RecursiveModelMerger_AdaptError, e);
// ignore this model and fall back to default
@@ -241,6 +241,11 @@ public class RecursiveModelMerger extends RecursiveMerger {
return true;
}
+ protected IResourceMappingMerger getResourceMappingMerger(Set<IResource> logicalModel)
+ throws CoreException {
+ return LogicalModels.findAdapter(logicalModel, IResourceMappingMerger.class);
+ }
+
private boolean fallBackToDefaultMerge(TreeWalk treeWalk, boolean ignoreConflicts)
throws MissingObjectException, IncorrectObjectTypeException, CorruptObjectException, IOException {
boolean hasWorkingTreeIterator = tw.getTreeCount() > T_FILE;
diff --git a/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/StrategyAdditiveModel.java b/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/StrategyAdditiveModel.java
new file mode 100644
index 000000000..e3ad18d28
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.egit/src/org/eclipse/emf/compare/egit/internal/merge/StrategyAdditiveModel.java
@@ -0,0 +1,29 @@
+package org.eclipse.emf.compare.egit.internal.merge;
+
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.merge.StrategyResolve;
+import org.eclipse.jgit.merge.ThreeWayMerger;
+
+/**
+ * A three-way merge strategy leaving the merging to the
+ * {@link org.eclipse.core.resources.mapping.ModelProvider models} if applicable, and delegating to the
+ * {@link org.eclipse.jgit.merge.StrategyRecursive} otherwise.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ */
+public class StrategyAdditiveModel extends StrategyResolve {
+ @Override
+ public ThreeWayMerger newMerger(Repository db) {
+ return new AdditiveModelMerger(db, false);
+ }
+
+ @Override
+ public ThreeWayMerger newMerger(Repository db, boolean inCore) {
+ return new AdditiveModelMerger(db, inCore);
+ }
+
+ @Override
+ public String getName() {
+ return "model additive"; //$NON-NLS-1$
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitMergeStrategyID.java b/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitMergeStrategyID.java
index fd9193351..d9f9663cd 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitMergeStrategyID.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitMergeStrategyID.java
@@ -21,7 +21,7 @@ public enum GitMergeStrategyID {
MODEL_RECURSIVE("model recursive"), //$NON-NLS-1$
- MODEL_ADDITIVE("model additive merge"); //$NON-NLS-1$
+ MODEL_ADDITIVE("model additive"); //$NON-NLS-1$
private String value;
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitTestSupport.java b/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitTestSupport.java
index 2fd84e47f..dfaa75a09 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitTestSupport.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/src/org/eclipse/emf/compare/ide/ui/tests/git/framework/GitTestSupport.java
@@ -324,7 +324,6 @@ public class GitTestSupport extends InternalGitTestSupport {
assertNotNull(ancestorProvider);
final IProgressMonitor monitor = new NullProgressMonitor();
- // do we really need to create a new one?
final ITypedElement left = new StorageTypedElement(file, fullPath);
final ITypedElement right = new StorageTypedElement(remoteProvider.getStorage(monitor), fullPath);
final ITypedElement origin = new StorageTypedElement(ancestorProvider.getStorage(monitor), fullPath);
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/egit/CompareGitTestCase.java b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/egit/CompareGitTestCase.java
index 13e608fea..02ab52991 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/egit/CompareGitTestCase.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/egit/CompareGitTestCase.java
@@ -13,14 +13,21 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
import java.util.List;
import org.eclipse.compare.ITypedElement;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.egit.core.Activator;
@@ -41,6 +48,7 @@ import org.eclipse.emf.compare.ide.ui.logical.IStorageProviderAccessor;
import org.eclipse.emf.compare.ide.ui.tests.CompareTestCase;
import org.eclipse.emf.compare.ide.ui.tests.egit.fixture.GitTestRepository;
import org.eclipse.emf.compare.ide.ui.tests.egit.fixture.MockSystemReader;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
import org.eclipse.emf.compare.internal.utils.Graph;
import org.eclipse.emf.compare.rcp.internal.extension.impl.EMFCompareBuilderConfigurator;
import org.eclipse.emf.compare.scope.IComparisonScope;
@@ -52,12 +60,18 @@ import org.eclipse.team.core.subscribers.Subscriber;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.osgi.framework.Bundle;
/**
* The set up and tear down of this class were mostly copied from org.eclipse.egit.core.test.GitTestCase.
*/
@SuppressWarnings({"restriction", "nls", })
public class CompareGitTestCase extends CompareTestCase {
+ /**
+ * The bundle containing this test.
+ */
+ protected static final String TEST_BUNDLE = "org.eclipse.emf.compare.ide.ui.tests.git";
+
protected GitTestRepository repository;
// The ".git" folder of the test repository
@@ -199,4 +213,25 @@ public class CompareGitTestCase extends CompareTestCase {
assertEquals(expectedOutgoing, outgoingCount);
assertEquals(expectedIncoming, incomingCount);
}
+
+ protected IFile addToProject(String testDataPath, TestProject testProject, IProject testIProject,
+ String filePath, String destinationPath) throws IOException, URISyntaxException, CoreException {
+ final Bundle bundle = Platform.getBundle(TEST_BUNDLE);
+ final URI fileUri = getFileUri(bundle.getEntry(testDataPath + filePath));
+
+ final File file = testProject.getOrCreateFile(testIProject, destinationPath + fileUri.lastSegment());
+
+ copyFile(toFile(fileUri), file);
+
+ return testProject.getIFile(testIProject, file);
+ }
+
+ private URI getFileUri(final URL bundleUrl) throws IOException {
+ URL fileLocation = FileLocator.toFileURL(bundleUrl);
+ return URI.createFileURI(fileLocation.getPath());
+ }
+
+ private File toFile(final URI fileUri) throws URISyntaxException {
+ return new File(fileUri.toFileString());
+ }
}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/AdditiveMergeTests.java b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/AdditiveMergeTests.java
new file mode 100644
index 000000000..a5114bdef
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/AdditiveMergeTests.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (C) 2016 Obeo and others
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.eclipse.emf.compare.ide.ui.tests.merge;
+
+import static com.google.common.collect.Iterables.all;
+import static org.eclipse.emf.compare.ConflictKind.PSEUDO;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitMergeStrategyID;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitTestRunner;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitTestSupport;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitInput;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitMerge;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitMergeStrategy;
+import org.eclipse.emf.compare.utils.EMFComparePredicates;
+import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.lib.Repository;
+import org.junit.runner.RunWith;
+
+@RunWith(GitTestRunner.class)
+@GitMergeStrategy(GitMergeStrategyID.MODEL_ADDITIVE)
+@SuppressWarnings({"nls", "unused" })
+public class AdditiveMergeTests {
+
+ @GitMerge(local = "branch1", remote = "branch2")
+ @GitInput("data/additive/ecore.zip")
+ public void testAdditiveMergeEcore1(Status status, Repository repository, List<IProject> projects,
+ GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("branch1", "expected", "network.ecore");
+
+ assertTrue(all(comparison.getDifferences(), EMFComparePredicates.hasConflict(PSEUDO)));
+ }
+
+ @GitMerge(local = "branch2", remote = "branch1")
+ @GitInput("data/additive/ecore.zip")
+ public void testAdditiveMergeEcore2(Status status, Repository repository, List<IProject> projects,
+ GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("branch2", "expected", "network.ecore");
+
+ assertTrue(all(comparison.getDifferences(), EMFComparePredicates.hasConflict(PSEUDO)));
+ }
+
+ @GitMerge(local = "branch1", remote = "branch2")
+ @GitInput("data/additive/uml.zip")
+ public void testAdditiveMergeUml1(Status status, Repository repository, List<IProject> projects,
+ GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("branch1", "expected", "network.uml");
+
+ assertTrue(all(comparison.getDifferences(), EMFComparePredicates.hasConflict(PSEUDO)));
+ }
+
+ @GitMerge(local = "branch2", remote = "branch1")
+ @GitInput("data/additive/uml.zip")
+ public void testAdditiveMergeUml2(Status status, Repository repository, List<IProject> projects,
+ GitTestSupport support) throws Exception {
+ assertFalse(status.hasUncommittedChanges());
+ assertEquals(0, status.getConflicting().size());
+
+ Comparison comparison = support.compare("branch2", "expected", "network.uml");
+
+ assertTrue(all(comparison.getDifferences(), EMFComparePredicates.hasConflict(PSEUDO)));
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/ecore.zip b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/ecore.zip
new file mode 100644
index 000000000..626fc71dc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/ecore.zip
Binary files differ
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/uml.zip b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/uml.zip
new file mode 100644
index 000000000..697f977af
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/merge/data/additive/uml.zip
Binary files differ
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/models/ModelTestCase.java b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/models/ModelTestCase.java
index e3fb6e4a8..8b66bd687 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/models/ModelTestCase.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/models/ModelTestCase.java
@@ -82,6 +82,10 @@ public abstract class ModelTestCase extends CompareGitTestCase {
new MergeOperation(repo, refName).execute(null);
}
+ protected void merge(Repository repo, String refName, String strategyName) throws CoreException {
+ new MergeOperation(repo, refName, strategyName).execute(null);
+ }
+
protected Status status(Repository repo) throws Exception {
Git git = new Git(repo);
try {
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/suite/GitTests.java b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/suite/GitTests.java
index 3e49bbba2..f4650ca2b 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/suite/GitTests.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git/src/org/eclipse/emf/compare/ide/ui/tests/suite/GitTests.java
@@ -16,6 +16,7 @@ import junit.framework.Test;
import junit.textui.TestRunner;
import org.eclipse.emf.compare.ComparePackage;
+import org.eclipse.emf.compare.ide.ui.tests.merge.AdditiveMergeTests;
import org.eclipse.emf.compare.ide.ui.tests.merge.DirCacheResourceVariantTreeProviderTest;
import org.eclipse.emf.compare.ide.ui.tests.merge.GitResourceVariantTreeSubscriberTest;
import org.eclipse.emf.compare.ide.ui.tests.merge.ResourceVariantTest;
@@ -40,7 +41,7 @@ import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
-@SuiteClasses({DirCacheResourceVariantTreeProviderTest.class,
+@SuiteClasses({AdditiveMergeTests.class, DirCacheResourceVariantTreeProviderTest.class,
// GitLogicalMergeTest.class,
// GitLogicalMergeWithCustomDependenciesTest.class,
GitLogicalModelTest.class,
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml b/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml
index 210653643..eb47f06b4 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml
+++ b/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml
@@ -457,6 +457,9 @@
<adapter
type="org.eclipse.team.ui.mapping.ISynchronizationCompareAdapter">
</adapter>
+ <adapter
+ type="org.eclipse.emf.compare.ide.IAdditiveResourceMappingMerger">
+ </adapter>
</factory>
</extension>
<extension
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/AdditiveResourceMappingMerger.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/AdditiveResourceMappingMerger.java
new file mode 100644
index 000000000..c6c64eb96
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/AdditiveResourceMappingMerger.java
@@ -0,0 +1,329 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.ide.ui.internal.logical;
+
+import static org.eclipse.emf.compare.ConflictKind.PSEUDO;
+import static org.eclipse.emf.compare.ConflictKind.REAL;
+import static org.eclipse.emf.compare.DifferenceKind.DELETE;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceState.DISCARDED;
+import static org.eclipse.emf.compare.DifferenceState.MERGED;
+import static org.eclipse.emf.compare.merge.AbstractMerger.getMergerDelegate;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.hasConflict;
+
+import com.google.common.collect.Sets;
+import com.google.common.io.ByteStreams;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IStorage;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.mapping.ResourceMapping;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Conflict;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.DifferenceState;
+import org.eclipse.emf.compare.EMFCompare;
+import org.eclipse.emf.compare.EMFCompare.Builder;
+import org.eclipse.emf.compare.ReferenceChange;
+import org.eclipse.emf.compare.graph.IGraph;
+import org.eclipse.emf.compare.graph.PruningIterator;
+import org.eclipse.emf.compare.ide.IAdditiveResourceMappingMerger;
+import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIMessages;
+import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
+import org.eclipse.emf.compare.ide.ui.logical.IModelMinimizer;
+import org.eclipse.emf.compare.ide.ui.logical.SynchronizationModel;
+import org.eclipse.emf.compare.ide.utils.ResourceUtil;
+import org.eclipse.emf.compare.internal.merge.MergeDependenciesUtil;
+import org.eclipse.emf.compare.merge.AdditiveMergeCriterion;
+import org.eclipse.emf.compare.rcp.internal.extension.impl.EMFCompareBuilderConfigurator;
+import org.eclipse.emf.compare.scope.IComparisonScope;
+import org.eclipse.team.core.diff.IDiff;
+import org.eclipse.team.core.mapping.IMergeContext;
+
+public class AdditiveResourceMappingMerger extends EMFResourceMappingMerger implements IAdditiveResourceMappingMerger {
+
+ public AdditiveResourceMappingMerger() {
+ super();
+ }
+
+ @Override
+ protected void mergeMapping(ResourceMapping mapping, IMergeContext mergeContext,
+ Set<ResourceMapping> failingMappings, IProgressMonitor monitor) throws CoreException {
+ final SubMonitor subMonitor = SubMonitor.convert(monitor, 10);
+ // validateMappings() has made sure we only have EMFResourceMappings
+ final SynchronizationModel syncModel = ((EMFResourceMapping)mapping).getLatestModel();
+ // we may have non-existing storages in the left traversal, so let's get rid of them
+ removeNonExistingStorages(syncModel.getLeftTraversal());
+ // get the involved resources before we run the minimizer
+ final Set<IResource> resources = Sets.newLinkedHashSet(syncModel.getResources());
+
+ final IModelMinimizer minimizer = new IdenticalResourceMinimizer();
+ minimizer.minimize(syncModel, subMonitor.newChild(1)); // 10%
+ final IComparisonScope scope = ComparisonScopeBuilder.create(syncModel, subMonitor.newChild(3)); // 40%
+
+ final Builder builder = EMFCompare.builder();
+ EMFCompareBuilderConfigurator.createDefault().configure(builder);
+
+ final Comparison comparison = builder.build().compare(scope,
+ BasicMonitor.toMonitor(SubMonitor.convert(subMonitor.newChild(1), 10))); // 50%
+
+ final ResourceAdditionAndDeletionTracker resourceTracker = new ResourceAdditionAndDeletionTracker();
+ final Set<URI> conflictingURIs = performPreMerge(comparison, subMonitor.newChild(3)); // 80%
+ save(scope.getLeft(), syncModel.getLeftTraversal(), syncModel.getRightTraversal(),
+ syncModel.getOriginTraversal());
+ if (!conflictingURIs.isEmpty()) {
+ failingMappings.add(mapping);
+ markResourcesAsMerged(mergeContext, resources, conflictingURIs, subMonitor.newChild(2)); // 100%
+ } else {
+ delegateMergeOfUnmergedResourcesAndMarkDiffsAsMerged(syncModel, mergeContext, resourceTracker,
+ subMonitor.newChild(2)); // 100%
+ }
+
+ scope.getLeft().eAdapters().remove(resourceTracker);
+ subMonitor.setWorkRemaining(0);
+ }
+
+ private Set<URI> performPreMerge(Comparison comparison, SubMonitor subMonitor) {
+ final IGraph<Diff> differencesGraph = MergeDependenciesUtil.mapDifferences(comparison,
+ MERGER_REGISTRY, true, null);
+ final PruningIterator<Diff> iterator = differencesGraph.breadthFirstIterator();
+ final Monitor emfMonitor = BasicMonitor.toMonitor(subMonitor);
+
+ final Set<URI> conflictingURIs = new LinkedHashSet<URI>();
+
+ while (iterator.hasNext()) {
+ final Diff next = iterator.next();
+ doMergeForDiff(next, differencesGraph, iterator, emfMonitor, conflictingURIs);
+ }
+
+ return conflictingURIs;
+ }
+
+ private void doMergeForDiff(final Diff diff, final IGraph<Diff> differencesGraph,
+ final PruningIterator<Diff> iterator, final Monitor emfMonitor, final Set<URI> conflictingURIs) {
+ if (diff.getState() != DifferenceState.UNRESOLVED) {
+ return;
+ }
+ if (hasConflict(REAL).apply(diff)) {
+ if (isInAdditiveConflict(diff)) {
+ // The diff is part of conflict that can be considered as an additive conflict.
+ if (diff.getSource() == LEFT) {
+ if (isRequiredByDeletion(diff)) {
+ // Deletion from left side must be overriden by right changes
+ getMergerDelegate(diff, MERGER_REGISTRY, AdditiveMergeCriterion.INSTANCE)
+ .copyRightToLeft(diff, emfMonitor);
+ } else {
+ // other left changes have to be kept. Mark them as merged
+ diff.setState(MERGED);
+ }
+ } else {
+ if (isRequiredByDeletion(diff)) {
+ // Deletion from right side must not be merged. Mark them as merged
+ diff.setState(DISCARDED);
+ } else {
+ // Copy all other changes to left side
+ getMergerDelegate(diff, MERGER_REGISTRY, AdditiveMergeCriterion.INSTANCE)
+ .copyRightToLeft(diff, emfMonitor);
+ }
+ }
+ } else {
+ // The diff is part of a real conflict. Mark the resource as conflicting.
+ iterator.prune();
+ conflictingURIs
+ .addAll(collectConflictingResources(differencesGraph.depthFirstIterator(diff)));
+ }
+
+ } else if (isPseudoConflicting(diff)) {
+ EList<Diff> conflictingDiffs = diff.getConflict().getDifferences();
+ for (Diff conflictingDiff : conflictingDiffs) {
+ conflictingDiff.setState(MERGED);
+ }
+ } else if (diff.getSource() == LEFT) {
+ if (isRequiredByDeletion(diff)) {
+ getMergerDelegate(diff, MERGER_REGISTRY, AdditiveMergeCriterion.INSTANCE)
+ .copyRightToLeft(diff, emfMonitor);
+ } else {
+ diff.setState(MERGED);
+ }
+ } else {
+ // Diff from RIGHT
+ if (isRequiredByDeletion(diff)) {
+ diff.setState(DISCARDED);
+ } else {
+ getMergerDelegate(diff, MERGER_REGISTRY, AdditiveMergeCriterion.INSTANCE)
+ .copyRightToLeft(diff, emfMonitor);
+ }
+ }
+ }
+
+ @Override
+ protected void delegateMergeOfUnmergedResourcesAndMarkDiffsAsMerged(SynchronizationModel syncModel,
+ IMergeContext mergeContext, ResourceAdditionAndDeletionTracker resourceTracker,
+ SubMonitor subMonitor) throws CoreException {
+ // mark already deleted files as merged
+ for (IFile deletedFile : resourceTracker.getDeletedIFiles()) {
+ final IDiff diff = mergeContext.getDiffTree().getDiff(deletedFile);
+ markAsMerged(diff, mergeContext, subMonitor);
+ }
+
+ // for all left storages, delegate the merge of a deletion that has not been performed yet and mark
+ // all already performed diffs as merged
+ for (IStorage storage : syncModel.getLeftTraversal().getStorages()) {
+ final IPath fullPath = ResourceUtil.getFixedPath(storage);
+ if (fullPath == null) {
+ EMFCompareIDEUIPlugin.getDefault().getLog().log(new Status(IStatus.WARNING,
+ EMFCompareIDEUIPlugin.PLUGIN_ID,
+ EMFCompareIDEUIMessages.getString("EMFResourceMappingMerger.mergeIncomplete"))); //$NON-NLS-1$
+ } else {
+ final IDiff diff = mergeContext.getDiffTree().getDiff(fullPath);
+ if (diff != null) {
+ markAsMerged(diff, mergeContext, subMonitor.newChild(1));
+ }
+ }
+ }
+
+ // delegate all additions from the right storages that have not been performed yet
+ // or, if they have been merged, mark the diff as merged
+ for (IStorage rightStorage : syncModel.getRightTraversal().getStorages()) {
+ final IPath fullPath = ResourceUtil.getFixedPath(rightStorage);
+ if (fullPath != null) {
+ final IDiff diff = mergeContext.getDiffTree().getDiff(fullPath);
+ if (diff != null && IDiff.ADD == diff.getKind()) {
+ if (!resourceTracker.containsAddedResource(fullPath)) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(fullPath);
+ IProject project = file.getProject();
+ if (project.isAccessible()) {
+ merge(diff, mergeContext, subMonitor.newChild(1));
+ } else {
+ // The project that will contain the resource is not accessible.
+ // We have to copy the file "manually" from the right side to the left side.
+ try {
+ InputStream inputStream = rightStorage.getContents();
+ FileOutputStream outputStream = new FileOutputStream(
+ ResourceUtil.getAbsolutePath(rightStorage).toFile());
+ ByteStreams.copy(inputStream, outputStream);
+ inputStream.close();
+ outputStream.close();
+ } catch (FileNotFoundException e) {
+ EMFCompareIDEUIPlugin.getDefault().log(e);
+ // TODO Should we throw the exception here to interrupt the merge ?
+ } catch (IOException e) {
+ EMFCompareIDEUIPlugin.getDefault().log(e);
+ // TODO Should we throw the exception here to interrupt the merge ?
+ }
+ }
+ } else {
+ markAsMerged(diff, mergeContext, subMonitor.newChild(1));
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Test if a diff or one of the diff that required this one are delete diffs.
+ *
+ * @param diff
+ * The given diff
+ * @return <code>true</code> if the diff or one of the diff that requires this one is a deletion
+ */
+ private boolean isRequiredByDeletion(Diff diff) {
+ if (diff.getKind() == DELETE) {
+ return true;
+ } else {
+ EList<Diff> requiredBy = diff.getRequiredBy();
+ for (Diff requiredDiff : requiredBy) {
+ if (isRequiredByDeletion(requiredDiff)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Test if a conflicting diff is part of a pseudo-conflict.
+ *
+ * @param diff
+ * The given diff
+ * @return <code>true</code> if the diff is part of a psudo conflict
+ */
+ private boolean isPseudoConflicting(Diff diff) {
+ Conflict conflict = diff.getConflict();
+ if (conflict != null && conflict.getKind() == PSEUDO) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Test a conflicting diff to determine if it is contained in a conflict that can be considered as an
+ * additive conflict.
+ *
+ * @param diff
+ * The given diff
+ * @return <code>true</code> if the diff is part of an additive conflict
+ */
+ private boolean isInAdditiveConflict(Diff diff) {
+ boolean isAdditiveConflict = false;
+ EList<Diff> leftDifferences = diff.getConflict().getLeftDifferences();
+ EList<Diff> rightDifferences = diff.getConflict().getRightDifferences();
+ if (inAdditiveConflict(leftDifferences)) {
+ isAdditiveConflict = true;
+ } else if (inAdditiveConflict(rightDifferences)) {
+ isAdditiveConflict = true;
+ }
+
+ return isAdditiveConflict;
+ }
+
+ /**
+ * Test an list of diff representing one side of a conflict to determine if we are in an additive conflict
+ * configuration.
+ *
+ * @param diffs
+ * A list of diffs from on side of a conflict
+ * @return <code>true</code> if there is a deletion of a containment reference
+ */
+ private boolean inAdditiveConflict(EList<Diff> diffs) {
+ boolean isCorrect = false;
+ for (Diff diff : diffs) {
+ if (diff instanceof ReferenceChange) {
+ ReferenceChange rc = (ReferenceChange)diff;
+ if (rc.getReference().isContainment()) {
+ isCorrect = true;
+ break;
+ }
+ }
+ }
+ return isCorrect;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFLogicalModelAdapterFactory.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFLogicalModelAdapterFactory.java
index 982c5a8d9..7b3d85172 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFLogicalModelAdapterFactory.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFLogicalModelAdapterFactory.java
@@ -11,6 +11,7 @@
package org.eclipse.emf.compare.ide.ui.internal.logical;
import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.emf.compare.ide.IAdditiveResourceMappingMerger;
import org.eclipse.team.core.mapping.IResourceMappingMerger;
import org.eclipse.team.ui.mapping.ISynchronizationCompareAdapter;
@@ -20,13 +21,15 @@ import org.eclipse.team.ui.mapping.ISynchronizationCompareAdapter;
* @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
*/
// Suppressing warnings: interface signatures are raw.
-@SuppressWarnings("rawtypes")
+@SuppressWarnings({"rawtypes", "unchecked" })
public class EMFLogicalModelAdapterFactory implements IAdapterFactory {
/** {@inheritDoc} */
public Object getAdapter(Object adaptableObject, Class adapterType) {
Object adapter = null;
if (adapterType == IResourceMappingMerger.class) {
adapter = new EMFResourceMappingMerger();
+ } else if (adapterType == IAdditiveResourceMappingMerger.class) {
+ adapter = new AdditiveResourceMappingMerger();
} else if (adapterType == ISynchronizationCompareAdapter.class) {
adapter = new EMFSynchronizationCompareAdapter();
}
@@ -35,6 +38,7 @@ public class EMFLogicalModelAdapterFactory implements IAdapterFactory {
/** {@inheritDoc} */
public Class[] getAdapterList() {
- return new Class[] {IResourceMappingMerger.class, ISynchronizationCompareAdapter.class, };
+ return new Class[] {IResourceMappingMerger.class, IAdditiveResourceMappingMerger.class,
+ ISynchronizationCompareAdapter.class, };
}
}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFResourceMappingMerger.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFResourceMappingMerger.java
index b4a33adf0..2edc08095 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFResourceMappingMerger.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFResourceMappingMerger.java
@@ -81,7 +81,7 @@ import org.eclipse.emf.compare.internal.merge.MergeMode;
import org.eclipse.emf.compare.merge.BatchMerger;
import org.eclipse.emf.compare.merge.IBatchMerger;
import org.eclipse.emf.compare.merge.IMerger;
-import org.eclipse.emf.compare.merge.IMerger.Registry;
+import org.eclipse.emf.compare.merge.IMerger.Registry2;
import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin;
import org.eclipse.emf.compare.rcp.internal.extension.impl.EMFCompareBuilderConfigurator;
import org.eclipse.emf.compare.scope.IComparisonScope;
@@ -114,7 +114,8 @@ import org.eclipse.team.core.mapping.provider.MergeStatus;
public class EMFResourceMappingMerger implements IResourceMappingMerger {
/** The merger registry. */
- private static final Registry MERGER_REGISTRY = EMFCompareRCPPlugin.getDefault().getMergerRegistry();
+ protected static final Registry2 MERGER_REGISTRY = (Registry2)EMFCompareRCPPlugin.getDefault()
+ .getMergerRegistry();
/** {@inheritDoc} */
public IStatus merge(IMergeContext mergeContext, IProgressMonitor monitor) throws CoreException {
@@ -242,7 +243,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* @param monitor
* The progress monitor to use, 10 ticks will be consumed
*/
- private void mergeMapping(ResourceMapping mapping, final IMergeContext mergeContext,
+ protected void mergeMapping(ResourceMapping mapping, final IMergeContext mergeContext,
final Set<ResourceMapping> failingMappings, IProgressMonitor monitor) throws CoreException {
final SubMonitor subMonitor = SubMonitor.convert(monitor, 10);
// validateMappings() has made sure we only have EMFResourceMappings
@@ -295,7 +296,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* @param traversal
* The traversal to remove non-existing storages from.
*/
- private void removeNonExistingStorages(StorageTraversal traversal) {
+ protected void removeNonExistingStorages(StorageTraversal traversal) {
for (IStorage storage : traversal.getStorages()) {
if (storage instanceof IFile && !((IFile)storage).exists()) {
traversal.removeStorage(storage);
@@ -351,7 +352,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* Iterator over the conflicting differences and their dependent diffs.
* @return The uris of all resources impacted by conflicting differences.
*/
- private Set<URI> collectConflictingResources(Iterator<Diff> diffIterator) {
+ protected Set<URI> collectConflictingResources(Iterator<Diff> diffIterator) {
final Set<URI> conflictingURIs = new LinkedHashSet<URI>();
while (diffIterator.hasNext()) {
final Diff diff = diffIterator.next();
@@ -408,7 +409,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* @param subMonitor
* Monitor on which to report progress to the user.
*/
- private void markResourcesAsMerged(IMergeContext context, Set<IResource> resources,
+ protected void markResourcesAsMerged(IMergeContext context, Set<IResource> resources,
Set<URI> conflictingURIs, SubMonitor subMonitor) {
for (IResource resource : resources) {
if (resource instanceof IFile) {
@@ -468,7 +469,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* @param subMonitor
* The progress monitor to use.
*/
- private void delegateMergeOfUnmergedResourcesAndMarkDiffsAsMerged(SynchronizationModel syncModel,
+ protected void delegateMergeOfUnmergedResourcesAndMarkDiffsAsMerged(SynchronizationModel syncModel,
IMergeContext mergeContext, ResourceAdditionAndDeletionTracker resourceTracker,
SubMonitor subMonitor) throws CoreException {
@@ -547,7 +548,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* @param subMonitor
* The process monitor to use.
*/
- private void merge(IDiff diff, IMergeContext mergeContext, SubMonitor subMonitor) {
+ protected void merge(IDiff diff, IMergeContext mergeContext, SubMonitor subMonitor) {
try {
mergeContext.merge(diff, false, subMonitor);
} catch (CoreException e) {
@@ -565,7 +566,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* @param subMonitor
* The progress monitor to use.
*/
- private void markAsMerged(final IDiff diff, IMergeContext mergeContext, SubMonitor subMonitor) {
+ protected void markAsMerged(final IDiff diff, IMergeContext mergeContext, SubMonitor subMonitor) {
try {
mergeContext.markAsMerged(diff, true, subMonitor);
} catch (CoreException e) {
@@ -611,7 +612,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
* The traversal corresponding to the common ancestor of both other side. Can be
* <code>null</code>.
*/
- private void save(Notifier notifier, StorageTraversal leftTraversal, StorageTraversal rightTraversal,
+ protected void save(Notifier notifier, StorageTraversal leftTraversal, StorageTraversal rightTraversal,
StorageTraversal originTraversal) {
if (notifier instanceof ResourceSet) {
ResourceUtil.saveAllResources((ResourceSet)notifier,
@@ -668,7 +669,7 @@ public class EMFResourceMappingMerger implements IResourceMappingMerger {
return Status.OK_STATUS;
}
- private static class ResourceAdditionAndDeletionTracker extends AdapterImpl {
+ protected static class ResourceAdditionAndDeletionTracker extends AdapterImpl {
private final Set<String> urisOfAddedResources = new HashSet<String>();
diff --git a/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/IAdditiveResourceMappingMerger.java b/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/IAdditiveResourceMappingMerger.java
new file mode 100644
index 000000000..e989f3462
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.ide/src/org/eclipse/emf/compare/ide/IAdditiveResourceMappingMerger.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.ide;
+
+import org.eclipse.team.core.mapping.IResourceMappingMerger;
+
+/**
+ * The use case for this feature is really specific : it is used when a user use git to create branch
+ * representing feature releases. Everything not related to a particular feature will be stripped-out of the
+ * git repository. These features are used to represent a specific feature in a lightweight model.
+ *
+ * <pre>
+ * Many architectural features can be created and the AdditiveResourceMappingMerger provide support for the merge of such architectural features.
+ * </pre>
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ * @since 3.3
+ */
+public interface IAdditiveResourceMappingMerger extends IResourceMappingMerger {
+
+}
diff --git a/plugins/org.eclipse.emf.compare.rcp/plugin.xml b/plugins/org.eclipse.emf.compare.rcp/plugin.xml
index 9392160e3..5f66836db 100644
--- a/plugins/org.eclipse.emf.compare.rcp/plugin.xml
+++ b/plugins/org.eclipse.emf.compare.rcp/plugin.xml
@@ -38,10 +38,18 @@
ranking="10">
</merger>
<merger
+ class="org.eclipse.emf.compare.merge.AdditiveResourceAttachmentChangeMerger"
+ ranking="10">
+ </merger>
+ <merger
class="org.eclipse.emf.compare.merge.ReferenceChangeMerger"
ranking="10">
</merger>
<merger
+ class="org.eclipse.emf.compare.merge.AdditiveReferenceChangeMerger"
+ ranking="10">
+ </merger>
+ <merger
class="org.eclipse.emf.compare.merge.AttributeChangeMerger"
ranking="10">
</merger>
@@ -57,6 +65,10 @@
class="org.eclipse.emf.compare.merge.ConflictMerger"
ranking="100">
</merger>
+ <merger
+ class="org.eclipse.emf.compare.merge.AdditiveConflictMerger"
+ ranking="100">
+ </merger>
</extension>
<extension
point="org.eclipse.core.contenttype.contentTypes">
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/framework/AbstractInputData.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/framework/AbstractInputData.java
index 3789ffca3..41987741f 100644
--- a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/framework/AbstractInputData.java
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/framework/AbstractInputData.java
@@ -14,11 +14,13 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Collections;
+import java.util.List;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.common.util.WrappedException;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
/**
@@ -98,4 +100,12 @@ public abstract class AbstractInputData {
return resource;
}
+
+ public ResourceSet loadFromClassLoader(List<String> paths, ResourceSet resourceSet) throws IOException {
+ for (String path : paths) {
+ loadFromClassLoader(path, resourceSet);
+ EcoreUtil.resolveAll(resourceSet);
+ }
+ return resourceSet;
+ }
}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AbstractMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AbstractMerger.java
index 8c808fcdd..520d2c30a 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AbstractMerger.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AbstractMerger.java
@@ -69,7 +69,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
* @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
* @since 3.0
*/
-public abstract class AbstractMerger implements IMerger2, IMergeOptionAware {
+public abstract class AbstractMerger implements IMerger2, IMergeOptionAware, IMergeCriterionAware {
/** The key of the merge option that allows to the mergers to consider sub-diffs of a diff as a whole. */
public static final String SUB_DIFF_AWARE_OPTION = "subDiffAwareOption"; //$NON-NLS-1$
@@ -77,14 +77,18 @@ public abstract class AbstractMerger implements IMerger2, IMergeOptionAware {
/** The logger. */
private static final Logger LOGGER = Logger.getLogger(AbstractMerger.class);
+ /**
+ * The map of all merge options that this merger should be aware of.
+ *
+ * @since 3.4
+ */
+ protected Map<Object, Object> mergeOptions;
+
/** Ranking of this merger. */
private int ranking;
/** Registry from which this merger has been created. */
- private Registry registry;
-
- /** The map of all merge options that this merger should be aware of. */
- private Map<Object, Object> mergeOptions;
+ private Registry2 registry;
/**
* Default constructor.
@@ -129,7 +133,23 @@ public abstract class AbstractMerger implements IMerger2, IMergeOptionAware {
if (this.registry != null && registry != null) {
throw new IllegalStateException("The registry has to be set only once."); //$NON-NLS-1$
}
- this.registry = registry;
+ if (!(registry instanceof Registry2)) {
+ throw new IllegalArgumentException("The registry must implement Registry2"); //$NON-NLS-1$
+ }
+ this.registry = (Registry2)registry;
+ }
+
+ /**
+ * Default implementation of apply for mergers that extends this class. Will accept <code>null</code> or
+ * AdditiveMergeCriterion.INSTANCE.
+ *
+ * @param criterion
+ * The merge criterion
+ * @return <code>true</code> if the given criterion is null or is AdditiveMergeCriterion.INSTANCE.
+ * @since 3.4
+ */
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == null || criterion == AdditiveMergeCriterion.INSTANCE;
}
/**
@@ -1025,9 +1045,8 @@ public abstract class AbstractMerger implements IMerger2, IMergeOptionAware {
* @param monitor
* The monitor we should use to report progress.
*/
-
protected void mergeDiff(Diff diff, boolean rightToLeft, Monitor monitor) {
- final IMerger delegate = getRegistry().getHighestRankingMerger(diff);
+ final DelegatingMerger delegate = getMergerDelegate(diff);
if (rightToLeft) {
delegate.copyRightToLeft(diff, monitor);
} else {
@@ -1036,6 +1055,46 @@ public abstract class AbstractMerger implements IMerger2, IMergeOptionAware {
}
/**
+ * Find the best merger for diff and wrap it in a delegate that will take the current merge criterion into
+ * account. The current merge criterion should be stored in the merger's mergeOptions map using
+ * IMergeCriterion.OPTION_MERGE_CRITERION as a key.
+ *
+ * @param diff
+ * The diff
+ * @return the best merger to use for merging the diff
+ * @since 3.4
+ */
+ protected DelegatingMerger getMergerDelegate(Diff diff) {
+ IMergeCriterion criterion = (IMergeCriterion)getMergeOptions()
+ .get(IMergeCriterion.OPTION_MERGE_CRITERION);
+ return getMergerDelegate(diff, (Registry2)getRegistry(), criterion);
+ }
+
+ /**
+ * Find the best merger for diff and wrap it in a delegate that will take the given merge criterion into
+ * account. This is NOT Thread-safe!
+ *
+ * @param diff
+ * The diff
+ * @param registry
+ * The registry of mergers where to look for mergers
+ * @param criterion
+ * The merge criterion to use
+ * @return The best merger for diff and criterion, wrapped in a delegate to deal with setting/restoring
+ * the criterion in the merger used.
+ * @since 3.4
+ */
+ public static DelegatingMerger getMergerDelegate(Diff diff, Registry2 registry,
+ IMergeCriterion criterion) {
+ Iterator<IMerger> it = registry.getMergersByRankDescending(diff, criterion);
+ if (!it.hasNext()) {
+ throw new IllegalStateException("No merger found for diff " + diff.getClass().getSimpleName()); //$NON-NLS-1$
+ }
+ IMerger merger = it.next();
+ return new DelegatingMerger(merger, criterion);
+ }
+
+ /**
* Handles the equivalences of this difference.
* <p>
* Note that in certain cases, we'll merge our opposite instead of merging this diff. This is done to
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveConflictMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveConflictMerger.java
new file mode 100644
index 000000000..e4c0e4009
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveConflictMerger.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+import static org.eclipse.emf.compare.DifferenceKind.DELETE;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceSource.RIGHT;
+import static org.eclipse.emf.compare.DifferenceState.MERGED;
+import static org.eclipse.emf.compare.DifferenceState.UNRESOLVED;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.compare.AttributeChange;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.ReferenceChange;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * This specific implementation of {@link AbstractMerger} will be used to merge conflicts in an additive merge
+ * context.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ * @since 3.4
+ */
+public class AdditiveConflictMerger extends ConflictMerger {
+
+ /**
+ * The constructor specify the context where this merger can be used.
+ */
+ public AdditiveConflictMerger() {
+ super();
+ mergeOptions.put(IMergeCriterion.OPTION_MERGE_CRITERION, AdditiveMergeCriterion.INSTANCE);
+ }
+
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == AdditiveMergeCriterion.INSTANCE;
+ }
+
+ @Override
+ public void copyRightToLeft(Diff target, Monitor monitor) {
+ if (target.getState() != UNRESOLVED) {
+ return;
+ }
+
+ // We need to merge diffs in the conflict that are pseudo conflicting diffs. This behavior is required
+ // to bypass some behavior in AbstractMerger which is not aware of additive related behavior.
+ Comparison comparison = target.getMatch().getComparison();
+ EList<Diff> rightDifferences = target.getConflict().getRightDifferences();
+ for (Diff diff : rightDifferences) {
+ EList<Diff> differences = diff.getMatch().getDifferences();
+ for (Diff diff2 : differences) {
+ if (isEquivalentFromDifferentSides(comparison, diff, diff2)) {
+ diff.setState(MERGED);
+ diff2.setState(MERGED);
+ }
+ }
+ }
+
+ // get rid of refined diffs.
+ if (target.getSource() == RIGHT) {
+ for (Diff diff : target.getRefines()) {
+ getMergerDelegate(diff).copyRightToLeft(diff, monitor);
+ }
+ }
+
+ if (target.getState() == MERGED) {
+ return;
+ }
+
+ if (target.getSource() == RIGHT && target.getKind() != DELETE) {
+ super.copyRightToLeft(target, monitor);
+ } else if (target.getSource() == LEFT && target.getKind() == DELETE) {
+ super.copyRightToLeft(target, monitor);
+ } else {
+ target.setState(MERGED);
+ for (Diff refiningDiff : target.getRefinedBy()) {
+ refiningDiff.setState(MERGED);
+ }
+ }
+ }
+
+ /**
+ * Test if two given diffs are equivalent, i.e. if they weren't in a real conflicts they where detected as
+ * pseudo conflicts.
+ *
+ * @param comparison
+ * The comparison
+ * @param diff
+ * The first diff
+ * @param diff2
+ * The second diff
+ * @return <code>true</code> if the diffs are equivalent
+ */
+ private boolean isEquivalentFromDifferentSides(Comparison comparison, Diff diff, Diff diff2) {
+ if (diff.eClass() == diff2.eClass() && diff.getSource() != diff2.getSource()) {
+ if (diff.getKind() == diff2.getKind()) {
+ if (diff instanceof ReferenceChange) {
+ EObject value = ((ReferenceChange)diff).getValue();
+ EObject value2 = ((ReferenceChange)diff2).getValue();
+ if (value == null && value2 == null) {
+ return true;
+ }
+ if (comparison.getMatch(value) == comparison.getMatch(value2)) {
+ return true;
+ }
+ } else if (diff instanceof AttributeChange) {
+ if (((AttributeChange)diff).getValue() == ((AttributeChange)diff2).getValue()) {
+ return true;
+ }
+ }
+ }
+ }
+
+ return false;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveMergeCriterion.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveMergeCriterion.java
new file mode 100644
index 000000000..fff56861d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveMergeCriterion.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+/**
+ * Merge Criterion that indicates we want to perform an 'Additive' merge.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ * @since 3.4
+ */
+public final class AdditiveMergeCriterion implements IMergeCriterion {
+
+ /** The singleton instance of this class. */
+ public static final AdditiveMergeCriterion INSTANCE = new AdditiveMergeCriterion();
+
+ /**
+ * Private constructor (singleton pattern).
+ */
+ private AdditiveMergeCriterion() {
+ // Singleton
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveReferenceChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveReferenceChangeMerger.java
new file mode 100644
index 000000000..5a7e33542
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveReferenceChangeMerger.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+import static org.eclipse.emf.compare.DifferenceKind.DELETE;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceSource.RIGHT;
+import static org.eclipse.emf.compare.DifferenceState.MERGED;
+import static org.eclipse.emf.compare.DifferenceState.UNRESOLVED;
+
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.DifferenceKind;
+import org.eclipse.emf.compare.ReferenceChange;
+import org.eclipse.emf.compare.utils.ReferenceUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * This specific implementation of {@link AbstractMerger} will be used to merge reference changes in an
+ * additive merge context.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ * @since 3.4
+ */
+public class AdditiveReferenceChangeMerger extends ReferenceChangeMerger {
+
+ /**
+ * The constructor specify the context where this merger can be used.
+ */
+ public AdditiveReferenceChangeMerger() {
+ super();
+ mergeOptions.put(IMergeCriterion.OPTION_MERGE_CRITERION, AdditiveMergeCriterion.INSTANCE);
+ }
+
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == AdditiveMergeCriterion.INSTANCE;
+ }
+
+ @Override
+ public void copyRightToLeft(Diff target, Monitor monitor) {
+ if (target.getState() != UNRESOLVED) {
+ return;
+ }
+
+ ReferenceChange rc = (ReferenceChange)target;
+ if (rc.getReference().isContainment()) {
+ if (rc.getSource() == RIGHT) {
+ if (rc.getKind() == DELETE) {
+ markAsMerged(rc);
+ } else {
+ super.copyRightToLeft(rc, monitor);
+ }
+ } else {
+ if (rc.getKind() == DELETE) {
+ super.copyRightToLeft(rc, monitor);
+ } else {
+ markAsMerged(rc);
+ }
+ }
+ } else {
+ if (rc.getSource() == RIGHT) {
+ if (rc.getKind() == DELETE || isUnsetRelatedToDeletion(rc)) {
+ markAsMerged(rc);
+ } else {
+ super.copyRightToLeft(rc, monitor);
+ }
+ } else {
+ if (rc.getKind() == DELETE || isUnsetRelatedToDeletion(rc)) {
+ super.copyRightToLeft(rc, monitor);
+ } else {
+ markAsMerged(rc);
+ }
+ }
+ }
+ }
+
+ /**
+ * Determine if the given diff is an unset of a value which is related to the deletion of an object.
+ *
+ * @param rc
+ * The given ReferenceChange
+ * @return <code>true</code> if the diff is an unset related to a deleted object
+ */
+ private boolean isUnsetRelatedToDeletion(ReferenceChange rc) {
+ if (rc.getKind() == DifferenceKind.CHANGE && isUnsetOfValue(rc)) {
+ for (Diff diff : rc.getRequiredBy()) {
+ if (diff.getKind() == DELETE && diff instanceof ReferenceChange
+ && ((ReferenceChange)diff).getReference().isContainment()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the diff is an unset.
+ *
+ * @param difference
+ * The given difference
+ * @return <code>true</code> if the given diff is an unset
+ */
+ private boolean isUnsetOfValue(ReferenceChange difference) {
+ boolean isUnset = false;
+ final EReference reference = difference.getReference();
+ // FIXME bad smell -> what about multiple references?
+ if (!reference.isMany()) {
+ EObject referrer = null;
+ if (difference.getSource() == LEFT) {
+ referrer = difference.getMatch().getLeft();
+ } else {
+ referrer = difference.getMatch().getRight();
+ }
+ isUnset = referrer == null || !ReferenceUtil.safeEIsSet(referrer, reference);
+ }
+ return isUnset;
+ }
+
+ /**
+ * Mark a diff and its required diffs as merged.
+ *
+ * @param diff
+ * The diff to merge
+ */
+ private void markAsMerged(Diff diff) {
+ // diff.setState(MERGED);
+ diff.setState(MERGED);
+ for (Diff refiningDiff : diff.getRefinedBy()) {
+ // markAsMerged(refiningDiff);
+ refiningDiff.setState(MERGED);
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveResourceAttachmentChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveResourceAttachmentChangeMerger.java
new file mode 100644
index 000000000..98411cbc2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AdditiveResourceAttachmentChangeMerger.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+import static org.eclipse.emf.compare.DifferenceKind.DELETE;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceState.MERGED;
+import static org.eclipse.emf.compare.DifferenceState.UNRESOLVED;
+
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.compare.Diff;
+
+/**
+ * This specific implementation of {@link AbstractMerger} will be used to merge resource attachment changes in
+ * an additive merge context.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ * @since 3.4
+ */
+public class AdditiveResourceAttachmentChangeMerger extends ResourceAttachmentChangeMerger {
+
+ /**
+ * The constructor specify the context where this merger can be used.
+ */
+ public AdditiveResourceAttachmentChangeMerger() {
+ super();
+ mergeOptions.put(IMergeCriterion.OPTION_MERGE_CRITERION, AdditiveMergeCriterion.INSTANCE);
+ }
+
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == AdditiveMergeCriterion.INSTANCE;
+ }
+
+ @Override
+ public void copyRightToLeft(Diff target, Monitor monitor) {
+ if (target.getState() != UNRESOLVED) {
+ return;
+ }
+
+ if (target.getKind() == DELETE) {
+ if (target.getSource() == LEFT) {
+ super.copyRightToLeft(target, monitor);
+ } else {
+ target.setState(MERGED);
+ for (Diff refiningDiff : target.getRefinedBy()) {
+ refiningDiff.setState(MERGED);
+ }
+ }
+ } else {
+ super.copyRightToLeft(target, monitor);
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ConflictMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ConflictMerger.java
index 32a4cf40b..9ac9acea9 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ConflictMerger.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ConflictMerger.java
@@ -23,7 +23,6 @@ import java.util.Iterator;
import org.eclipse.emf.common.util.Monitor;
import org.eclipse.emf.compare.Conflict;
import org.eclipse.emf.compare.Diff;
-import org.eclipse.emf.compare.EMFCompareMessages;
import org.eclipse.emf.compare.ReferenceChange;
import org.eclipse.emf.compare.utils.IEqualityHelper;
@@ -44,6 +43,11 @@ public class ConflictMerger extends AbstractMerger {
return target.getConflict() != null && target.getConflict().getKind() == REAL;
}
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == null;
+ }
+
/**
* {@inheritDoc}
*
@@ -72,7 +76,7 @@ public class ConflictMerger extends AbstractMerger {
}
// Call the appropriate merger for the current diff
- getHighestRankingMerger(target).copyLeftToRight(target, monitor);
+ getMergerDelegate(target).copyLeftToRight(target, monitor);
}
@@ -104,7 +108,7 @@ public class ConflictMerger extends AbstractMerger {
}
// Call the appropriate merger for the current diff
- getHighestRankingMerger(target).copyRightToLeft(target, monitor);
+ getMergerDelegate(target).copyRightToLeft(target, monitor);
}
/**
@@ -149,46 +153,29 @@ public class ConflictMerger extends AbstractMerger {
*/
private void mergeConflictedDiff(Diff conflictedDiff, boolean leftToRight, Monitor monitor) {
if (conflictedDiff.getKind() != MOVE) {
- IMerger highestRankingMerger = getHighestRankingMerger(conflictedDiff);
+ DelegatingMerger delegate = getMergerDelegate(conflictedDiff);
if (leftToRight) {
- highestRankingMerger.copyLeftToRight(conflictedDiff, monitor);
+ delegate.copyLeftToRight(conflictedDiff, monitor);
} else {
- highestRankingMerger.copyRightToLeft(conflictedDiff, monitor);
+ delegate.copyRightToLeft(conflictedDiff, monitor);
}
} else {
conflictedDiff.setState(MERGED);
}
}
- /**
- * Returns the highest ranking merger without taking into account this merger (Conflict Merger).
- *
- * @param target
- * The given target difference.
- * @return The found merger.
- */
- private IMerger getHighestRankingMerger(Diff target) {
- Iterator<IMerger> mergers = getRegistry().getMergers(target).iterator();
-
- IMerger ret = null;
-
- if (mergers.hasNext()) {
- IMerger highestRanking = mergers.next();
- while (mergers.hasNext()) {
- IMerger merger = mergers.next();
- if (highestRanking == this
- || (merger != this && (merger.getRanking() > highestRanking.getRanking()))) {
- highestRanking = merger;
- }
- }
- ret = highestRanking;
+ @Override
+ protected DelegatingMerger getMergerDelegate(Diff diff) {
+ IMergeCriterion criterion = (IMergeCriterion)getMergeOptions().get(
+ IMergeCriterion.OPTION_MERGE_CRITERION);
+ Iterator<IMerger> it = ((Registry2)getRegistry()).getMergersByRankDescending(diff, criterion);
+ IMerger merger = this;
+ while (it.hasNext() && merger == this) {
+ merger = it.next();
}
-
- if (ret == null) {
- throw new IllegalStateException(EMFCompareMessages.getString("IMerger.MissingMerger", target //$NON-NLS-1$
- .getClass().getSimpleName()));
+ if (merger == null) {
+ throw new IllegalStateException("No merger found for diff " + diff.getClass().getSimpleName()); //$NON-NLS-1$
}
-
- return ret;
+ return new DelegatingMerger(merger, criterion);
}
}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/DelegatingMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/DelegatingMerger.java
new file mode 100644
index 000000000..11f3a5ea6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/DelegatingMerger.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+import com.google.common.base.Preconditions;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.compare.Diff;
+
+/**
+ * Wrapper of mergers that makes sure that a given {@link IMergeCriterion} is passed to the wrapped merger
+ * before calling its merge method, and that the former value of criterion used by the wrapped merger is
+ * restored afterwards.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ * @since 3.4
+ */
+public class DelegatingMerger {
+
+ /** The wrapped merger, cannot be <code>null</code>. */
+ private final IMerger merger;
+
+ /** The criterion to use, can be <code>null</code>. */
+ private final IMergeCriterion criterion;
+
+ /**
+ * Constructor.
+ *
+ * @param merger
+ * The merger, cannot be <code>null</code>
+ * @param criterion
+ * The criterion, can be <code>null</code>
+ */
+ public DelegatingMerger(IMerger merger, IMergeCriterion criterion) {
+ this.merger = Preconditions.checkNotNull(merger);
+ this.criterion = criterion;
+ }
+
+ /**
+ * Call copyRightToLeft on the wrapped merger with the right criterion.
+ *
+ * @param target
+ * the diff
+ * @param monitor
+ * the monitor
+ */
+ public void copyRightToLeft(Diff target, Monitor monitor) {
+ if (merger instanceof IMergeOptionAware) {
+ Map<Object, Object> options = ((IMergeOptionAware)merger).getMergeOptions();
+ Object oldCriterion = options.get(IMergeCriterion.OPTION_MERGE_CRITERION);
+ try {
+ options.put(IMergeCriterion.OPTION_MERGE_CRITERION, criterion);
+ merger.copyRightToLeft(target, monitor);
+ } finally {
+ ((IMergeOptionAware)merger).getMergeOptions().put(IMergeCriterion.OPTION_MERGE_CRITERION,
+ oldCriterion);
+ }
+ } else {
+ merger.copyRightToLeft(target, monitor);
+ }
+ }
+
+ /**
+ * Call copyLeftToRight on the wrapped merger with the right criterion.
+ *
+ * @param target
+ * the diff
+ * @param monitor
+ * the monitor
+ */
+ public void copyLeftToRight(Diff target, Monitor monitor) {
+ if (merger instanceof IMergeOptionAware) {
+ Map<Object, Object> options = ((IMergeOptionAware)merger).getMergeOptions();
+ Object oldCriterion = options.get(IMergeCriterion.OPTION_MERGE_CRITERION);
+ try {
+ options.put(IMergeCriterion.OPTION_MERGE_CRITERION, criterion);
+ merger.copyLeftToRight(target, monitor);
+ } finally {
+ ((IMergeOptionAware)merger).getMergeOptions().put(IMergeCriterion.OPTION_MERGE_CRITERION,
+ oldCriterion);
+ }
+ } else {
+ merger.copyLeftToRight(target, monitor);
+ }
+ }
+
+ public IMerger getMerger() {
+ return merger;
+ }
+
+ public IMergeCriterion getCriterion() {
+ return criterion;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterion.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterion.java
new file mode 100644
index 000000000..1545bcebc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterion.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+/**
+ * Criterion for describing a merge operation.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ * @since 3.4
+ */
+public interface IMergeCriterion {
+
+ /**
+ * Constant to use as key for the merge option that represents a merge criterion. This must be used as a
+ * key in the map of optinos available to mergers that implement {@link IMergeOptionAware}, so that
+ * mergers can propagate the criterion to the mergers they may invoke.
+ */
+ String OPTION_MERGE_CRITERION = "merge.criterion"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterionAware.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterionAware.java
new file mode 100644
index 000000000..c93216e55
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMergeCriterionAware.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.merge;
+
+/**
+ * This interface is used to select mergers according to some criterion.
+ *
+ * @author <a href="mailto:mathieu.cartaud@obeo.fr">Mathieu Cartaud</a>
+ * @since 3.4
+ */
+public interface IMergeCriterionAware {
+
+ /**
+ * Indicate whether a merger supports a given criterion.
+ *
+ * @param criterion
+ * A criterion
+ * @return <code>true</code> if the merger is able to handle the given criterion, <code>false</code>
+ * otherwise.
+ */
+ boolean apply(IMergeCriterion criterion);
+
+}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMerger.java
index 7bbec4f78..a6bf4b5a8 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMerger.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/IMerger.java
@@ -17,8 +17,12 @@ import static com.google.common.collect.Lists.newArrayList;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
+import com.google.common.collect.Iterators;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -155,10 +159,35 @@ public interface IMerger {
}
/**
+ * Registry that can provide its mergers sorted by rank descending.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ * @since 3.3
+ */
+ public interface Registry2 extends Registry {
+
+ /**
+ * Provide the merger with the highest ranking among those that:
+ * <ul>
+ * <li>Are compatible with the given diff;</li>
+ * <li>Match the given non-null criterion.</li>
+ * </ul>
+ *
+ * @param diff
+ * The diff
+ * @param criterion
+ * The criterion
+ * @return The best merger found, should never be null (throw an exception if no merger found)
+ */
+ Iterator<IMerger> getMergersByRankDescending(Diff diff, IMergeCriterion criterion);
+
+ }
+
+ /**
* A default implementation of an {@link IMerger.Registry}. This is the implementation EMF Compare will
* use through its GUI.
*/
- class RegistryImpl implements Registry {
+ class RegistryImpl implements Registry2 {
/**
* Map which references the registered mergers per their class name.
*/
@@ -191,6 +220,8 @@ public interface IMerger {
attributeMerger.setRanking(defaultRanking);
final IMerger referenceMerger = new ReferenceChangeMerger();
referenceMerger.setRanking(defaultRanking);
+ final IMerger additiveReferenceMerger = new AdditiveReferenceChangeMerger();
+ additiveReferenceMerger.setRanking(defaultRanking);
final IMerger featureMapMerger = new FeatureMapChangeMerger();
featureMapMerger.setRanking(defaultRanking);
final IMerger resourceAttachmentMerger = new ResourceAttachmentChangeMerger();
@@ -199,13 +230,17 @@ public interface IMerger {
pseudoConflictMerger.setRanking(pseudoConflictRanking);
final IMerger conflictMerger = new ConflictMerger();
conflictMerger.setRanking(conflictRanking);
+ final IMerger additiveConflictMerger = new AdditiveConflictMerger();
+ additiveConflictMerger.setRanking(conflictRanking);
registry.add(attributeMerger);
registry.add(referenceMerger);
+ registry.add(additiveReferenceMerger);
registry.add(featureMapMerger);
registry.add(resourceAttachmentMerger);
registry.add(pseudoConflictMerger);
registry.add(conflictMerger);
+ registry.add(additiveConflictMerger);
return registry;
}
@@ -270,27 +305,43 @@ public interface IMerger {
* @see org.eclipse.emf.compare.merge.IMerger.Registry#getHighestRankingMerger(org.eclipse.emf.compare.Diff)
*/
public IMerger getHighestRankingMerger(Diff target) {
- Iterator<IMerger> mergers = getMergers(target).iterator();
-
- IMerger ret = null;
-
+ Iterator<IMerger> mergers = getMergersByRankDescending(target, null);
if (mergers.hasNext()) {
- IMerger highestRanking = mergers.next();
- while (mergers.hasNext()) {
- IMerger merger = mergers.next();
- if (merger.getRanking() > highestRanking.getRanking()) {
- highestRanking = merger;
- }
- }
- ret = highestRanking;
- }
-
- if (ret == null) {
- throw new IllegalStateException(EMFCompareMessages.getString("IMerger.MissingMerger", target //$NON-NLS-1$
- .getClass().getSimpleName()));
+ return mergers.next();
}
+ throw new IllegalStateException(EMFCompareMessages.getString("IMerger.MissingMerger", target //$NON-NLS-1$
+ .getClass().getSimpleName()));
+ }
- return ret;
+ /**
+ * Provide the mergers sorted by rank descending.
+ *
+ * @param diff
+ * The diff
+ * @param criterion
+ * The merge criterion, can be <code>null</code>
+ * @return the registered mergers valid for the given diff and criterion, sorted by rank descending.
+ * @since 3.3
+ */
+ public Iterator<IMerger> getMergersByRankDescending(Diff diff, final IMergeCriterion criterion) {
+ List<IMerger> mergers = new ArrayList<IMerger>(getMergers(diff));
+ Collections.sort(mergers, new Comparator<IMerger>() {
+ public int compare(IMerger o1, IMerger o2) {
+ // Sort from largest to smallest
+ return o2.getRanking() - o1.getRanking();
+ }
+ });
+ return Iterators.filter(mergers.iterator(), new Predicate<IMerger>() {
+ public boolean apply(IMerger input) {
+ if (input instanceof IMergeCriterionAware) {
+ if (((IMergeCriterionAware)input).apply(criterion)) {
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+ });
}
/**
@@ -306,10 +357,7 @@ public interface IMerger {
mergerFor = isMergerFor(target);
}
Iterable<IMerger> mergers = filter(map.values(), mergerFor);
- List<IMerger> ret = newArrayList();
- for (IMerger merger : mergers) {
- ret.add(merger);
- }
+ List<IMerger> ret = newArrayList(mergers);
return ret;
}
}
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java
index da542ca59..65fad8fc4 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java
@@ -17,12 +17,9 @@ import static org.eclipse.emf.compare.utils.ReferenceUtil.safeEIsSet;
import static org.eclipse.emf.compare.utils.ReferenceUtil.safeESet;
import com.google.common.collect.Iterators;
-import com.google.common.collect.Sets;
import java.util.Iterator;
-import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Set;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.compare.Comparison;
@@ -56,6 +53,11 @@ public class ReferenceChangeMerger extends AbstractMerger {
return target instanceof ReferenceChange;
}
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == null;
+ }
+
/**
* Merge the given difference rejecting it.
*
@@ -400,6 +402,7 @@ public class ReferenceChangeMerger extends AbstractMerger {
final EReference reference = diff.getReference();
final EObject expectedValue;
final Match valueMatch = comparison.getMatch(diff.getValue());
+ boolean needXmiId = false;
if (valueMatch == null) {
// This is an out of scope value.
if (diff.getValue().eIsProxy()) {
@@ -410,16 +413,18 @@ public class ReferenceChangeMerger extends AbstractMerger {
expectedValue = diff.getValue();
}
} else if (rightToLeft) {
- if (reference.isContainment() || isImplyingContainmentAddition(diff, rightToLeft)) {
+ if (reference.isContainment() || valueMatch.getLeft() == null) {
expectedValue = createCopy(diff.getValue());
valueMatch.setLeft(expectedValue);
+ needXmiId = true;
} else {
expectedValue = valueMatch.getLeft();
}
} else {
- if (reference.isContainment() || isImplyingContainmentAddition(diff, rightToLeft)) {
+ if (reference.isContainment() || valueMatch.getRight() == null) {
expectedValue = createCopy(diff.getValue());
valueMatch.setRight(expectedValue);
+ needXmiId = true;
} else {
expectedValue = valueMatch.getRight();
}
@@ -435,7 +440,7 @@ public class ReferenceChangeMerger extends AbstractMerger {
safeESet(expectedContainer, reference, expectedValue);
}
- if (reference.isContainment() || isImplyingContainmentAddition(diff, rightToLeft)) {
+ if (needXmiId) {
// Copy XMI ID when applicable.
final Resource initialResource = diff.getValue().eResource();
final Resource targetResource = expectedValue.eResource();
@@ -449,35 +454,6 @@ public class ReferenceChangeMerger extends AbstractMerger {
}
/**
- * Checks whether the given diff implies the merge of a containment reference, in which case we need to
- * create the object (it hasn't been created through our requirements yet).
- *
- * @param target
- * The diff we're merging.
- * @param mergeRightToLeft
- * The direction in which we're merging.
- * @return <code>true</code> if this diff implies the merge of a containment reference.
- */
- private boolean isImplyingContainmentAddition(Diff target, boolean mergeRightToLeft) {
- final Set<Diff> implications = new LinkedHashSet<Diff>();
- Set<Diff> newImplications = getDirectResultingMerges(target, mergeRightToLeft);
- while (!newImplications.isEmpty()) {
- final Set<Diff> copy = new LinkedHashSet<Diff>(newImplications);
- implications.addAll(newImplications);
- newImplications = new LinkedHashSet<Diff>();
- for (Diff implied : copy) {
- if (implied instanceof ReferenceChange
- && ((ReferenceChange)implied).getReference().isContainment()) {
- return true;
- }
- newImplications.addAll(getDirectResultingMerges(implied, mergeRightToLeft));
- }
- newImplications = Sets.difference(newImplications, implications);
- }
- return false;
- }
-
- /**
* This will be called when we need to remove an element from the target side.
* <p>
* All necessary sanity checks have been made to ensure that the current operation is one that should
@@ -592,8 +568,7 @@ public class ReferenceChangeMerger extends AbstractMerger {
originContainer = match.getLeft();
}
- if (originContainer == null || !safeEIsSet(targetContainer, reference)
- || !safeEIsSet(originContainer, reference)) {
+ if (originContainer == null || !safeEIsSet(originContainer, reference)) {
targetContainer.eUnset(reference);
} else {
final EObject originalValue = (EObject)safeEGet(originContainer, reference);
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.java
index 82ebf620a..b8a7bfde4 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ResourceAttachmentChangeMerger.java
@@ -50,6 +50,11 @@ public class ResourceAttachmentChangeMerger extends AbstractMerger {
return target instanceof ResourceAttachmentChange;
}
+ @Override
+ public boolean apply(IMergeCriterion criterion) {
+ return criterion == null;
+ }
+
/**
* {@inheritDoc}
*
@@ -273,12 +278,15 @@ public class ResourceAttachmentChangeMerger extends AbstractMerger {
return;
}
- final EObject sourceValue;
+ EObject sourceValue;
if (rightToLeft) {
sourceValue = match.getRight();
} else {
sourceValue = match.getLeft();
}
+ if (sourceValue == null) {
+ sourceValue = match.getOrigin();
+ }
final EObject expectedValue;
if (rightToLeft) {

Back to the top