Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus')
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/AbstractGitTestCase.java247
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/MoveOfDiagramConflictDetectionTest.java61
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case001.zipbin0 -> 33225 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case002.zipbin0 -> 32573 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/AbstractGitMergeTestCase.java678
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/IgnoreDiFileChangesInGitMergeTest.java55
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd1GitMergeTest.java97
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd2GitMergeTest.java25
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete1GitMergeTest.java105
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete2GitMergeTest.java95
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename1GitMergeTest.java119
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename2GitMergeTest.java75
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename3GitMergeTest.java126
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename4GitMergeTest.java133
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename5GitMergeTest.java68
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeApplicationsInSubunitsTest.java126
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeConflictTest.java66
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/bug526932.zipbin0 -> 61914 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/ignore-di-file-changes.zipbin0 -> 43035 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/GitTestRepository.java849
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/MockSystemReader.java200
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/mergeresolution/MergeResolutionManagerTest.java155
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/AdditiveMergeDiagramTests.java109
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/AdditiveMergeDiagramInputData.java70
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.notation218
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.uml16
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.notation131
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.uml11
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.notation105
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.uml10
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.notation192
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.uml15
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.notation192
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.uml15
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.notation431
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.uml18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.notation297
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.uml13
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.notation297
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.uml13
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.notation574
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.uml21
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.notation231
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.uml8
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.notation100
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.uml8
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.notation139
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.uml12
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.notation209
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.uml8
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.notation191
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.uml18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.notation92
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.uml7
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.notation74
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.uml7
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.notation257
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.uml9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.notation191
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.uml18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.notation74
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.uml7
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.notation131
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.uml11
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.notation44
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.uml6
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.notation44
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.uml6
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.notation79
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.uml9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/rac.zipbin0 -> 56821 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/solvable.zipbin0 -> 78036 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/unsolvable.zipbin0 -> 39157 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java233
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.notation84
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.uml8
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.di8
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.notation32
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.notation51
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.uml6
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.notation54
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.uml8
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.di12
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.notation32
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.notation54
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.uml6
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java487
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveNoConflictTests.java214
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java262
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.notation28
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.notation9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.uml2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.notation18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.notation54
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.uml7
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.notation28
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.notation9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.uml2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.notation18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.notation18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.notation28
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.notation9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.uml2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.notation18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.notation9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.uml2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.notation18
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.notation28
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.uml5
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.notation21
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.notation21
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.notation37
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.uml6
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.notation21
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.notation21
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.uml4
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.di2
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.notation70
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.uml9
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/resourceAttachmentChangeMoveNoConflict.zipbin0 -> 19618 bytes
-rw-r--r--compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/suite/PapyrusGitTests.java83
180 files changed, 10327 insertions, 0 deletions
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/AbstractGitTestCase.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/AbstractGitTestCase.java
new file mode 100644
index 00000000..00d831d5
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/AbstractGitTestCase.java
@@ -0,0 +1,247 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2017 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
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.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.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.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.papyrus.compare.diagram.tests.egit.fixture.GitTestRepository;
+import org.eclipse.papyrus.compare.diagram.tests.egit.fixture.MockSystemReader;
+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.papyrus.compare.diagram.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,
+ EMFCompareIDEUIPlugin.getDefault().getModelMinimizerRegistry().getCompoundMinimizer(),
+ 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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/MoveOfDiagramConflictDetectionTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/MoveOfDiagramConflictDetectionTest.java
new file mode 100644
index 00000000..9d48df21
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/MoveOfDiagramConflictDetectionTest.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * 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
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.conflicts;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.Comparison;
+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.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;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
+import org.eclipse.emf.compare.ide.ui.tests.framework.ResolutionStrategyID;
+import org.eclipse.emf.compare.ide.ui.tests.framework.annotations.ResolutionStrategies;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SuppressWarnings({"nls", "unused" })
+@RunWith(GitTestRunner.class)
+@ResolutionStrategies(ResolutionStrategyID.WORKSPACE)
+public class MoveOfDiagramConflictDetectionTest {
+
+ @GitCompare(local = "branch1", remote = "branch2", file = "model.uml")
+ @GitInput("/data/case001.zip")
+ public void pseudoConflictsOnResourceRootTest(Comparison comparison) throws Exception {
+ assertEquals(16, comparison.getDifferences().size());
+ assertEquals(4, comparison.getConflicts().size());
+
+ for (Conflict conflict : comparison.getConflicts()) {
+ assertEquals(ConflictKind.PSEUDO, conflict.getKind());
+ }
+ }
+
+ @GitCompare(local = "branch1", remote = "branch2", file = "model.uml")
+ @GitInput("/data/case002.zip")
+ public void conflictsOnResourceRootTest(Comparison comparison) throws Exception {
+ assertEquals(4, comparison.getDifferences().size());
+ assertEquals(2, comparison.getConflicts().size());
+
+ for (Conflict conflict : comparison.getConflicts()) {
+ assertEquals(ConflictKind.REAL, conflict.getKind());
+ }
+ }
+
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case001.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case001.zip
new file mode 100644
index 00000000..b1a96c74
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case001.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case002.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case002.zip
new file mode 100644
index 00000000..e54ff737
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/conflicts/data/case002.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/AbstractGitMergeTestCase.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/AbstractGitMergeTestCase.java
new file mode 100644
index 00000000..4c102ef5
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/AbstractGitMergeTestCase.java
@@ -0,0 +1,678 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 2018 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ * Christian W. Damus - bug 529253
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static com.google.common.base.Predicates.and;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.transform;
+import static org.hamcrest.Matchers.hasItem;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.channels.FileChannel;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.mapping.IModelProviderDescriptor;
+import org.eclipse.core.resources.mapping.ModelProvider;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+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.URI;
+import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
+import org.eclipse.emf.compare.ide.ui.internal.logical.EMFModelProvider;
+import org.eclipse.emf.compare.ide.ui.internal.logical.resolver.CrossReferenceResolutionScope;
+import org.eclipse.emf.compare.ide.ui.internal.preferences.EMFCompareUIPreferences;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+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.papyrus.compare.diagram.tests.egit.fixture.GitTestRepository;
+import org.eclipse.papyrus.compare.diagram.tests.egit.fixture.MockSystemReader;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Stereotype;
+import org.hamcrest.Description;
+import org.hamcrest.FeatureMatcher;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeDiagnosingMatcher;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+import com.google.common.base.Function;
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableList.Builder;
+
+/**
+ * Abstract test case to assess the results of merging, rebasing, and cherry-picking of a particular merge
+ * scenario.
+ * <p>
+ * This abstract test case sets up the branches <em>left</em> and <em>right</em> with projects and models of a
+ * given directory specified by subclasses of this test case. Then it performs a merge, rebase, and
+ * cherry-pick in both directions and, for each case, calls the subclass to validate the result.
+ * </p>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+@SuppressWarnings({"restriction", "nls" })
+public abstract class AbstractGitMergeTestCase {
+
+ protected static final String DEFAULT_PROJECT = "Project1";
+
+ protected static final String TEST_BUNDLE = "org.eclipse.papyrus.compare.diagram.tests.git";
+
+ protected static final String MASTER_BRANCH = Constants.R_HEADS + Constants.MASTER;
+
+ protected static final String BRANCH_LEFT = Constants.R_HEADS + "branch_left";
+
+ protected static final String BRANCH_RIGHT = Constants.R_HEADS + "branch_right";
+
+ private static final Predicate<File> IS_EXISTING_FILE = new Predicate<File>() {
+ @Override
+ public boolean apply(File input) {
+ return input != null && input.exists() && input.isFile();
+ }
+ };
+
+ protected static String defaultResolutionScope;
+
+ protected GitTestRepository repository;
+
+ protected File gitDir;
+
+ @BeforeClass
+ public static void setUpClass() {
+ // suppress auto-ignoring and auto-sharing to avoid interference
+ final 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();
+ defaultResolutionScope = store.getString(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE);
+ store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE, getResolutionScope().name());
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
+ store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE, defaultResolutionScope);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ Activator.getDefault().getRepositoryCache().clear();
+ final MockSystemReader mockSystemReader = new MockSystemReader();
+ SystemReader.setInstance(mockSystemReader);
+ final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ final 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());
+ setUpRepository();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ final IModelProviderDescriptor modelProviderDesc = ModelProvider
+ .getModelProviderDescriptor(EMFModelProvider.PROVIDER_ID);
+ final EMFModelProvider emfModelProvider = (EMFModelProvider)modelProviderDesc.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 | FileUtils.SKIP_MISSING);
+ }
+ }
+ }
+
+ protected void setUpRepository() throws Exception {
+ final String testScenarioPath = getTestScenarioPath();
+ final File testScenarioDir = getTestScenarioFile(testScenarioPath);
+ Preconditions.checkState(testScenarioDir.isDirectory(), "Test scenario path must be a directory.");
+
+ final File testScenarioDirOrigin = getTestScenarioFile(testScenarioPath + "origin");
+ final File testScenarioDirLeft = getTestScenarioFile(testScenarioPath + "left");
+ final File testScenarioDirRight = getTestScenarioFile(testScenarioPath + "right");
+ Preconditions.checkState(testScenarioDirOrigin.exists() && testScenarioDirOrigin.isDirectory(),
+ "Test scenario directory must contain a directory called \"origin\".");
+ Preconditions.checkState(testScenarioDirLeft.exists() && testScenarioDirLeft.isDirectory(),
+ "Test scenario directory must contain a directory called \"left\".");
+ Preconditions.checkState(testScenarioDirRight.exists() && testScenarioDirRight.isDirectory(),
+ "Test scenario directory must contain a directory called \"right\".");
+
+ commitContentFrom(testScenarioDirOrigin, "initial-commit");
+ repository.createBranch(MASTER_BRANCH, BRANCH_LEFT);
+ repository.createBranch(MASTER_BRANCH, BRANCH_RIGHT);
+ repository.checkoutBranch(BRANCH_LEFT);
+ commitContentFrom(testScenarioDirLeft, "left-commit");
+ repository.checkoutBranch(BRANCH_RIGHT);
+ commitContentFrom(testScenarioDirRight, "right-commit");
+ }
+
+ private File getTestScenarioFile(String scenarioPath) throws IOException, URISyntaxException {
+ final Bundle bundle = Platform.getBundle(TEST_BUNDLE);
+ final URI fileUri = getFileUri(bundle.getEntry(scenarioPath));
+ return toFile(fileUri);
+ }
+
+ private URI getFileUri(URL bundleUrl) throws IOException {
+ return URI.createFileURI(FileLocator.toFileURL(bundleUrl).getPath());
+ }
+
+ private File toFile(URI fileUri) throws URISyntaxException {
+ return new File(fileUri.toFileString());
+ }
+
+ private void commitContentFrom(File rootDirectory, String commitMsg) throws Exception {
+ // TODO support multiple projects
+ final File workingDirectory = repository.getRepository().getWorkTree();
+ final TestProject testProject1 = new TestProject(DEFAULT_PROJECT, workingDirectory.getAbsolutePath());
+ final IProject iProject = testProject1.getProject();
+ final File projectDirectory = new File(iProject.getLocation().toOSString());
+ repository.connect(iProject);
+ copyDirectoryContents(rootDirectory, projectDirectory);
+ repository.addAllAndCommit(commitMsg, true);
+ }
+
+ private static void copyDirectoryContents(File rootDirectory, final File workingDirectory)
+ throws IOException {
+ String[] list = rootDirectory.list();
+ if (list != null) {
+ for (String child : list) {
+ copyDirectory(new File(rootDirectory, child), new File(workingDirectory, child));
+ }
+ }
+ }
+
+ private static void copyDirectory(File source, File destination) throws IOException {
+ if (source != null && source.isDirectory()) {
+ if (destination != null && !destination.exists()) {
+ destination.mkdir();
+ }
+ String[] list = source.list();
+ if (list != null) {
+ for (String child : list) {
+ copyDirectory(new File(source, child), new File(destination, child));
+ }
+ }
+ } else {
+ copyFile(source, destination);
+ }
+ }
+
+ private static void copyFile(File source, File dest) throws IOException {
+ FileChannel sourceChannel = null;
+ FileChannel destChannel = null;
+ FileInputStream fileInputStream = new FileInputStream(source);
+ sourceChannel = fileInputStream.getChannel();
+ FileOutputStream fileOutputStream = new FileOutputStream(dest);
+ destChannel = fileOutputStream.getChannel();
+ destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
+ sourceChannel.close();
+ destChannel.close();
+ fileInputStream.close();
+ fileOutputStream.close();
+ }
+
+ private Iterable<File> getAllContainedFiles(File workingDirectory) {
+ final Builder<File> builder = ImmutableList.builder();
+ File[] listFiles = workingDirectory.listFiles();
+ if (listFiles != null) {
+ for (File containedFile : listFiles) {
+ if (containedFile.isFile()) {
+ builder.add(containedFile);
+ } else if (containedFile.isDirectory()) {
+ builder.addAll(getAllContainedFiles(containedFile));
+ }
+ }
+ }
+ return builder.build();
+ }
+
+ /**
+ * Tests merging branch <em>left</em> into checked-out branch <em>right</em> and validates the result
+ * based on {@link #validateResult()}.
+ */
+ @Test
+ public void testMergeLeftIntoRight() throws Exception {
+ repository.checkoutBranch(BRANCH_RIGHT);
+ repository.mergeLogicalWithNewCommit(BRANCH_LEFT);
+ validate();
+ validateMergeLeftIntoRight();
+ }
+
+ /**
+ * Tests merging branch <em>right</em> into checked-out branch <em>left</em> and validates the result
+ * based on {@link #validateResult()}.
+ */
+ @Test
+ public void testMergeRightIntoLeft() throws Exception {
+ repository.checkoutBranch(BRANCH_LEFT);
+ repository.mergeLogicalWithNewCommit(BRANCH_RIGHT);
+ validate();
+ validateMergeRightIntoLeft();
+ }
+
+ /**
+ * Tests rebasing branch <em>left</em> onto checked-out branch <em>right</em> and validates the result
+ * based on {@link #validateResult()}.
+ */
+ @Test
+ public void testRebaseLeftOntoRight() throws Exception {
+ repository.checkoutBranch(BRANCH_RIGHT);
+ repository.rebaseLogical(BRANCH_LEFT);
+ validate();
+ validateRebaseLeftOntoRight();
+ }
+
+ /**
+ * Tests rebasing branch <em>right</em> onto checked-out branch <em>left</em> and then validates the
+ * result based on {@link #validateResult()} .
+ */
+ @Test
+ public void testRebaseRightOntoLeft() throws Exception {
+ repository.checkoutBranch(BRANCH_LEFT);
+ repository.rebaseLogical(BRANCH_RIGHT);
+ validate();
+ validateRebaseRightOntoLeft();
+ }
+
+ /**
+ * Tests cherry-picking branch <em>left</em> onto checked-out branch <em>right</em> and validates the
+ * result based on {@link #validateResult()}.
+ */
+ @Test
+ public void testCherryPickLeftOntoRight() throws Exception {
+ repository.checkoutBranch(BRANCH_RIGHT);
+ repository.cherryPickLogical(BRANCH_LEFT);
+ validate();
+ validateCherryPickLeftOntoRight();
+ }
+
+ /**
+ * Tests cherry-picking branch <em>right</em> onto checked-out branch <em>left</em> and then validates the
+ * result based on {@link #validateResult()} .
+ */
+ @Test
+ public void testCherryPickRightOntoLeft() throws Exception {
+ repository.checkoutBranch(BRANCH_LEFT);
+ repository.cherryPickLogical(BRANCH_RIGHT);
+ validate();
+ validateCherryPickRightOntoLeft();
+ }
+
+ protected void validate() throws Exception {
+ validateResult();
+ validateResources();
+ }
+
+ private void validateResources() throws Exception {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ final File workingDirectory = repository.getRepository().getWorkTree();
+ final Iterable<File> filesOfInterest = filter(getAllContainedFiles(workingDirectory),
+ and(IS_EXISTING_FILE, getFileOfInterestFilter()));
+ final Iterable<URI> urisOfInterest = transform(filesOfInterest, toUri());
+
+ // On different OS platforms and/or different computer systems, the order in
+ // which the files are gathered from the git working directory is variable.
+ // In case of sub-model units, be sure to resolve all proxies first, so that
+ // the unit linkages are available for test cases that expect to find them
+ for (URI uriOfInterest : urisOfInterest) {
+ resourceSet.getResource(uriOfInterest, true);
+ }
+ EcoreUtil.resolveAll(resourceSet);
+
+ for (URI uriOfInterest : urisOfInterest) {
+ final Resource resource = resourceSet.getResource(uriOfInterest, false);
+ validateResult(resource);
+ }
+ }
+
+ private Function<File, URI> toUri() {
+ return new Function<File, URI>() {
+ @Override
+ public URI apply(File input) {
+ return URI.createPlatformResourceURI(repository.getRepoRelativePath(input), true);
+ }
+ };
+ }
+
+ private Predicate<File> getFileOfInterestFilter() {
+ return new Predicate<File>() {
+ @Override
+ public boolean apply(File input) {
+ return !input.getAbsolutePath().startsWith(gitDir.getAbsolutePath()) && shouldValidate(input);
+ }
+ };
+ }
+
+ protected boolean isConflicting() throws Exception {
+ return repository.status().getConflicting().size() > 0;
+ }
+
+ protected boolean noConflict() throws Exception {
+ return !isConflicting();
+ }
+
+ protected boolean fileExists(String string) {
+ final File workTree = repository.getRepository().getWorkTree();
+ final File projectDirectory = new File(workTree, DEFAULT_PROJECT);
+ return new File(projectDirectory, string).exists();
+ }
+
+ /**
+ * Obtain a matcher for the Git-relative paths of files that are conflicted.
+ *
+ * @return a matcher of Git-relative paths of files that are conflicted
+ */
+ protected Matcher<String> isConflicted() {
+ return new TypeSafeDiagnosingMatcher<String>() {
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("is conflicted");
+ }
+
+ @Override
+ protected boolean matchesSafely(String item, Description failure) {
+ boolean result = false;
+
+ try {
+ result = repository.status().getConflicting()
+ .contains(new Path(DEFAULT_PROJECT).append(item).toString());
+
+ if (!result) {
+ failure.appendText(item).appendText(" is not conflicted");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ failure.appendText("could not determine conflict status: " + e.getMessage());
+ }
+
+ return result;
+ }
+ };
+ }
+
+ /**
+ * Obtain a matcher for the Git-relative paths of files that exist.
+ *
+ * @return a matcher of Git-relative paths of files that exist
+ */
+ protected Matcher<String> fileExists() {
+ return new TypeSafeDiagnosingMatcher<String>() {
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("file exists");
+ }
+
+ @Override
+ protected boolean matchesSafely(String item, Description failure) {
+ boolean result = fileExists(item);
+
+ if (!result) {
+ failure.appendText(item).appendText(" does not exist");
+ }
+
+ return result;
+ }
+ };
+ }
+
+ /**
+ * Obtain a matcher for resources that are loaded.
+ *
+ * @return a matcher of resources that are loaded
+ */
+ protected <T extends Resource> Matcher<T> isLoaded() {
+ return new TypeSafeDiagnosingMatcher<T>() {
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("resource loaded");
+ }
+
+ @Override
+ protected boolean matchesSafely(T item, Description failure) {
+ boolean result = item.isLoaded();
+
+ if (!result) {
+ failure.appendText(item.getURI().lastSegment()).appendText(" is not loaded");
+ }
+
+ return result;
+ }
+ };
+ }
+
+ /**
+ * Obtain a matcher for UML elements that have the {@code name}d stereotype applied.
+ *
+ * @param name
+ * the simple name of a stereotype (not a qualified name)
+ * @return the matcher
+ */
+ protected <T extends Element> Matcher<T> stereotypedAs(String name) {
+ Matcher<Iterable<? super Stereotype>> named = hasItem(named(name));
+
+ return new FeatureMatcher<T, Iterable<Stereotype>>(named, String.format("stereotyped as «%s»", name),
+ "appliedStereotypes") {
+
+ @Override
+ protected Iterable<Stereotype> featureValueOf(T actual) {
+ return actual.getAppliedStereotypes();
+ }
+ };
+ }
+
+ /**
+ * Obtain a matcher for UML elements that have the given {@code name}.
+ *
+ * @param name
+ * the simple name of an element (not a qualified name)
+ * @return the matcher
+ */
+ protected <T extends NamedElement> Matcher<T> named(final String name) {
+ return new TypeSafeDiagnosingMatcher<T>() {
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("named \"").appendText(name).appendText("\"");
+ }
+
+ @Override
+ protected boolean matchesSafely(T item, Description failure) {
+ boolean result = Objects.equal(item.getName(), name);
+
+ if (!result) {
+ failure.appendValue(item).appendText(" is not named \"").appendText(name)
+ .appendText("\"");
+ }
+
+ return result;
+ }
+ };
+ }
+
+ /**
+ * Obtain a matcher for objects that are stored in the given {@code resource}.
+ *
+ * @param resource
+ * the resource containing the elements to match
+ * @return the matcher
+ */
+ protected <T extends EObject> Matcher<T> storedIn(final Resource resource) {
+ return new TypeSafeDiagnosingMatcher<T>() {
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("stored in ").appendValue(resource.getURI());
+ }
+
+ @Override
+ protected boolean matchesSafely(T item, Description failure) {
+ boolean result = item.eResource() == resource;
+
+ if (!result) {
+ failure.appendValue(item).appendText(" is not in ").appendValue(resource.getURI());
+ }
+
+ return result;
+ }
+ };
+ }
+
+ /**
+ * Returns the resolution scope to be used for this test case.
+ * <p>
+ * The default value is {@link CrossReferenceResolutionScope#WORKSPACE}. Subclasses may override this
+ * method to provide a different resolution scope.
+ * </p>
+ *
+ * @return the resolution scope to be used for this test case.
+ */
+ protected static CrossReferenceResolutionScope getResolutionScope() {
+ return CrossReferenceResolutionScope.WORKSPACE;
+ }
+
+ /**
+ * Returns the path to the data of the test scenario.
+ *
+ * @return the path to the data of the test scenario.
+ */
+ protected abstract String getTestScenarioPath();
+
+ /**
+ * Specifies whether a given {@code file} should be validated in this test.
+ * <p>
+ * Clients may overwrite to include or exclude certain files from being validated with
+ * {@link #validateResult(Resource)}. The default is <code>true</code> for any file.
+ * </p>
+ *
+ * @param file
+ * The input in question.
+ * @return <code>true</code> if the given {@code file} should be validated, <code>false</code> otherwise.
+ */
+ protected boolean shouldValidate(File file) {
+ return true;
+ }
+
+ /**
+ * Validates the result after merging, rebasing, or cherry-picking in either direction.
+ *
+ * @throws Exception
+ * if something goes wrong during the validation of the assertions.
+ */
+ protected abstract void validateResult() throws Exception;
+
+ /**
+ * Validates contents of a single resource after merging, rebasing, or cherry-picking in either direction.
+ *
+ * @param resource
+ * The resource to validate.
+ * @throws Exception
+ * if something goes wrong during the validation of the assertions.
+ */
+ protected abstract void validateResult(Resource resource) throws Exception;
+
+ /**
+ * Validates the result of merging branch <em>left</em> into <em>right</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific tests require specific
+ * validation.
+ * </p>
+ */
+ protected void validateMergeLeftIntoRight() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of merging branch <em>right</em> into <em>left</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific tests require specific
+ * validation.
+ * </p>
+ */
+ protected void validateMergeRightIntoLeft() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of rebasing branch <em>left</em> onto <em>right</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific tests require specific
+ * validation.
+ * </p>
+ */
+ protected void validateRebaseLeftOntoRight() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of rebasing branch <em>right</em> onto <em>left</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific tests require specific
+ * validation.
+ * </p>
+ */
+ protected void validateRebaseRightOntoLeft() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of cherry-picking branch <em>left</em> onto <em>right</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific tests require specific
+ * validation.
+ * </p>
+ */
+ protected void validateCherryPickLeftOntoRight() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of cherry-picking branch <em>right</em> onto <em>left</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific tests require specific
+ * validation.
+ * </p>
+ */
+ protected void validateCherryPickRightOntoLeft() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/IgnoreDiFileChangesInGitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/IgnoreDiFileChangesInGitMergeTest.java
new file mode 100644
index 00000000..bc1457a1
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/IgnoreDiFileChangesInGitMergeTest.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (C) 2016 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.emf.compare.ide.ui.tests.framework.ResolutionStrategyID;
+import org.eclipse.emf.compare.ide.ui.tests.framework.annotations.ResolutionStrategies;
+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.junit.runner.RunWith;
+
+/**
+ * Tests that concurrent changes to di-files do not cause conflicts.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>Given is a UML activity diagram with a di-file that contains a page list and sash model windows.</dd>
+ * <dt>Left:</dt>
+ * <dd>A new diagram is created, which causes the di-file to contain a new sash model window.</dd>
+ * <dt>Right:</dt>
+ * <dd>Again, a new diagram is created, which causes the di-file to contain a new sash model window.</dd>
+ * </dl>
+ * <p>
+ * Without properly ignoring changes of the di-file, this scenario would lead to a conflict. The requirement,
+ * however, dictates that di-file changes should never lead to a conflict (cf. bug 485494).
+ * </p>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+@SuppressWarnings({"nls" })
+@RunWith(GitTestRunner.class)
+@ResolutionStrategies(ResolutionStrategyID.WORKSPACE)
+public class IgnoreDiFileChangesInGitMergeTest {
+
+ @GitMerge(local = "branch1", remote = "branch2")
+ @GitInput("data/ignore-di-file-changes.zip")
+ public void testIgnoredDiFileChangesAfterGitMerge(GitTestSupport testSupport) throws Exception {
+ assertTrue(testSupport.noConflict());
+ assertTrue(testSupport.fileExists("project1/model.di"));
+ assertTrue(testSupport.fileExists("project1/model.notation"));
+ assertTrue(testSupport.fileExists("project1/model.uml"));
+ }
+
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd1GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd1GitMergeTest.java
new file mode 100644
index 00000000..0a6c9bf5
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd1GitMergeTest.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Tests the extraction of a UML Package into a new sub-model with parallel changes to extracted UML Package.
+ * This scenario contains two diagrams, one for the root of the model and another for the extracted package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>Given is a UML Class Diagram with two classes in the root model, as well as a package with two further
+ * classes. We have two diagrams, one showing the root model, the other the contained package.</dd>
+ * <dt>Left:</dt>
+ * <dd>The contained package is extracted into a new resource named <em>SomePackage</em> (di, uml, and
+ * notation). Note that also the diagram showing the extracted package is moved into the resource
+ * <em>SomePackage.notation</em>.</dd>
+ * <dt>Right:</dt>
+ * <dd>The root model undergoes a series of changes, such as a new class <em>Ax</em> is added to the root
+ * model, the type of property <em>RootElement/B/a</em> is changed to the new class <em>Ax</em>.</dd>
+ * </dl>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+public class ResourceAttachmentChangeAdd1GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/add1/";
+
+ private static final String SOME_PACKAGE_UML = "SomePackage.uml";
+
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().endsWith(SOME_PACKAGE_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertTrue(noConflict());
+ assertTrue(fileExists("model.di"));
+ assertTrue(fileExists("model.notation"));
+ assertTrue(fileExists(MODEL_UML));
+ assertTrue(fileExists("SomePackage.di"));
+ assertTrue(fileExists("SomePackage.notation"));
+ assertTrue(fileExists(SOME_PACKAGE_UML));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ final String lastSegment = resource.getURI().lastSegment();
+ if (MODEL_UML.equals(lastSegment)) {
+ validateModelResource(resource);
+ } else if (SOME_PACKAGE_UML.equals(lastSegment)) {
+ validateSomePackageResource(resource);
+ }
+ }
+
+ private void validateModelResource(Resource resource) {
+ // assert changes of the right-hand side:
+ // Type of RootElement/B/a is Ax,
+ // which in turn has been added
+ final Model rootElement = (Model)resource.getContents().get(0);
+ final Property a = (Property)rootElement.getOwnedMember("B").getOwnedElements().get(0);
+ assertNotNull(rootElement.getOwnedMember("Ax"));
+ assertEquals(rootElement.getOwnedMember("Ax"), a.getType());
+ }
+
+ private void validateSomePackageResource(Resource resource) {
+ // assert changes of the left: package was extracted to SomePackage.uml
+ assertTrue(resource.getContents().size() == 1);
+ assertTrue(resource.getContents().get(0) instanceof org.eclipse.uml2.uml.Package);
+ assertEquals("SomePackage", ((org.eclipse.uml2.uml.Package)resource.getContents().get(0)).getName());
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd2GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd2GitMergeTest.java
new file mode 100644
index 00000000..3656322b
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeAdd2GitMergeTest.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+/**
+ * Extends {@link ResourceAttachmentChangeAdd1GitMergeTest} with the deletion of an unrelated file on the
+ * right-hand side.
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+public class ResourceAttachmentChangeAdd2GitMergeTest extends ResourceAttachmentChangeAdd1GitMergeTest {
+ @Override
+ protected String getTestScenarioPath() {
+ return "testmodels/resourceattachmentchange/add2/";
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete1GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete1GitMergeTest.java
new file mode 100644
index 00000000..74f92be8
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete1GitMergeTest.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Tests the re-integration of a UML Package from a sub-model with parallel addition of an element to
+ * re-integrated UML Package. This scenario contains two diagrams, one for the root of the model and another
+ * for the extracted package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>Given is a UML Class Diagram that refers to an extracted UML Package contained in the resource
+ * <em>Package1.uml</em>, which in turn contains one class. We have two diagrams, one is contained in
+ * <em>model.notation</em> and shows the root model, the other is contained in <em>Package1.notation</em> and
+ * shows the extracted package.</dd>
+ * <dt>Left:</dt>
+ * <dd>A second class is added to the extracted package in <em>Package1.uml</em> . Also a shape is added to
+ * the diagram in <em>Package1.notation</em>.</dd>
+ * <dt>Right:</dt>
+ * <dd>The extracted package <em>Package1</em> (di, notation, and uml) is re-integrated into <em>model</em>
+ * (di, notation, and uml).</dd>
+ * </dl>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+public class ResourceAttachmentChangeDelete1GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/delete1/";
+
+ private static final String MODEL_UML = "model.uml";
+
+ private static final String MODEL_NOTATION = "model.notation";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().equals(MODEL_NOTATION);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertTrue(noConflict());
+ assertTrue(fileExists("model.di"));
+ assertTrue(fileExists(MODEL_NOTATION));
+ assertTrue(fileExists(MODEL_UML));
+ assertFalse(fileExists("Package1.di"));
+ assertFalse(fileExists("Package1.notation"));
+ assertFalse(fileExists("Package1.uml"));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ final String lastSegment = resource.getURI().lastSegment();
+ if (MODEL_UML.equals(lastSegment)) {
+ validateModelResource(resource);
+ } else if (MODEL_NOTATION.equals(lastSegment)) {
+ validateModelNotation(resource);
+ }
+ }
+
+ private void validateModelResource(Resource resource) {
+ // assert changes of the left-hand side: addition of Class2
+ final Model rootElement = (Model)resource.getContents().get(0);
+ assertEquals("RootElement", rootElement.getName());
+ final Package package1 = (Package)rootElement.getOwnedElements().get(0);
+ assertTrue(package1.getOwnedElements().size() == 2);
+ assertTrue(package1.getOwnedElements().get(0) instanceof Class);
+ assertTrue(package1.getOwnedElements().get(1) instanceof Class);
+ final Class class1 = (Class)package1.getOwnedElements().get(0);
+ final Class class2 = (Class)package1.getOwnedElements().get(1);
+ assertEquals("Class1", class1.getName());
+ assertEquals("Class2", class2.getName());
+ }
+
+ private void validateModelNotation(Resource resource) {
+ // assert changes of the right-hand side: integration of second diagram
+ assertEquals(2, resource.getContents().size());
+ assertEquals("Class Diagram", ((Diagram)resource.getContents().get(0)).getName());
+ assertEquals("ClassDiagram2", ((Diagram)resource.getContents().get(1)).getName());
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete2GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete2GitMergeTest.java
new file mode 100644
index 00000000..b5e7bf50
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeDelete2GitMergeTest.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Tests the re-integration of a UML Package from a sub-model with parallel addition of an element to
+ * re-integrated UML Package. This scenario <em>does not</em> contain two diagrams (in contrast to
+ * {@link ResourceAttachmentChangeDelete1GitMergeTest}), but only one which is located in
+ * <em>model.notation</em>.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>Given is a UML Class Diagram that refers to an extracted UML Package contained in the resource
+ * <em>Package1.uml</em>, which in turn contains one class. We have only one diagram, which is contained in
+ * <em>model.notation</em>.</dd>
+ * <dt>Left:</dt>
+ * <dd>A second class is added to the extracted package in <em>Package1.uml</em> . Also a shape is added to
+ * the diagram in <em>model.notation</em>.</dd>
+ * <dt>Right:</dt>
+ * <dd>The extracted package <em>Package1</em> (di, notation, and uml) is re-integrated into <em>model</em>
+ * (di, notation, and uml).</dd>
+ * </dl>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+public class ResourceAttachmentChangeDelete2GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/delete2/";
+
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertTrue(noConflict());
+ assertTrue(fileExists("model.di"));
+ assertTrue(fileExists("model.notation"));
+ assertTrue(fileExists(MODEL_UML));
+ assertFalse(fileExists("Package1.di"));
+ assertFalse(fileExists("Package1.notation"));
+ assertFalse(fileExists("Package1.uml"));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ final String lastSegment = resource.getURI().lastSegment();
+ if (MODEL_UML.equals(lastSegment)) {
+ validateModelResource(resource);
+ }
+ }
+
+ private void validateModelResource(Resource resource) {
+ // assert changes of the left-hand side: addition of Class1
+ // which in turn has been added
+ final Model rootElement = (Model)resource.getContents().get(0);
+ assertEquals("RootElement", rootElement.getName());
+ final Package package1 = (Package)rootElement.getOwnedElements().get(0);
+ assertTrue(package1.getOwnedElements().size() == 1);
+ assertTrue(package1.getOwnedElements().get(0) instanceof Class);
+ final Class class1 = (Class)package1.getOwnedElements().get(0);
+ assertEquals("Class1", class1.getName());
+
+ // the only change on the right-hand side is the reintegration of
+ // package1
+ // this is asserted in validateResult()
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename1GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename1GitMergeTest.java
new file mode 100644
index 00000000..55201e32
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename1GitMergeTest.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 2018 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ * Christian W. Damus - bug 529217
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static java.util.Arrays.asList;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.any;
+import static org.hamcrest.Matchers.everyItem;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.notNullValue;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * Tests the renaming of a UML Package sub-model that has internal changes on another branch. This scenario
+ * contains two diagrams, one for the root of the model and another for the extracted package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>A class diagram in the root model showing a package containing a class. This package is a sub-model
+ * unit that has its own diagram showing the content of the package, being the class.</dd>
+ * <dt>Left:</dt>
+ * <dd>The one class in the sub-model unit is renamed and another class added in the package. The layout of
+ * both classes in the sub-model unit's diagram is changed.</dd>
+ * <dt>Right:</dt>
+ * <dd>The sub-model unit package is renamed, along with all of the sub-unit resources to match the new
+ * package name.</dd>
+ * </dl>
+ */
+@SuppressWarnings("nls")
+public class ResourceAttachmentChangeRename1GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/rename1/";
+
+ private static final String SUBUNIT_UML = "Subunit1.uml";
+
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().equals(SUBUNIT_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertThat("conflicts remain", noConflict());
+
+ assertThat(asList("model.di", "model.notation", MODEL_UML, //
+ "Subunit1.di", "Subunit1.notation", SUBUNIT_UML), //
+ everyItem(fileExists()));
+
+ assertThat(asList("Package1.di", "Package1.notation", "Package1.uml"), //
+ everyItem(not(fileExists())));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ switch (resource.getURI().lastSegment()) {
+ case MODEL_UML:
+ checkModelResource(resource);
+ break;
+ case SUBUNIT_UML:
+ checkSubunitResource(resource);
+ break;
+ }
+ }
+
+ private void checkModelResource(Resource resource) {
+ assertThat(resource.getContents(), hasItem(any(Model.class)));
+ final Model model = (Model)EcoreUtil.getObjectByType(resource.getContents(),
+ UMLPackage.Literals.MODEL);
+
+ assertThat(model.getNestedPackages(), hasItem(any(Package.class)));
+ final Package package_ = model.getNestedPackages().get(0);
+
+ checkLeftChanges(package_);
+ checkRightChanges(package_);
+ }
+
+ private void checkLeftChanges(Package package_) {
+ assertThat(package_.getOwnedType("Foo"), notNullValue());
+ assertThat(package_.getOwnedType("Bar"), notNullValue());
+ }
+
+ private void checkRightChanges(Package package_) {
+ assertThat(package_.getName(), is("Subunit1"));
+ }
+
+ private void checkSubunitResource(Resource resource) {
+ assertThat(resource.getContents(), hasItem(any(Package.class)));
+ final Package package_ = (Package)EcoreUtil.getObjectByType(resource.getContents(),
+ UMLPackage.Literals.PACKAGE);
+
+ checkLeftChanges(package_);
+ checkRightChanges(package_);
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename2GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename2GitMergeTest.java
new file mode 100644
index 00000000..02566063
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename2GitMergeTest.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 2018 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ * Christian W. Damus - bug 529217
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static java.util.Arrays.asList;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.everyItem;
+import static org.hamcrest.Matchers.not;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * Tests the renaming of a UML Package sub-model that is resorbed on another branch. This scenario contains
+ * two diagrams, one for the root of the model and another for the extracted package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>A class diagram in the root model showing a package containing a class. This package is a sub-model
+ * unit that has its own diagram showing the content of the package, being the class.</dd>
+ * <dt>Left:</dt>
+ * <dd>The sub-model unit is resorbed.</dd>
+ * <dt>Right:</dt>
+ * <dd>The sub-model unit package is renamed, along with all of the sub-unit resources to match the new
+ * package name.</dd>
+ * </dl>
+ */
+@SuppressWarnings("nls")
+
+public class ResourceAttachmentChangeRename2GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/rename2/";
+
+ private static final String SUBUNIT_UML = "Subunit1.uml";
+
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().equals(SUBUNIT_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertThat("no conflicts", isConflicting());
+
+ assertThat(asList("model.di", "model.notation", MODEL_UML), //
+ everyItem(fileExists()));
+
+ assertThat(asList("model.notation", MODEL_UML, //
+ "Subunit1.notation", "Subunit1.di", SUBUNIT_UML), //
+ everyItem(isConflicted()));
+ assertThat("model.di", not(isConflicted()));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ // Nothing further to check (every scenario conflicts)
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename3GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename3GitMergeTest.java
new file mode 100644
index 00000000..a3f17b56
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename3GitMergeTest.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 2018 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ * Christian W. Damus - bugs 529217, 529253
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static java.util.Arrays.asList;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.any;
+import static org.hamcrest.Matchers.everyItem;
+import static org.hamcrest.Matchers.hasItem;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * Tests the renaming of a UML Package sub-model that has stereotyped elements moved into it on another
+ * branch. This scenario contains two diagrams, one for the root of the model and another for the extracted
+ * package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>A class diagram in the root model showing a package containing a class, alongside two stereotyped
+ * elements. This package is a sub-model unit that has its own diagram showing the content of the package,
+ * being the class.</dd>
+ * <dt>Left:</dt>
+ * <dd>The two stereotype elements are moved into the package. The layout of both diagrams is changed: in the
+ * root package to move the two shapes into the nested package shape, and in the sub-unit package's diagram to
+ * add shapes for the two elements.</dd>
+ * <dt>Right:</dt>
+ * <dd>The sub-model unit package is renamed, along with all of the sub-unit resources to match the new
+ * package name.</dd>
+ * </dl>
+ */
+@SuppressWarnings("nls")
+public class ResourceAttachmentChangeRename3GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/rename3/";
+
+ private static final String SUBUNIT_UML = "Subunit1.uml";
+
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().equals(SUBUNIT_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertThat("conflicts remain", noConflict());
+
+ assertThat(asList("model.di", "model.notation", MODEL_UML, //
+ "Subunit1.di", "Subunit1.notation", SUBUNIT_UML), //
+ everyItem(fileExists()));
+
+ assertThat(asList("Package1.di", "Package1.notation", "Package1.uml"), //
+ everyItem(not(fileExists())));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ switch (resource.getURI().lastSegment()) {
+ case MODEL_UML:
+ checkModelResource(resource);
+ break;
+ case SUBUNIT_UML:
+ checkSubunitResource(resource);
+ break;
+ }
+ }
+
+ private void checkModelResource(Resource resource) {
+ assertThat(resource.getContents(), hasItem(any(Model.class)));
+ final Model model = (Model)EcoreUtil.getObjectByType(resource.getContents(),
+ UMLPackage.Literals.MODEL);
+
+ assertThat(model.getNestedPackages(), hasItem(any(Package.class)));
+ final Package package_ = model.getNestedPackages().get(0);
+
+ checkLeftChanges(package_);
+ checkRightChanges(package_);
+ }
+
+ private void checkLeftChanges(Package package_) {
+ Type strings = package_.getOwnedType("Strings");
+ assertThat(strings, stereotypedAs("Utility"));
+ assertThat(strings.getStereotypeApplications(), everyItem(storedIn(strings.eResource())));
+ Package jface = package_.getNestedPackage("jface");
+ assertThat(jface, stereotypedAs("Framework"));
+ assertThat(jface.getStereotypeApplications(), everyItem(storedIn(jface.eResource())));
+ }
+
+ private void checkRightChanges(Package package_) {
+ assertThat(package_.getName(), is("Subunit1"));
+ }
+
+ private void checkSubunitResource(Resource resource) {
+ assertThat(resource.getContents(), hasItem(any(Package.class)));
+ final Package package_ = (Package)EcoreUtil.getObjectByType(resource.getContents(),
+ UMLPackage.Literals.PACKAGE);
+
+ checkLeftChanges(package_);
+ checkRightChanges(package_);
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename4GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename4GitMergeTest.java
new file mode 100644
index 00000000..61bd0a10
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename4GitMergeTest.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 2018 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ * Christian W. Damus - bug 529217
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static java.util.Arrays.asList;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.any;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.everyItem;
+import static org.hamcrest.Matchers.hasItem;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * Tests the renaming of a UML Package sub-model that has stereotyped elements moved out of it on another
+ * branch. This scenario contains two diagrams, one for the root of the model and another for the extracted
+ * package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>A class diagram in the root model showing a package containing a class and two other stereotyped
+ * elements. This package is a sub-model unit that has its own diagram showing the content of the package,
+ * being the class and those stereotyped elements.</dd>
+ * <dt>Left:</dt>
+ * <dd>The two stereotype elements are moved out of the sub-unit package into the root package. The layout of
+ * both diagrams is changed: in the root package to move the two shapes out of the nested package shape, and
+ * in the sub-unit package's diagram to delete the shapes for the two elements.</dd>
+ * <dt>Right:</dt>
+ * <dd>The sub-model unit package is renamed, along with all of the sub-unit resources to match the new
+ * package name.</dd>
+ * </dl>
+ */
+@SuppressWarnings("nls")
+public class ResourceAttachmentChangeRename4GitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/rename4/";
+
+ private static final String SUBUNIT_UML = "Subunit1.uml";
+
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().equals(SUBUNIT_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertThat("conflicts remain", noConflict());
+
+ assertThat(asList("model.di", "model.notation", MODEL_UML, //
+ "Subunit1.di", "Subunit1.notation", SUBUNIT_UML), //
+ everyItem(fileExists()));
+
+ assertThat(asList("Package1.di", "Package1.notation", "Package1.uml"), //
+ everyItem(not(fileExists())));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ switch (resource.getURI().lastSegment()) {
+ case MODEL_UML:
+ checkModelResource(resource);
+ break;
+ case SUBUNIT_UML:
+ checkSubunitResource(resource);
+ break;
+ }
+ }
+
+ private void checkModelResource(Resource resource) {
+ assertThat(resource.getContents(), hasItem(any(Model.class)));
+ final Model model = (Model)EcoreUtil.getObjectByType(resource.getContents(),
+ UMLPackage.Literals.MODEL);
+
+ assertThat(model.getNestedPackages(), hasItem(any(Package.class)));
+ final Package package_ = model.getNestedPackages().get(0);
+
+ checkLeftChanges(package_);
+ checkRightChanges(package_);
+ }
+
+ private void checkLeftChanges(Package package_) {
+ final Model model = (Model)package_.getNestingPackage();
+ Type strings = model.getOwnedType("Strings");
+ assertThat(strings, stereotypedAs("Utility"));
+ assertThat(strings.getStereotypeApplications(), everyItem(storedIn(strings.eResource())));
+ Package jface = model.getNestedPackage("jface");
+ assertThat(jface, stereotypedAs("Framework"));
+ assertThat(jface.getStereotypeApplications(), everyItem(storedIn(jface.eResource())));
+
+ assertThat(package_.getOwnedTypes(), not(empty()));
+ assertThat(package_.getOwnedType("Strings"), nullValue());
+ assertThat(package_.getNestedPackage("jface"), nullValue());
+ }
+
+ private void checkRightChanges(Package package_) {
+ assertThat(package_.getName(), is("Subunit1"));
+ }
+
+ private void checkSubunitResource(Resource resource) {
+ assertThat(resource.getContents(), hasItem(any(Package.class)));
+ final Package package_ = (Package)EcoreUtil.getObjectByType(resource.getContents(),
+ UMLPackage.Literals.PACKAGE);
+
+ checkLeftChanges(package_);
+ checkRightChanges(package_);
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename5GitMergeTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename5GitMergeTest.java
new file mode 100644
index 00000000..e12be33f
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/ResourceAttachmentChangeRename5GitMergeTest.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 2018 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ * Christian W. Damus - bug 529217
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static java.util.Arrays.asList;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.everyItem;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * Tests the renaming of a UML Package sub-model on both sides of a merge to different URIs.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>A class diagram in the root model showing a package containing a class and two other stereotyped
+ * elements. This package is a sub-model unit that has its own diagram showing the content of the package,
+ * being the class and those stereotyped elements.</dd>
+ * <dt>Left:</dt>
+ * <dd>The sub-model unit resources to are renamed.</dd>
+ * <dt>Right:</dt>
+ * <dd>The sub-model unit package is renamed, along with all of the sub-unit resources to match the new
+ * package name, resulting in resource names (URIs) that are different to the left side.</dd>
+ * </dl>
+ */
+@SuppressWarnings("nls")
+public class ResourceAttachmentChangeRename5GitMergeTest extends AbstractGitMergeTestCase {
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/rename5/";
+
+ private static final String SUBUNIT_UML = "Subunit1.uml";
+
+ private static final String NEWNAME_UML = "NewName.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return false; // There are no mergeable changes to verify in any file
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertThat("no conflicts", isConflicting());
+
+ assertThat(asList("NewName.di", "NewName.notation", NEWNAME_UML, //
+ "Subunit1.di", "Subunit1.notation", SUBUNIT_UML), //
+ everyItem(isConflicted()));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ // Pass
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeApplicationsInSubunitsTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeApplicationsInSubunitsTest.java
new file mode 100644
index 00000000..9678294c
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeApplicationsInSubunitsTest.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (C) 2017 Christian W. Damus 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
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static org.hamcrest.CoreMatchers.everyItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.ide.ui.tests.framework.ResolutionStrategyID;
+import org.eclipse.emf.compare.ide.ui.tests.framework.annotations.ResolutionStrategies;
+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.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.hamcrest.CustomTypeSafeMatcher;
+import org.hamcrest.Matcher;
+import org.junit.runner.RunWith;
+
+import com.google.common.collect.Lists;
+
+/**
+ * Test that a class refactored as a sub-unit does not lose its stereotype applications when merged into a
+ * branch that has the class integrated.
+ *
+ * @author Christian W. Damus
+ * @see <a href="http://eclip.se/526932">bug 526932</a>
+ */
+@SuppressWarnings({"nls", "boxing" })
+@RunWith(GitTestRunner.class)
+@ResolutionStrategies(ResolutionStrategyID.WORKSPACE)
+public class StereotypeApplicationsInSubunitsTest {
+
+ @GitMerge(local = "left", remote = "right-extract-submodel")
+ @GitInput("data/bug526932.zip")
+ public void stereotypeApplicationNotLost(GitTestSupport testSupport) throws Exception {
+ // Check that the merge completed
+
+ assertThat(testSupport.noConflict(), is(true));
+ assertThat(testSupport.getMergeResult().getMergeStatus().isSuccessful(), is(true));
+ assertThat(testSupport.getStatus().hasUncommittedChanges(), is(false));
+
+ // Check that all the files we expect are present
+
+ String pattern = "Plant/%s.%s";
+ List<String> extensions = Arrays.asList("di", "notation", "uml");
+ List<String> units = Arrays.asList("Plant", "Plant_Block");
+ List<String> expectedFiles = Lists.newArrayListWithCapacity(units.size() * extensions.size());
+ for (String unit : units) {
+ for (String ext : extensions) {
+ expectedFiles.add(String.format(pattern, unit, ext));
+ }
+ }
+
+ assertThat(expectedFiles, everyItem(fileExists(testSupport)));
+
+ // Check the stereotype applications
+
+ URI resourceURI = URI.createPlatformResourceURI("Plant/Plant_Block.uml", true);
+ ModelSet mset = new ModelSet();
+
+ try {
+ mset.loadModels(resourceURI);
+ org.eclipse.uml2.uml.Class class_ = UML2Util.load(mset, resourceURI, UMLPackage.Literals.CLASS);
+ assertThat(class_, isApplied("SysML::Blocks::Block"));
+ } finally {
+ mset.unload();
+ }
+ }
+
+ //
+ // Test framework
+ //
+
+ /**
+ * Assertion that a file exists according to a Git test {@code support}.
+ *
+ * @param support
+ * the Git test support
+ * @return the file-exists assertion
+ */
+ Matcher<String> fileExists(final GitTestSupport support) {
+ return new CustomTypeSafeMatcher<String>("exists") {
+
+ @Override
+ protected boolean matchesSafely(String item) {
+ return support.fileExists(item);
+ }
+ };
+ }
+
+ /**
+ * Assertion that an UML element has a {@code stereotype} applied.
+ *
+ * @param stereotype
+ * the stereotype that is expected to be applied
+ * @return the is-applied assertion
+ */
+ Matcher<Element> isApplied(final String stereotype) {
+ return new CustomTypeSafeMatcher<Element>("has " + stereotype + " applied") {
+
+ @Override
+ protected boolean matchesSafely(Element item) {
+ Stereotype applied = item.getAppliedStereotype(stereotype);
+ return applied != null;
+ }
+ };
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeConflictTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeConflictTest.java
new file mode 100644
index 00000000..d662de47
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/StereotypeConflictTest.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (C) 2016 EclipseSource Munich Gmbh 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
+ *
+ * Contributors:
+ * Alexandra Buzila - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * Tests that conflicting changes of stereotype attributes are correctly detected.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>Contains a Papyrus model with the ModelElements SysML profile applied. The model contains a
+ * ModelElements:View package, containing a ModelElements:ViewPoint class.</dd>
+ * <dt>Right:</dt>
+ * <dd>The value of the Purpose attribute of the ViewPoint element is changed.</dd>
+ * <dt>Left:</dt>
+ * <dd>The ViewPoint is deleted.</dd>
+ * </dl>
+ * <p>
+ * These changes should lead to a conflict.
+ * </p>
+ *
+ * @author Alexandra Buzila
+ */
+public class StereotypeConflictTest extends AbstractGitMergeTestCase {
+
+ @Override
+ protected String getTestScenarioPath() {
+ return "testmodels/stereotype-changes/conflict/"; //$NON-NLS-1$
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return false;
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertTrue(isConflicting());
+ assertTrue(fileExists("model.di"));
+ assertTrue(fileExists("model.notation"));
+ assertTrue(fileExists("model.uml"));
+ Set<String> conflicting = repository.status().getConflicting();
+ assertEquals(conflicting.size(), 1);
+ assertTrue(conflicting.contains("Project1/model.uml"));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ // do nothing
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/bug526932.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/bug526932.zip
new file mode 100644
index 00000000..6b158a63
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/bug526932.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/ignore-di-file-changes.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/ignore-di-file-changes.zip
new file mode 100644
index 00000000..9008a70e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/data/ignore-di-file-changes.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/GitTestRepository.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/GitTestRepository.java
new file mode 100644
index 00000000..84f2e349
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/GitTestRepository.java
@@ -0,0 +1,849 @@
+/*******************************************************************************
+ * Copyright (C) 2013, 2015 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
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ * Florian Zoubek - rebase method added
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit.fixture;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+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.mapping.IModelProviderDescriptor;
+import org.eclipse.core.resources.mapping.ModelProvider;
+import org.eclipse.core.resources.mapping.RemoteResourceMappingContext;
+import org.eclipse.core.resources.mapping.ResourceMapping;
+import org.eclipse.core.resources.mapping.ResourceMappingContext;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.egit.core.Activator;
+import org.eclipse.egit.core.op.BranchOperation;
+import org.eclipse.egit.core.op.CherryPickOperation;
+import org.eclipse.egit.core.op.ConnectProviderOperation;
+import org.eclipse.egit.core.op.DisconnectProviderOperation;
+import org.eclipse.egit.core.op.IgnoreOperation;
+import org.eclipse.egit.core.op.MergeOperation;
+import org.eclipse.egit.core.op.RebaseOperation;
+import org.eclipse.egit.core.op.ResetOperation;
+import org.eclipse.egit.core.synchronize.GitResourceVariantTreeSubscriber;
+import org.eclipse.egit.core.synchronize.GitSubscriberMergeContext;
+import org.eclipse.egit.core.synchronize.GitSubscriberResourceMappingContext;
+import org.eclipse.egit.core.synchronize.dto.GitSynchronizeData;
+import org.eclipse.egit.core.synchronize.dto.GitSynchronizeDataSet;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
+import org.eclipse.jgit.api.CommitCommand;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.eclipse.jgit.api.RmCommand;
+import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.api.errors.NoFilepatternException;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.RefUpdate;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.merge.MergeStrategy;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevWalk;
+import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.team.core.subscribers.Subscriber;
+import org.eclipse.team.core.subscribers.SubscriberScopeManager;
+
+import com.google.common.collect.Iterables;
+
+/**
+ * This class is largely inspired from org.eclipse.egit.core.test.TestRepository. It has been copied here in
+ * order to be usable from our build without dependencies towards egit.core.tests.
+ */
+@SuppressWarnings({"nls", "restriction" })
+public class GitTestRepository {
+ private final List<Runnable> disposers;
+
+ Repository repository;
+
+ String workdirPrefix;
+
+ /**
+ * Creates a new test repository.
+ *
+ * @param gitDir
+ * The ".git" file we'll use to create a repository.
+ * @throws IOException
+ * Thrown if we cannot write at the given location.
+ */
+ public GitTestRepository(File gitDir) throws IOException {
+ repository = Activator.getDefault().getRepositoryCache().lookupRepository(gitDir);
+ repository.create();
+
+ try {
+ workdirPrefix = repository.getWorkTree().getCanonicalPath();
+ } catch (IOException err) {
+ workdirPrefix = repository.getWorkTree().getAbsolutePath();
+ }
+ workdirPrefix = workdirPrefix.replace('\\', '/');
+ if (!workdirPrefix.endsWith("/")) {
+ workdirPrefix += "/";
+ }
+
+ this.disposers = new ArrayList<>();
+ }
+
+ public Repository getRepository() {
+ return this.repository;
+ }
+
+ /**
+ * Adds all changes and creates a commit.
+ * <p>
+ * This is a convenience method for {@link #addAllAndCommit(String, boolean)}, whereas deleted or missing
+ * files are <em>not</em> added to the index.
+ * </p>
+ *
+ * @param commitMessage
+ * The commit message.
+ * @return The reference to the created commit.
+ * @throws Exception
+ * if anything goes wrong.
+ */
+ public RevCommit addAllAndCommit(String commitMessage) throws Exception {
+ return addAllAndCommit(commitMessage, false);
+ }
+
+ /**
+ * Adds all changes and creates a commit.
+ *
+ * @param commitMessage
+ * The commit message.
+ * @param addDeleted
+ * Specifies whether missing or deleted files should added to index, too.
+ * @return The reference to the created commit.
+ * @throws Exception
+ * if anything goes wrong.
+ */
+ public RevCommit addAllAndCommit(String commitMessage, boolean addDeleted) throws Exception {
+ Git git = new Git(repository);
+ try {
+ git.add().addFilepattern(".").call();
+ if (addDeleted) {
+ addDeletedFiles();
+ }
+ return commit(commitMessage);
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Adds all missing or deleted files to the index.
+ *
+ * @throws Exception
+ * if anything goes wrong.
+ */
+ public void addDeletedFiles() throws Exception {
+ Git git = new Git(repository);
+ try {
+ Status status = git.status().call();
+ if (!status.getMissing().isEmpty() || !status.getRemoved().isEmpty()) {
+ RmCommand rm = git.rm();
+ for (String deletedFile : Iterables.concat(status.getMissing(), status.getRemoved())) {
+ rm.addFilepattern(deletedFile);
+ }
+ rm.call();
+ }
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Adds all changes and amends the latest commit, also changing its message to the given message.
+ *
+ * @param message
+ * the amended commit message, must not be null
+ * @return The RevCommit of the amended commit.
+ * @throws Exception
+ * if anything goes wrong.
+ */
+ public RevCommit addAllAndAmend(String message) throws Exception {
+ Git git = new Git(repository);
+ try {
+ git.add().addFilepattern(".").call();
+ return git.commit().setAmend(true).setMessage(message).call();
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Track, add to index and finally commit the given files.
+ *
+ * @param testProject
+ * The project within which this file is located.
+ * @param commitMessage
+ * Message with which to commit this file.
+ * @param files
+ * The files to add and commit.
+ * @return The RevCommit corresponding to this operation.
+ */
+ public RevCommit addAndCommit(TestProject testProject, String commitMessage, File... files)
+ throws Exception {
+ addToIndex(testProject, files);
+ return commit(commitMessage);
+ }
+
+ /**
+ * Track, add to index and finally commit given file
+ *
+ * @param project
+ * @param file
+ * @param commitMessage
+ * @return commit object
+ * @throws Exception
+ */
+ public RevCommit addAndCommit(IProject project, String commitMessage, File... files) throws Exception {
+ for (File file : files) {
+ track(file);
+ addToIndex(project, file);
+ }
+ return commit(commitMessage);
+ }
+
+ /**
+ * Appends content to end of given file.
+ *
+ * @param file
+ * @param content
+ * @throws IOException
+ */
+ public void appendFileContent(File file, byte[] content) throws IOException {
+ appendFileContent(file, new String(content, "UTF-8"), true);
+ }
+
+ /**
+ * Appends content to end of given file.
+ *
+ * @param file
+ * @param content
+ * @throws IOException
+ */
+ public void appendFileContent(File file, String content) throws IOException {
+ appendFileContent(file, content, true);
+ }
+
+ /**
+ * Appends content to given file.
+ *
+ * @param file
+ * @param content
+ * @param append
+ * if true, then bytes will be written to the end of the file rather than the beginning
+ * @throws IOException
+ */
+ public void appendFileContent(File file, byte[] content, boolean append) throws IOException {
+ appendFileContent(file, new String(content, "UTF-8"), append);
+ }
+
+ /**
+ * Appends content to given file.
+ *
+ * @param file
+ * @param content
+ * @param append
+ * if true, then bytes will be written to the end of the file rather than the beginning
+ * @throws IOException
+ */
+ public void appendFileContent(File file, String content, boolean append) throws IOException {
+ Writer fw = null;
+ try {
+ fw = new OutputStreamWriter(new FileOutputStream(file, append), "UTF-8");
+ fw.append(content);
+ } finally {
+ if (fw != null) {
+ fw.close();
+ }
+ }
+ }
+
+ /**
+ * Adds the given file to the index
+ *
+ * @param project
+ * @param file
+ * @throws Exception
+ */
+ public void addToIndex(IProject project, File file) throws Exception {
+ IFile iFile = getIFile(project, file);
+ addToIndex(iFile);
+ }
+
+ /**
+ * Adds the given resource to the index
+ *
+ * @param resource
+ * @throws CoreException
+ * @throws IOException
+ * @throws GitAPIException
+ * @throws NoFilepatternException
+ */
+ public void addToIndex(IResource resource)
+ throws CoreException, IOException, NoFilepatternException, GitAPIException {
+ String repoPath = getRepoRelativePath(resource.getLocation().toString());
+ Git git = new Git(repository);
+ try {
+ git.add().addFilepattern(repoPath).call();
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Appends file content to given file, then track, add to index and finally commit it.
+ *
+ * @param project
+ * @param file
+ * @param content
+ * @param commitMessage
+ * @return commit object
+ * @throws Exception
+ */
+ public RevCommit appendContentAndCommit(IProject project, File file, byte[] content, String commitMessage)
+ throws Exception {
+ return appendContentAndCommit(project, file, new String(content, "UTF-8"), commitMessage);
+ }
+
+ /**
+ * Appends file content to given file, then track, add to index and finally commit it.
+ *
+ * @param project
+ * @param file
+ * @param content
+ * @param commitMessage
+ * @return commit object
+ * @throws Exception
+ */
+ public RevCommit appendContentAndCommit(IProject project, File file, String content, String commitMessage)
+ throws Exception {
+ appendFileContent(file, content);
+ track(file);
+ addToIndex(project, file);
+
+ return commit(commitMessage);
+ }
+
+ public void ignore(File... files) throws Exception {
+ final Set<IPath> paths = new LinkedHashSet<>();
+ for (File file : files) {
+ paths.add(new Path(file.getPath()));
+ }
+ new IgnoreOperation(paths).execute(new NullProgressMonitor());
+ }
+
+ /**
+ * Adds the given files to the index.
+ *
+ * @param testProject
+ * Project that contains these files.
+ * @param files
+ * Files to add to the index.
+ */
+ public void addToIndex(TestProject testProject, File... files) throws Exception {
+ for (File file : files) {
+ addToIndex(testProject.getIFile(testProject.getProject(), file));
+ }
+ }
+
+ /**
+ * Removes the given files from the index.
+ *
+ * @param testProject
+ * Project that contains these files.
+ * @param files
+ * Files to remove from the index.
+ */
+ public void removeFromIndex(TestProject testProject, File... files) throws Exception {
+ for (File file : files) {
+ removeFromIndex(testProject.getIFile(testProject.getProject(), file));
+ }
+ }
+
+ /**
+ * Adds the given resources to the index
+ *
+ * @param resources
+ * Resources to add to the index.
+ */
+ public void addToIndex(IResource... resources)
+ throws CoreException, IOException, NoFilepatternException, GitAPIException {
+ Git git = new Git(repository);
+ try {
+ for (IResource resource : resources) {
+ String repoPath = getRepoRelativePath(resource.getLocation().toString());
+ git.add().addFilepattern(repoPath).call();
+ }
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Adds the given resources to the index
+ *
+ * @param resources
+ * Resources to add to the index.
+ */
+ public void removeFromIndex(IResource... resources)
+ throws CoreException, IOException, NoFilepatternException, GitAPIException {
+ Git git = new Git(repository);
+ try {
+ for (IResource resource : resources) {
+ String repoPath = getRepoRelativePath(resource.getLocation().toString());
+ git.rm().addFilepattern(repoPath).call();
+ }
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Commits the current index.
+ *
+ * @param message
+ * commit message
+ * @return commit object
+ */
+ public RevCommit commit(String message) throws Exception {
+ Git git = new Git(repository);
+ try {
+ CommitCommand commitCommand = git.commit();
+ commitCommand.setAuthor("J. Git", "j.git@egit.org");
+ commitCommand.setCommitter(commitCommand.getAuthor());
+ commitCommand.setMessage(message);
+ return commitCommand.call();
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Connect a project to this repository.
+ *
+ * @param project
+ * The project to connect
+ */
+ public void connect(IProject project) throws CoreException {
+ ConnectProviderOperation op = new ConnectProviderOperation(project, repository.getDirectory());
+ op.execute(null);
+ }
+
+ /**
+ * Disconnects provider from project
+ *
+ * @param project
+ * @throws CoreException
+ */
+ public void disconnect(IProject project) throws CoreException {
+ Collection<IProject> projects = Collections.singleton(project.getProject());
+ DisconnectProviderOperation disconnect = new DisconnectProviderOperation(projects);
+ disconnect.execute(null);
+ }
+
+ /**
+ * Create a file or get an existing one
+ *
+ * @param project
+ * instance of project inside with file will be created
+ * @param name
+ * name of file
+ * @return nearly created file
+ * @throws IOException
+ */
+ public File createFile(IProject project, String name) throws IOException {
+ String path = project.getLocation().append(name).toOSString();
+ int lastSeparator = path.lastIndexOf(File.separator);
+ FileUtils.mkdirs(new File(path.substring(0, lastSeparator)), true);
+
+ File file = new File(path);
+ if (!file.exists()) {
+ FileUtils.createNewFile(file);
+ }
+
+ return file;
+ }
+
+ public IFile getIFile(IProject project, File file) throws CoreException {
+ String relativePath = getRepoRelativePath(file.getAbsolutePath());
+
+ // In case the project is not at the root of the repository
+ // we need to remove the whole path before the project name.
+ int index = relativePath.indexOf(project.getName());
+ if (index >= 0) {
+ relativePath = relativePath.substring(index + project.getName().length());
+ }
+ IFile iFile = project.getFile(relativePath);
+ iFile.refreshLocal(0, null);
+
+ return iFile;
+ }
+
+ /**
+ * Creates a new branch and immediately checkout it.
+ *
+ * @param refName
+ * starting point for the new branch
+ * @param newRefName
+ * @throws Exception
+ */
+ public void createAndCheckoutBranch(String refName, String newRefName) throws Exception {
+ createBranch(refName, newRefName);
+ checkoutBranch(newRefName);
+ }
+
+ /**
+ * Creates a new branch.
+ *
+ * @param refName
+ * Starting point for the new branch.
+ * @param newRefName
+ * Name of the new branch.
+ */
+ public void createBranch(String refName, String newRefName) throws IOException {
+ RefUpdate updateRef;
+ updateRef = repository.updateRef(newRefName);
+ Ref startRef = repository.exactRef(refName);
+ ObjectId startAt = repository.resolve(refName);
+ String startBranch;
+ if (startRef != null) {
+ startBranch = refName;
+ } else {
+ startBranch = startAt.name();
+ }
+ startBranch = Repository.shortenRefName(startBranch);
+ updateRef.setNewObjectId(startAt);
+ updateRef.setRefLogMessage("branch: Created from " + startBranch, false);
+ updateRef.update();
+ }
+
+ /**
+ * Resets branch.
+ *
+ * @param refName
+ * Full name of the branch.
+ * @param type
+ * Type of the reset.
+ */
+ public void reset(String refName, ResetType type) throws CoreException {
+ new ResetOperation(repository, refName, type).execute(null);
+ }
+
+ /**
+ * Checkouts branch.
+ *
+ * @param refName
+ * Full name of the branch.
+ */
+ public void checkoutBranch(String refName) throws CoreException {
+ new BranchOperation(repository, refName).execute(null);
+ }
+
+ /**
+ * Merge the given ref with the current HEAD, using the default (logical) strategy.
+ *
+ * @param refName
+ * Name of a commit to merge with the current HEAD.
+ */
+ public void mergeLogical(String refName) throws CoreException {
+ new MergeOperation(repository, refName).execute(null);
+ }
+
+ /**
+ * Merge the given ref with the current HEAD, using the default (logical) strategy.
+ *
+ * @param refName
+ * Name of a commit to merge with the current HEAD.
+ */
+ public void mergeLogicalWithNewCommit(String refName) throws CoreException {
+ MergeOperation mergeOperation = new MergeOperation(repository, refName);
+ mergeOperation.setCommit(true);
+ mergeOperation.execute(null);
+ }
+
+ /**
+ * Merge the given ref with the current HEAD, using the textual "recursive" strategy.
+ *
+ * @param refName
+ * Name of a commit to merge with the current HEAD.
+ */
+ public void mergeTextual(String refName) throws CoreException {
+ new MergeOperation(repository, refName, MergeStrategy.RECURSIVE.getName()).execute(null);
+ }
+
+ /**
+ * Rebase the current HEAD on the given ref, using the default (logical) strategy.
+ *
+ * @param refName
+ * Name of a commit to rebase the current HEAD on.
+ */
+ public void rebaseLogical(String refName) throws CoreException, IOException {
+ new RebaseOperation(repository, repository.exactRef(refName)).execute(null);
+ }
+
+ /**
+ * CherryPick the given ref on the current HEAD , using the default (logical) strategy.
+ *
+ * @param refName
+ * Name of a commit to cherry-pick on the current HEAD.
+ */
+ public void cherryPickLogical(String refName) throws CoreException, IOException {
+ RevWalk revWalk = new RevWalk(repository);
+ try {
+ RevCommit commitId = revWalk.parseCommit(repository.exactRef(refName).getObjectId());
+ new CherryPickOperation(repository, commitId).execute(null);
+ } catch (IOException e) {
+ Activator.logError(e.getMessage(), e);
+ } finally {
+ revWalk.close();
+ }
+ }
+
+ /**
+ * Returns the status of this repository's files as would "git status".
+ *
+ * @return
+ * @throws Exception
+ */
+ public Status status() throws Exception {
+ Git git = new Git(repository);
+ try {
+ return git.status().call();
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Adds file to version control
+ *
+ * @param file
+ * @throws IOException
+ * @throws GitAPIException
+ * @throws NoFilepatternException
+ */
+ public void track(File file) throws IOException, NoFilepatternException, GitAPIException {
+ String repoPath = getRepoRelativePath(new Path(file.getPath()).toString());
+ Git git = new Git(repository);
+ try {
+ git.add().addFilepattern(repoPath).call();
+ } finally {
+ git.close();
+ }
+ }
+
+ /**
+ * Return the commit with the given name if any.
+ *
+ * @param revstr
+ * see {@link Repository#resolve(String)}
+ * @return The commit with the given name if any.
+ * @see {@link Repository#resolve(String)}
+ */
+ public RevCommit findCommit(String revstr) throws Exception {
+ RevWalk walk = null;
+ try {
+ walk = new RevWalk(repository);
+ return walk.parseCommit(repository.resolve(revstr));
+ } finally {
+ if (walk != null) {
+ walk.close();
+ }
+ }
+ }
+
+ /**
+ * Dispose of this wrapper along with its underlying repository.
+ */
+ public void dispose() {
+ if (repository != null) {
+ repository.close();
+ repository = null;
+ }
+ for (Runnable disposer : disposers) {
+ disposer.run();
+ }
+ disposers.clear();
+ }
+
+ /**
+ * Creates a subscriber capable of providing synchronization information for the current
+ * {@link #repository}.
+ *
+ * @param sourceRef
+ * Source reference (i.e. "left" side of a comparison).
+ * @param targetRef
+ * Target reference (i.e. "right" side of the comparison).
+ * @param includeLocal
+ * Whether to use local data as the "source" side.
+ * @return The created subscriber.
+ */
+ public Subscriber createSubscriberForResolution(String sourceRef, String targetRef, boolean includeLocal)
+ throws IOException {
+ final GitSynchronizeData data = new GitSynchronizeData(repository, sourceRef, targetRef,
+ includeLocal);
+ final GitSynchronizeDataSet dataSet = new GitSynchronizeDataSet(data);
+ final GitResourceVariantTreeSubscriber subscriber = new GitResourceVariantTreeSubscriber(dataSet);
+ subscriber.init(new NullProgressMonitor());
+ disposers.add(new Runnable() {
+ @Override
+ public void run() {
+ subscriber.dispose();
+ }
+ });
+
+ return subscriber;
+ }
+
+ /**
+ * Simulate a comparison between the two given references and returns back the subscriber that can provide
+ * all computed synchronization information. It will use the local comparison context for retrieving the
+ * resource mappings.
+ *
+ * @param sourceRef
+ * Source reference (i.e. "left" side of the comparison).
+ * @param targetRef
+ * Target reference (i.e. "right" side of the comparison).
+ * @param comparedFile
+ * The file we are comparing (that would be the file right-clicked into the workspace).
+ * @param includeLocal
+ * Whether to use local data as the "source" side.
+ * @return The created subscriber.
+ */
+ public Subscriber createSubscriberForComparison(String sourceRef, String targetRef, IFile comparedFile,
+ boolean includeLocal) throws IOException {
+ final GitSynchronizeData data = new GitSynchronizeData(repository, sourceRef, targetRef,
+ includeLocal);
+ final GitSynchronizeDataSet dataSet = new GitSynchronizeDataSet(data);
+ final GitResourceVariantTreeSubscriber subscriber = new GitResourceVariantTreeSubscriber(dataSet);
+ subscriber.init(new NullProgressMonitor());
+ final ResourceMapping[] mappings = getResourceMappings(comparedFile,
+ ResourceMappingContext.LOCAL_CONTEXT);
+
+ final RemoteResourceMappingContext remoteContext = new GitSubscriberResourceMappingContext(subscriber,
+ dataSet);
+ final SubscriberScopeManager manager = new SubscriberScopeManager(subscriber.getName(), mappings,
+ subscriber, remoteContext, true);
+ final GitSubscriberMergeContext context = new GitSubscriberMergeContext(subscriber, manager, dataSet);
+ disposers.add(new Runnable() {
+ @Override
+ public void run() {
+ manager.dispose();
+ context.dispose();
+ subscriber.dispose();
+ }
+ });
+ return context.getSubscriber();
+ }
+
+ /**
+ * Simulate a comparison between the two given references and returns back the subscriber that can provide
+ * all computed synchronization information. It will use a remote comparison context for retrieving the
+ * resource mappings.
+ *
+ * @param sourceRef
+ * Source reference (i.e. "left" side of the comparison).
+ * @param targetRef
+ * Target reference (i.e. "right" side of the comparison).
+ * @param comparedFile
+ * The file we are comparing (that would be the file right-clicked into the workspace).
+ * @return The created subscriber.
+ */
+ public Subscriber createSubscriberForComparisonWithRemoteMappings(String sourceRef, String targetRef,
+ IFile comparedFile) throws IOException {
+ final GitSynchronizeData data = new GitSynchronizeData(repository, sourceRef, targetRef, false);
+ final GitSynchronizeDataSet dataSet = new GitSynchronizeDataSet(data);
+ final GitResourceVariantTreeSubscriber subscriber = new GitResourceVariantTreeSubscriber(dataSet);
+ subscriber.init(new NullProgressMonitor());
+
+ final RemoteResourceMappingContext remoteContext = new GitSubscriberResourceMappingContext(subscriber,
+ dataSet);
+ final ResourceMapping[] mappings = getResourceMappings(comparedFile, remoteContext);
+ final SubscriberScopeManager manager = new SubscriberScopeManager(subscriber.getName(), mappings,
+ subscriber, remoteContext, true);
+ final GitSubscriberMergeContext context = new GitSubscriberMergeContext(subscriber, manager, dataSet);
+ disposers.add(new Runnable() {
+ @Override
+ public void run() {
+ manager.dispose();
+ context.dispose();
+ subscriber.dispose();
+ }
+ });
+ return context.getSubscriber();
+ }
+
+ public String getRepoRelativePath(File file) {
+ return getRepoRelativePath(new Path(file.getPath()).toString());
+ }
+
+ public String getRepoRelativePath(String path) {
+ final int pfxLen = workdirPrefix.length();
+ final int pLen = path.length();
+ if (pLen > pfxLen) {
+ return path.substring(pfxLen);
+ } else if (path.length() == pfxLen - 1) {
+ return "";
+ }
+ return null;
+ }
+
+ /**
+ * This will query all model providers for those that are enabled on the given file and list all mappings
+ * available for that file.
+ *
+ * @param file
+ * The file for which we need the associated resource mappings.
+ * @param context
+ * The {@link ResourceMappingContext} that will be used for retrieving the mappings.
+ * @return All mappings available for that file.
+ */
+ private static ResourceMapping[] getResourceMappings(IFile file, ResourceMappingContext context) {
+ final IModelProviderDescriptor[] modelDescriptors = ModelProvider.getModelProviderDescriptors();
+
+ final Set<ResourceMapping> mappings = new LinkedHashSet<>();
+ for (IModelProviderDescriptor candidate : modelDescriptors) {
+ try {
+ final IResource[] resources = candidate.getMatchingResources(new IResource[] {file, });
+ if (resources.length > 0) {
+ // get mappings from model provider if there are matching
+ // resources
+ final ModelProvider model = candidate.getModelProvider();
+ final ResourceMapping[] modelMappings = model.getMappings(file, context, null);
+ for (ResourceMapping mapping : modelMappings) {
+ mappings.add(mapping);
+ }
+ }
+ } catch (CoreException e) {
+ Activator.logError(e.getMessage(), e);
+ }
+ }
+ return mappings.toArray(new ResourceMapping[mappings.size()]);
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/MockSystemReader.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/MockSystemReader.java
new file mode 100644
index 00000000..ac0ec7a2
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/fixture/MockSystemReader.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2009, Google Inc.
+ * Copyright (C) 2009, Robin Rosenberg <robin.rosenberg@dewire.com>
+ * Copyright (C) 2009, Yann Simon <yann.simon.fr@gmail.com>
+ * and other copyright owners as documented in the project's IP log.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Distribution License v1.0 which
+ * accompanies this distribution, is reproduced below, and is
+ * available at http://www.eclipse.org/org/documents/edl-v10.php
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * - Neither the name of the Eclipse Foundation, Inc. nor the
+ * names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.eclipse.papyrus.compare.diagram.tests.egit.fixture;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.lib.Config;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.storage.file.FileBasedConfig;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.SystemReader;
+
+/**
+ * Except for this comment, verbatim copy/paste of org.eclipse.jgit.junit.MockSystemReader.
+ */
+@SuppressWarnings("nls")
+public class MockSystemReader extends SystemReader {
+ private final class MockConfig extends FileBasedConfig {
+ private MockConfig(File cfgLocation, FS fs) {
+ super(cfgLocation, fs);
+ }
+
+ @Override
+ public void load() throws IOException, ConfigInvalidException {
+ // Do nothing
+ }
+
+ @Override
+ public boolean isOutdated() {
+ return false;
+ }
+ }
+
+ final Map<String, String> values = new HashMap<String, String>();
+
+ FileBasedConfig userGitConfig;
+
+ FileBasedConfig systemGitConfig;
+
+ public MockSystemReader() {
+ init(Constants.OS_USER_NAME_KEY);
+ init(Constants.GIT_AUTHOR_NAME_KEY);
+ init(Constants.GIT_AUTHOR_EMAIL_KEY);
+ init(Constants.GIT_COMMITTER_NAME_KEY);
+ init(Constants.GIT_COMMITTER_EMAIL_KEY);
+ userGitConfig = new MockConfig(null, null);
+ systemGitConfig = new MockConfig(null, null);
+ setCurrentPlatform();
+ }
+
+ private void init(final String n) {
+ setProperty(n, n);
+ }
+
+ public void clearProperties() {
+ values.clear();
+ }
+
+ public void setProperty(String key, String value) {
+ values.put(key, value);
+ }
+
+ @Override
+ public String getenv(String variable) {
+ return values.get(variable);
+ }
+
+ @Override
+ public String getProperty(String key) {
+ return values.get(key);
+ }
+
+ @Override
+ public FileBasedConfig openUserConfig(Config parent, FS fs) {
+ assert parent == null || parent == systemGitConfig;
+ return userGitConfig;
+ }
+
+ @Override
+ public FileBasedConfig openSystemConfig(Config parent, FS fs) {
+ assert parent == null;
+ return systemGitConfig;
+ }
+
+ @Override
+ public String getHostname() {
+ return "fake.host.example.com";
+ }
+
+ @Override
+ public long getCurrentTime() {
+ return 1250379778668L; // Sat Aug 15 20:12:58 GMT-03:30 2009
+ }
+
+ @Override
+ public int getTimezone(long when) {
+ return getTimeZone().getOffset(when) / (60 * 1000);
+ }
+
+ @Override
+ public TimeZone getTimeZone() {
+ return TimeZone.getTimeZone("GMT-03:30");
+ }
+
+ @Override
+ public Locale getLocale() {
+ return Locale.US;
+ }
+
+ @Override
+ public SimpleDateFormat getSimpleDateFormat(String pattern) {
+ return new SimpleDateFormat(pattern, getLocale());
+ }
+
+ @Override
+ public DateFormat getDateTimeInstance(int dateStyle, int timeStyle) {
+ return DateFormat.getDateTimeInstance(dateStyle, timeStyle, getLocale());
+ }
+
+ /**
+ * Assign some properties for the currently executing platform
+ */
+ public void setCurrentPlatform() {
+ setProperty("os.name", System.getProperty("os.name"));
+ setProperty("file.separator", System.getProperty("file.separator"));
+ setProperty("path.separator", System.getProperty("path.separator"));
+ setProperty("line.separator", System.getProperty("line.separator"));
+ }
+
+ /**
+ * Emulate Windows
+ */
+ public void setWindows() {
+ setProperty("os.name", "Windows");
+ setProperty("file.separator", "\\");
+ setProperty("path.separator", ";");
+ setProperty("line.separator", "\r\n");
+ }
+
+ /**
+ * Emulate Unix
+ */
+ public void setUnix() {
+ setProperty("os.name", "*nix"); // Essentially anything but Windows
+ setProperty("file.separator", "/");
+ setProperty("path.separator", ":");
+ setProperty("line.separator", "\n");
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/mergeresolution/MergeResolutionManagerTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/mergeresolution/MergeResolutionManagerTest.java
new file mode 100644
index 00000000..1aa0cdf0
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/egit/mergeresolution/MergeResolutionManagerTest.java
@@ -0,0 +1,155 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Services Gmbh 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
+ *
+ * Contributors:
+ * Michael Borkowski - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.egit.mergeresolution;
+
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+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.Match;
+import org.eclipse.emf.compare.ide.ui.internal.mergeresolution.MergeResolutionListenerRegistry;
+import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider.TreeNodeCompareInput;
+import org.eclipse.emf.compare.ide.ui.mergeresolution.MergeResolutionManager;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class MergeResolutionManagerTest {
+ MergeResolutionManager sut;
+
+ MergeResolutionListenerRegistry registry;
+
+ @Before
+ public void setUp() {
+ registry = mock(MergeResolutionListenerRegistry.class);
+
+ sut = new MergeResolutionManager(registry);
+ }
+
+ @Test
+ public void testInvalidInput() {
+ sut.handleFlush(null);
+ sut.handleFlush("not a valid input");
+
+ verifyNoMoreInteractions(registry);
+ }
+
+ @Test
+ public void testNoConflicts() {
+ EList<Conflict> conflicts = new BasicEList<>();
+
+ Comparison comparison = mock(Comparison.class);
+ when(comparison.getConflicts()).thenReturn(conflicts);
+
+ sut.handleFlush(pack(comparison));
+ verify(comparison).getConflicts();
+ verifyNoMoreInteractions(registry);
+ }
+
+ @Test
+ public void testOnlyUnresolvedConflicts() {
+ EList<Conflict> conflicts = new BasicEList<>();
+
+ Conflict c1 = mock(Conflict.class);
+ EList<Diff> c1d = new BasicEList<>();
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.UNRESOLVED).getMock());
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.UNRESOLVED).getMock());
+ when(c1.getDifferences()).thenReturn(c1d);
+ conflicts.add(c1);
+
+ Conflict c2 = mock(Conflict.class);
+ EList<Diff> c2d = new BasicEList<>();
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.UNRESOLVED).getMock());
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.UNRESOLVED).getMock());
+ when(c2.getDifferences()).thenReturn(c2d);
+ conflicts.add(c2);
+
+ Comparison comparison = mock(Comparison.class);
+ when(comparison.getConflicts()).thenReturn(conflicts);
+
+ sut.handleFlush(pack(comparison));
+ verify(comparison, atLeastOnce()).getConflicts();
+ verifyNoMoreInteractions(registry);
+ }
+
+ @Test
+ public void testMixedConflicts() {
+ EList<Conflict> conflicts = new BasicEList<>();
+
+ Conflict c1 = mock(Conflict.class);
+ EList<Diff> c1d = new BasicEList<>();
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.UNRESOLVED).getMock());
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.UNRESOLVED).getMock());
+ when(c1.getDifferences()).thenReturn(c1d);
+ conflicts.add(c1);
+
+ Conflict c2 = mock(Conflict.class);
+ EList<Diff> c2d = new BasicEList<>();
+ c2d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.MERGED).getMock());
+ c2d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.DISCARDED).getMock());
+ when(c2.getDifferences()).thenReturn(c2d);
+ conflicts.add(c2);
+
+ Comparison comparison = mock(Comparison.class);
+ when(comparison.getConflicts()).thenReturn(conflicts);
+
+ sut.handleFlush(pack(comparison));
+ verify(comparison, atLeastOnce()).getConflicts();
+ verifyNoMoreInteractions(registry);
+ }
+
+ @Test
+ public void testOnlyResolvedConflicts() {
+ EList<Conflict> conflicts = new BasicEList<>();
+
+ Conflict c1 = mock(Conflict.class);
+ EList<Diff> c1d = new BasicEList<>();
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.DISCARDED).getMock());
+ c1d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.MERGED).getMock());
+ when(c1.getDifferences()).thenReturn(c1d);
+ conflicts.add(c1);
+
+ Conflict c2 = mock(Conflict.class);
+ EList<Diff> c2d = new BasicEList<>();
+ c2d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.MERGED).getMock());
+ c2d.add((Diff)when(mock(Diff.class).getState()).thenReturn(DifferenceState.DISCARDED).getMock());
+ when(c2.getDifferences()).thenReturn(c2d);
+ conflicts.add(c2);
+
+ Comparison comparison = mock(Comparison.class);
+ when(comparison.getConflicts()).thenReturn(conflicts);
+
+ sut.handleFlush(pack(comparison));
+ verify(comparison, atLeastOnce()).getConflicts();
+ verify(registry).mergeResolutionCompleted(comparison);
+ verifyNoMoreInteractions(registry);
+ }
+
+ private Object pack(Comparison comparison) {
+ Match match = mock(Match.class);
+ when(match.getComparison()).thenReturn(comparison).getMock();
+
+ TreeNodeCompareInput treeNodeCompareInput = mock(TreeNodeCompareInput.class);
+ when(treeNodeCompareInput.getComparisonObject()).thenReturn(match);
+
+ return treeNodeCompareInput;
+
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/AdditiveMergeDiagramTests.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/AdditiveMergeDiagramTests.java
new file mode 100644
index 00000000..54b82833
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/AdditiveMergeDiagramTests.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * 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.papyrus.compare.diagram.tests.merge;
+
+import static com.google.common.base.Predicates.or;
+import static com.google.common.collect.Iterables.all;
+import static org.eclipse.emf.compare.ConflictKind.PSEUDO;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.hasDirectOrIndirectConflict;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.isInRealAddAddConflict;
+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(),
+ or(hasDirectOrIndirectConflict(PSEUDO), isInRealAddAddConflict())));
+ }
+
+ @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(),
+ or(hasDirectOrIndirectConflict(PSEUDO), isInRealAddAddConflict())));
+ }
+
+ /**
+ * 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(),
+ or(hasDirectOrIndirectConflict(PSEUDO), isInRealAddAddConflict())));
+ }
+
+ @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(),
+ or(hasDirectOrIndirectConflict(PSEUDO), isInRealAddAddConflict())));
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/AdditiveMergeDiagramInputData.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/AdditiveMergeDiagramInputData.java
new file mode 100644
index 00000000..7bb8a8e2
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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.papyrus.compare.diagram.tests.merge.data.additive;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.compare.diagram.tests.DiagramInputData;
+
+@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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.notation
new file mode 100644
index 00000000..7eee85e3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit1/model.uml
new file mode 100644
index 00000000..57aa2853
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.notation
new file mode 100644
index 00000000..6555892e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit2/model.uml
new file mode 100644
index 00000000..60f42232
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.notation
new file mode 100644
index 00000000..e696ab3d
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/commit3/model.uml
new file mode 100644
index 00000000..8dd6d138
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.notation
new file mode 100644
index 00000000..568242b7
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result1/model.uml
new file mode 100644
index 00000000..4dda8cef
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.notation
new file mode 100644
index 00000000..eee39494
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test1/result2/model.uml
new file mode 100644
index 00000000..5c773990
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.notation
new file mode 100644
index 00000000..01242c95
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit1/model.uml
new file mode 100644
index 00000000..e3c8081f
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.notation
new file mode 100644
index 00000000..db39ee2e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit2/model.uml
new file mode 100644
index 00000000..5aec1319
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.notation
new file mode 100644
index 00000000..ee579e9d
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/commit3/model.uml
new file mode 100644
index 00000000..8f45b5db
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.notation
new file mode 100644
index 00000000..00a2103b
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/conflicts/test2/result/model.uml
new file mode 100644
index 00000000..1b74fd24
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.notation
new file mode 100644
index 00000000..8b6b88dd
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/model.uml
new file mode 100644
index 00000000..f99f6b52
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.notation
new file mode 100644
index 00000000..18addd13
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wave.uml
new file mode 100644
index 00000000..374b0c44
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.notation
new file mode 100644
index 00000000..7023c314
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit1/wired.uml
new file mode 100644
index 00000000..5b8d3bee
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.notation
new file mode 100644
index 00000000..92d644cf
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/model.uml
new file mode 100644
index 00000000..3409e29e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.notation
new file mode 100644
index 00000000..a9a11786
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit2/wave.uml
new file mode 100644
index 00000000..be434301
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.notation
new file mode 100644
index 00000000..893793a5
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/model.uml
new file mode 100644
index 00000000..900a7245
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.notation
new file mode 100644
index 00000000..fb808ff6
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/commit3/wired.uml
new file mode 100644
index 00000000..7ff6204a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.notation
new file mode 100644
index 00000000..5e24c503
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/model.uml
new file mode 100644
index 00000000..e9779ef9
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.notation
new file mode 100644
index 00000000..a9a11786
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wave.uml
new file mode 100644
index 00000000..be434301
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.di
new file mode 100644
index 00000000..8cb3993b
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.notation
new file mode 100644
index 00000000..fb808ff6
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/control/result/wired.uml
new file mode 100644
index 00000000..7ff6204a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.notation
new file mode 100644
index 00000000..8fdf6fe4
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit1/model.uml
new file mode 100644
index 00000000..b97b3d88
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.notation
new file mode 100644
index 00000000..8ef4ba74
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit2/model.uml
new file mode 100644
index 00000000..b55d69c6
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.notation
new file mode 100644
index 00000000..6b097a02
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/commit3/model.uml
new file mode 100644
index 00000000..db15100e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.notation
new file mode 100644
index 00000000..6939e52a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/noConflicts/result/model.uml
new file mode 100644
index 00000000..2742f0a2
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/rac.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/rac.zip
new file mode 100644
index 00000000..3881a28f
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/rac.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/solvable.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/solvable.zip
new file mode 100644
index 00000000..72ce82dd
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/solvable.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/unsolvable.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/unsolvable.zip
new file mode 100644
index 00000000..efb93af5
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/merge/data/additive/unsolvable.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java
new file mode 100644
index 00000000..a44f551a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/AttachmentChangeImplicationTest.java
@@ -0,0 +1,233 @@
+/*******************************************************************************
+ * 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.papyrus.compare.diagram.tests.resourceattachmentchange.implication;
+
+import static com.google.common.base.Predicates.instanceOf;
+import static com.google.common.collect.Iterables.filter;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+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.ide.ui.tests.workspace.TestProject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.compare.diagram.tests.AbstractGitTestCase;
+import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationModel;
+import org.eclipse.papyrus.uml.tools.model.UmlModel;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.google.common.collect.Iterables;
+
+@SuppressWarnings({"nls", "unused" })
+public class AttachmentChangeImplicationTest extends AbstractGitTestCase {
+
+ /**
+ * Path to the test data.
+ */
+ private static String TEST_DATA_PATH = "src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/";
+
+ /** UML files extension. */
+ private static final String UML_EXTENSION = '.' + UmlModel.UML_FILE_EXTENSION;
+
+ /** UML files extension. */
+ private static final String NOTATION_EXTENSION = '.' + NotationModel.NOTATION_FILE_EXTENSION;
+
+ private ResourceSetImpl resourceSet;
+
+ private IProject iProject;
+
+ private TestProject testProject1;
+
+ private IFile modelDi;
+
+ private IFile modelNotation;
+
+ private IFile modelUml;
+
+ private IFile fragmentDi;
+
+ private IFile fragmentNotation;
+
+ private IFile fragmentUml;
+
+ private void setupTestControlledPackagedWithDiagram() throws Exception {
+ resourceSet = new ResourceSetImpl();
+ File workingDirectory = repository.getRepository().getWorkTree();
+ testProject1 = new TestProject("Project1", workingDirectory.getAbsolutePath());
+ iProject = testProject1.getProject();
+ repository.connect(iProject);
+
+ // 1st commit: a model with 2 packages.
+ // 1 class diagram associated to the model, and 1 class diagram associated to the 2nd package.
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit1/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit1/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit1/model.uml", "");
+
+ repository.addAllAndCommit("1st-commit");
+ repository.createBranch(MASTER, BRANCH_1);
+ repository.checkoutBranch(BRANCH_1);
+
+ // 2nd commit: the 2nd package is fragmented.
+ // The class diagram associated is moved in a new resource (notation model).
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit2/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit2/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit2/model.uml", "");
+ fragmentDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit2/fragment.di", "");
+ fragmentNotation = addToProject(TEST_DATA_PATH, testProject1, iProject,
+ "case001/commit2/fragment.notation", "");
+ fragmentUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case001/commit2/fragment.uml",
+ "");
+ repository.addAllAndCommit("2nd-commit");
+
+ repository.checkoutBranch(MASTER);
+ }
+
+ private void setupTestControlledPackagedWithoutDiagram() throws Exception {
+ resourceSet = new ResourceSetImpl();
+ File workingDirectory = repository.getRepository().getWorkTree();
+ testProject1 = new TestProject("Project1", workingDirectory.getAbsolutePath());
+ iProject = testProject1.getProject();
+ repository.connect(iProject);
+
+ // 1st commit: a model with 2 packages.
+ // 1 class diagram associated to the model, and 1 class diagram associated to the 2nd package.
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit1/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit1/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit1/model.uml", "");
+
+ repository.addAllAndCommit("1st-commit");
+ repository.createBranch(MASTER, BRANCH_1);
+ repository.checkoutBranch(BRANCH_1);
+
+ // 2nd commit: the 2nd package is fragmented.
+ // The class diagram associated is moved in a new resource (notation model).
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/model.uml", "");
+ fragmentDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/fragment.di", "");
+ fragmentNotation = addToProject(TEST_DATA_PATH, testProject1, iProject,
+ "case002/commit2/fragment.notation", "");
+ fragmentUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/fragment.uml",
+ "");
+ repository.addAllAndCommit("2nd-commit");
+
+ repository.checkoutBranch(MASTER);
+ }
+
+ @Test
+ @Ignore("This test is now wrong, no such requirement should exist")
+ public void testControlledPackagedWithDiagram() throws Exception {
+ setupTestControlledPackagedWithDiagram();
+
+ Comparison comparison = compare(MASTER, BRANCH_1, modelNotation);
+ EList<Diff> differences = comparison.getDifferences();
+
+ ResourceAttachmentChange umlChange = null;
+ ResourceAttachmentChange notationChange = null;
+ ResourceAttachmentChange diChange = null;
+
+ for (Diff diff : Iterables.filter(differences, ResourceAttachmentChange.class)) {
+ ResourceAttachmentChange change = (ResourceAttachmentChange)diff;
+ if (change.getResourceURI().endsWith(UML_EXTENSION)) {
+ umlChange = change;
+ } else if (change.getResourceURI().endsWith(NOTATION_EXTENSION)) {
+ notationChange = change;
+ } else {
+ diChange = change;
+ }
+ }
+
+ assertNotNull(umlChange);
+ assertNotNull(notationChange);
+ assertNotNull(diChange);
+
+ assertEquals(1, notationChange.getRequires().size());
+ assertEquals(1, notationChange.getRequiredBy().size());
+ assertEquals(2, umlChange.getRequires().size());
+ assertEquals(2, umlChange.getRequiredBy().size());
+ assertEquals(1, diChange.getRequires().size());
+ assertEquals(2, diChange.getRequiredBy().size());
+
+ assertTrue(umlChange.getRequires().contains(notationChange));
+ assertTrue(umlChange.getRequiredBy().contains(notationChange));
+ assertTrue(notationChange.getRequires().contains(umlChange));
+ assertTrue(diChange.getRequires().contains(umlChange));
+ assertTrue(notationChange.getRequiredBy().contains(umlChange));
+ assertTrue(diChange.getRequiredBy().contains(umlChange));
+ assertTrue(umlChange.getRequires().contains(diChange));
+ assertTrue(umlChange.getRequiredBy().contains(diChange));
+
+ }
+
+ @Test
+ @Ignore("This test is now wrong, no such requirement should exist")
+ public void testControlledPackagedWithoutDiagram() throws Exception {
+ setupTestControlledPackagedWithoutDiagram();
+
+ Comparison comparison = compare(MASTER, BRANCH_1, modelNotation);
+ EList<Diff> differences = comparison.getDifferences();
+
+ ResourceAttachmentChange umlChange = null;
+ ResourceAttachmentChange notationChange = null;
+ ResourceAttachmentChange diChange = null;
+
+ for (Diff diff : Iterables.filter(differences, ResourceAttachmentChange.class)) {
+ ResourceAttachmentChange change = (ResourceAttachmentChange)diff;
+ if (change.getResourceURI().endsWith(UML_EXTENSION)) {
+ umlChange = change;
+ } else if (change.getResourceURI().endsWith(NOTATION_EXTENSION)) {
+ notationChange = change;
+ } else {
+ diChange = change;
+ }
+ }
+
+ assertNotNull(umlChange);
+ assertNotNull(notationChange);
+ assertNotNull(diChange);
+
+ assertEquals(2, umlChange.getRequires().size());
+ assertEquals(2, umlChange.getRequiredBy().size());
+ assertEquals(1, notationChange.getRequires().size());
+ Iterable<Diff> requiredForSecondChange = filter(notationChange.getRequiredBy(),
+ instanceOf(ResourceAttachmentChange.class));
+ assertEquals(1, Iterables.size(requiredForSecondChange));
+ assertEquals(1, diChange.getRequires().size());
+ assertEquals(2, diChange.getRequiredBy().size());
+
+ Iterator<Diff> requiredForSecondChangeIterator = requiredForSecondChange.iterator();
+ ResourceAttachmentChange firstRequirement = (ResourceAttachmentChange)requiredForSecondChangeIterator
+ .next();
+
+ assertTrue(notationChange.getRequires().contains(umlChange));
+ assertTrue(diChange.getRequires().contains(umlChange));
+ assertEquals(umlChange, firstRequirement);
+ assertTrue(diChange.getRequiredBy().contains(umlChange));
+ assertTrue(umlChange.getRequires().contains(notationChange));
+ assertTrue(umlChange.getRequiredBy().contains(notationChange));
+ assertTrue(umlChange.getRequires().contains(diChange));
+ assertTrue(umlChange.getRequiredBy().contains(diChange));
+ }
+
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.notation
new file mode 100644
index 00000000..151b8a9d
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.notation
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" 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="_IKCLgGw_EeWo6frE3Wz5hA" type="PapyrusUMLClassDiagram" name="NewUMLPackageDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IfO_cGw_EeWo6frE3Wz5hA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgGw_EeWo6frE3Wz5hA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgWw_EeWo6frE3Wz5hA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_Js5scGw_EeWo6frE3Wz5hA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgGw_EeWo6frE3Wz5hA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgWw_EeWo6frE3Wz5hA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_N4F6gGw_EeWo6frE3Wz5hA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N4F6gmw_EeWo6frE3Wz5hA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhkGw_EeWo6frE3Wz5hA" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4GhkWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghkmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4Ghk2w_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhlGw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhlWw_EeWo6frE3Wz5hA" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghlmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghl2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhmGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhmWw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4Ghmmw_EeWo6frE3Wz5hA" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghm2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4GhnGw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhnWw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4Ghnmw_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4F6gWw_EeWo6frE3Wz5hA" x="218" y="61"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Js6Tgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js6Tg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js5scWw_EeWo6frE3Wz5hA" x="44" y="22" width="464" height="221"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IfPmgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfPmg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_IfOYYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfO_cWw_EeWo6frE3Wz5hA" x="32" y="54" width="607" height="312"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IKCLgWw_EeWo6frE3Wz5hA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IKCLgmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_IKCLg2w_EeWo6frE3Wz5hA">
+ <owner xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_MJ7IgGw_EeWo6frE3Wz5hA" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Mht9cGw_EeWo6frE3Wz5hA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mht9cmw_EeWo6frE3Wz5hA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mht9c2w_EeWo6frE3Wz5hA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mht9dGw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mht9dWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mht9dmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9d2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mht9eGw_EeWo6frE3Wz5hA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mht9eWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mht9emw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mht9e2w_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9fGw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mht9fWw_EeWo6frE3Wz5hA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mht9fmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mht9f2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mht9gGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9gWw_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9cWw_EeWo6frE3Wz5hA" x="393" y="96"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_MJ7IgWw_EeWo6frE3Wz5hA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_MJ7Igmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_MJ7Ig2w_EeWo6frE3Wz5hA">
+ <owner xmi:type="uml:Package" href="model.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit1/model.uml
new file mode 100644
index 00000000..2ae983a3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/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="_DUW2AGw_EeWo6frE3Wz5hA" name="model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_IfOYYGw_EeWo6frE3Wz5hA" name="Package1">
+ <packagedElement xmi:type="uml:Package" xmi:id="_Js5FYGw_EeWo6frE3Wz5hA" name="Package2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MhsIQGw_EeWo6frE3Wz5hA" name="Class1"/>
+ </packagedElement>
+ </packagedElement>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.di
new file mode 100644
index 00000000..cac98202
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.di
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder"/>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.notation
new file mode 100644
index 00000000..98fffc80
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.notation
@@ -0,0 +1,32 @@
+<?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="_MJ7IgGw_EeWo6frE3Wz5hA" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Mht9cGw_EeWo6frE3Wz5hA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mht9cmw_EeWo6frE3Wz5hA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mht9c2w_EeWo6frE3Wz5hA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mht9dGw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mht9dWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mht9dmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9d2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mht9eGw_EeWo6frE3Wz5hA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mht9eWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mht9emw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mht9e2w_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9fGw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mht9fWw_EeWo6frE3Wz5hA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mht9fmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mht9f2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mht9gGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9gWw_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fragment.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mht9cWw_EeWo6frE3Wz5hA" x="393" y="96"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_MJ7IgWw_EeWo6frE3Wz5hA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_MJ7Igmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_MJ7Ig2w_EeWo6frE3Wz5hA">
+ <owner xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ </styles>
+ <element xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.uml
new file mode 100644
index 00000000..e8a873b2
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/fragment.uml
@@ -0,0 +1,4 @@
+<?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="_Js5FYGw_EeWo6frE3Wz5hA" name="Package2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MhsIQGw_EeWo6frE3Wz5hA" name="Class1"/>
+</uml:Package>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.notation
new file mode 100644
index 00000000..f4bfe748
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.notation
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" 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="_IKCLgGw_EeWo6frE3Wz5hA" type="PapyrusUMLClassDiagram" name="NewUMLPackageDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IfO_cGw_EeWo6frE3Wz5hA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgGw_EeWo6frE3Wz5hA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgWw_EeWo6frE3Wz5hA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_Js5scGw_EeWo6frE3Wz5hA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgGw_EeWo6frE3Wz5hA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgWw_EeWo6frE3Wz5hA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_N4F6gGw_EeWo6frE3Wz5hA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N4F6gmw_EeWo6frE3Wz5hA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhkGw_EeWo6frE3Wz5hA" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4GhkWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghkmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4Ghk2w_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhlGw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhlWw_EeWo6frE3Wz5hA" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghlmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghl2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhmGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhmWw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4Ghmmw_EeWo6frE3Wz5hA" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghm2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4GhnGw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhnWw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4Ghnmw_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fragment.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4F6gWw_EeWo6frE3Wz5hA" x="218" y="61"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Js6Tgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js6Tg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js5scWw_EeWo6frE3Wz5hA" x="44" y="22" width="464" height="221"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IfPmgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfPmg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_IfOYYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfO_cWw_EeWo6frE3Wz5hA" x="32" y="54" width="607" height="312"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IKCLgWw_EeWo6frE3Wz5hA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IKCLgmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_IKCLg2w_EeWo6frE3Wz5hA">
+ <owner xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/commit2/model.uml
new file mode 100644
index 00000000..b78764b1
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case001/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="_DUW2AGw_EeWo6frE3Wz5hA" name="model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_IfOYYGw_EeWo6frE3Wz5hA" name="Package1">
+ <packagedElement xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ </packagedElement>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.notation
new file mode 100644
index 00000000..986b2dde
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.notation
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" 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="_IKCLgGw_EeWo6frE3Wz5hA" type="PapyrusUMLClassDiagram" name="NewUMLPackageDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IfO_cGw_EeWo6frE3Wz5hA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgGw_EeWo6frE3Wz5hA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgWw_EeWo6frE3Wz5hA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_Js5scGw_EeWo6frE3Wz5hA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgGw_EeWo6frE3Wz5hA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgWw_EeWo6frE3Wz5hA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_N4F6gGw_EeWo6frE3Wz5hA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N4F6gmw_EeWo6frE3Wz5hA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhkGw_EeWo6frE3Wz5hA" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4GhkWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghkmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4Ghk2w_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhlGw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhlWw_EeWo6frE3Wz5hA" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghlmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghl2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhmGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhmWw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4Ghmmw_EeWo6frE3Wz5hA" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghm2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4GhnGw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhnWw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4Ghnmw_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4F6gWw_EeWo6frE3Wz5hA" x="218" y="61"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Js6Tgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js6Tg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js5scWw_EeWo6frE3Wz5hA" x="44" y="22" width="464" height="221"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IfPmgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfPmg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_IfOYYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfO_cWw_EeWo6frE3Wz5hA" x="32" y="54" width="607" height="312"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IKCLgWw_EeWo6frE3Wz5hA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IKCLgmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_IKCLg2w_EeWo6frE3Wz5hA">
+ <owner xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="__0rPYGzIEeW9I5ERRxHRag"/>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit1/model.uml
new file mode 100644
index 00000000..2ae983a3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/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="_DUW2AGw_EeWo6frE3Wz5hA" name="model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_IfOYYGw_EeWo6frE3Wz5hA" name="Package1">
+ <packagedElement xmi:type="uml:Package" xmi:id="_Js5FYGw_EeWo6frE3Wz5hA" name="Package2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MhsIQGw_EeWo6frE3Wz5hA" name="Class1"/>
+ </packagedElement>
+ </packagedElement>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.di
new file mode 100644
index 00000000..244a8541
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.di
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="fragment.notation#_Ov7twGzJEeW9I5ERRxHRag"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.notation
new file mode 100644
index 00000000..efbf0cff
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.notation
@@ -0,0 +1,32 @@
+<?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="_Ov7twGzJEeW9I5ERRxHRag" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_PkCEMGzJEeW9I5ERRxHRag" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PkEgcGzJEeW9I5ERRxHRag" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PkFHgGzJEeW9I5ERRxHRag" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PkFHgWzJEeW9I5ERRxHRag"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PkFHgmzJEeW9I5ERRxHRag"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PkFHg2zJEeW9I5ERRxHRag"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PkFHhGzJEeW9I5ERRxHRag"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PkFHhWzJEeW9I5ERRxHRag" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PkFHhmzJEeW9I5ERRxHRag"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PkFHh2zJEeW9I5ERRxHRag"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PkFHiGzJEeW9I5ERRxHRag"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PkFHiWzJEeW9I5ERRxHRag"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PkFHimzJEeW9I5ERRxHRag" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PkFHi2zJEeW9I5ERRxHRag"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PkFHjGzJEeW9I5ERRxHRag"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PkFHjWzJEeW9I5ERRxHRag"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PkFHjmzJEeW9I5ERRxHRag"/>
+ </children>
+ <element xmi:type="uml:Class" href="fragment.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PkCEMWzJEeW9I5ERRxHRag" x="277" y="135"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Ov7twWzJEeW9I5ERRxHRag" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Ov7twmzJEeW9I5ERRxHRag"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Ov7tw2zJEeW9I5ERRxHRag">
+ <owner xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ </styles>
+ <element xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.uml
new file mode 100644
index 00000000..e8a873b2
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/fragment.uml
@@ -0,0 +1,4 @@
+<?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="_Js5FYGw_EeWo6frE3Wz5hA" name="Package2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MhsIQGw_EeWo6frE3Wz5hA" name="Class1"/>
+</uml:Package>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.notation
new file mode 100644
index 00000000..00989507
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.notation
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" 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="_IKCLgGw_EeWo6frE3Wz5hA" type="PapyrusUMLClassDiagram" name="NewUMLPackageDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IfO_cGw_EeWo6frE3Wz5hA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgGw_EeWo6frE3Wz5hA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IfPmgWw_EeWo6frE3Wz5hA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_Js5scGw_EeWo6frE3Wz5hA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgGw_EeWo6frE3Wz5hA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Js6TgWw_EeWo6frE3Wz5hA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_N4F6gGw_EeWo6frE3Wz5hA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_N4F6gmw_EeWo6frE3Wz5hA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhkGw_EeWo6frE3Wz5hA" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4GhkWw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghkmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4Ghk2w_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhlGw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4GhlWw_EeWo6frE3Wz5hA" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghlmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4Ghl2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhmGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4GhmWw_EeWo6frE3Wz5hA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_N4Ghmmw_EeWo6frE3Wz5hA" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_N4Ghm2w_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N4GhnGw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N4GhnWw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4Ghnmw_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Class" href="fragment.uml#_MhsIQGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N4F6gWw_EeWo6frE3Wz5hA" x="218" y="61"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Js6Tgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js6Tg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Js5scWw_EeWo6frE3Wz5hA" x="44" y="22" width="464" height="221"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IfPmgmw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfPmg2w_EeWo6frE3Wz5hA"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_IfOYYGw_EeWo6frE3Wz5hA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IfO_cWw_EeWo6frE3Wz5hA" x="32" y="54" width="607" height="312"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IKCLgWw_EeWo6frE3Wz5hA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IKCLgmw_EeWo6frE3Wz5hA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_IKCLg2w_EeWo6frE3Wz5hA">
+ <owner xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_DUW2AGw_EeWo6frE3Wz5hA"/>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="__0rPYGzIEeW9I5ERRxHRag"/>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/commit2/model.uml
new file mode 100644
index 00000000..b78764b1
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/implication/data/case002/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="_DUW2AGw_EeWo6frE3Wz5hA" name="model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_IfOYYGw_EeWo6frE3Wz5hA" name="Package1">
+ <packagedElement xmi:type="uml:Package" href="fragment.uml#_Js5FYGw_EeWo6frE3Wz5hA"/>
+ </packagedElement>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java
new file mode 100644
index 00000000..60c1bb20
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveConflictTests.java
@@ -0,0 +1,487 @@
+/*******************************************************************************
+ * Copyright (C) 2015, 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
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ * Philip Langer - bug 501864
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.move;
+
+import static com.google.common.base.Predicates.and;
+import static com.google.common.base.Predicates.instanceOf;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.size;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.ofKind;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Conflict;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.DifferenceKind;
+import org.eclipse.emf.compare.ResourceAttachmentChange;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.eclipse.papyrus.compare.diagram.tests.AbstractGitTestCase;
+import org.junit.Test;
+
+/**
+ * Tests for ResourceAttachmentChange with MOVE kind.
+ *
+ * @author <a href="mailto:axel.richard@obeo.fr">Axel Richard</a>
+ */
+@SuppressWarnings({"nls", "unused" })
+public class ResourceAttachmentChangeMoveConflictTests extends AbstractGitTestCase {
+
+ /**
+ * Path to the test data.
+ */
+ private static String TEST_DATA_PATH = "src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/";
+
+ private ResourceSetImpl resourceSet;
+
+ private IProject iProject;
+
+ private TestProject testProject1;
+
+ private IFile modelDi;
+
+ private IFile modelNotation;
+
+ private IFile modelUml;
+
+ private IFile fragmentDi;
+
+ private IFile fragmentNotation;
+
+ private IFile fragmentUml;
+
+ /**
+ * BRANCH_3 checkouted (the deletion). Comparison with BRANCH_2 (the move). Comparison: Conflicts, with 1
+ * concerning a {@link ResourceAttachmentChange} DELETE with 1 {@link ResourceAttachmentChange} MOVE.
+ */
+ @Test
+ public void testComparisonMoveRemoteDeleteLocal() throws Exception {
+ setUpRepositoryCase002();
+
+ // Check comparison model : conflicts and 1 RAC Move
+ repository.checkoutBranch(BRANCH_3);
+ Comparison comparison = compare(BRANCH_3, BRANCH_2, modelNotation);
+ assertEquals(2, comparison.getConflicts().size());
+ assertEquals(1, size(filter(comparison.getDifferences(),
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+ // There is a conflict between the move in 2nd commit & the deletion in 3rd commit
+ Conflict conflict = comparison.getConflicts().get(1);
+ EList<Diff> differences = conflict.getDifferences();
+ assertEquals(2, differences.size());
+ assertEquals(1, size(filter(differences,
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.DELETE)))));
+ assertEquals(1, size(filter(differences,
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Comparison with BRANCH_3 (the deletion). Comparison: Conflicts, with 1
+ * concerning a {@link ResourceAttachmentChange} DELETE with 1 {@link ResourceAttachmentChange} MOVE.
+ */
+ @Test
+ public void testComparisonMoveLocalDeleteRemote() throws Exception {
+ setUpRepositoryCase002();
+
+ // Check comparison model : conflicts and 1 RAC Move
+ repository.checkoutBranch(BRANCH_2);
+ Comparison comparison = compare(BRANCH_2, BRANCH_3, modelNotation);
+ assertEquals(2, comparison.getConflicts().size());
+ assertEquals(1, size(filter(comparison.getDifferences(),
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+ // There is a conflict between the move in 2nd commit & the deletion in 3rd commit
+ Conflict conflict = comparison.getConflicts().get(1);
+ EList<Diff> differences = conflict.getDifferences();
+ assertEquals(2, differences.size());
+ assertEquals(1, size(filter(differences,
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.DELETE)))));
+ assertEquals(1, size(filter(differences,
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the deletion). Comparison with BRANCH_2 (the move). Merge: Conflicts.
+ */
+ @Test
+ public void testMergeMoveRemoteDeleteLocal() throws Exception {
+ setUpRepositoryCase002();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_3, ResetType.HARD);
+ repository.mergeLogicalWithNewCommit(BRANCH_2);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Comparison with BRANCH_3 (the deletion). Merge: Conflicts.
+ */
+ @Test
+ public void testMergeMoveLocalDeleteRemote() throws Exception {
+ setUpRepositoryCase002();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_2, ResetType.HARD);
+ repository.mergeLogicalWithNewCommit(BRANCH_3);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the deletion). Comparison with BRANCH_2 (the move). Rebase: Conflicts.
+ */
+ @Test
+ public void testRebaseMoveRemoteDeleteLocal() throws Exception {
+ setUpRepositoryCase002();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_3, ResetType.HARD);
+ repository.rebaseLogical(BRANCH_2);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Comparison with BRANCH_3 (the deletion). Rebase: Conflicts.
+ */
+ @Test
+ public void testRebaseMoveLocalDeleteRemote() throws Exception {
+ setUpRepositoryCase002();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_2, ResetType.HARD);
+ repository.rebaseLogical(BRANCH_3);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the deletion). Comparison with BRANCH_2 (the move). Merge: Conflicts.
+ */
+ @Test
+ public void testCherryPickMoveRemoteDeleteLocal() throws Exception {
+ setUpRepositoryCase002();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_3, ResetType.HARD);
+ repository.cherryPickLogical(BRANCH_2);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Comparison with BRANCH_3 (the deletion). Merge: Conflicts.
+ */
+ @Test
+ public void testCherryPickMoveLocalDeleteRemote() throws Exception {
+ setUpRepositoryCase002();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_2, ResetType.HARD);
+ repository.cherryPickLogical(BRANCH_3);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the second move). Comparison with BRANCH_2 (the first move). Comparison:
+ * Conflicts, with 2 {@link ResourceAttachmentChange} MOVE.
+ */
+ @Test
+ public void testComparisonMoveRemoteMoveLocal() throws Exception {
+ setUpRepositoryCase003();
+
+ // Check comparison model : conflicts and 2 RAC Move
+ repository.checkoutBranch(BRANCH_3);
+ Comparison comparison = compare(BRANCH_3, BRANCH_2, modelNotation);
+ assertEquals(2, comparison.getConflicts().size());
+ assertEquals(2, size(filter(comparison.getDifferences(),
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+ // There is a conflict between the move in 2nd commit & the move in 3rd commit
+ Conflict conflict = comparison.getConflicts().get(1);
+ EList<Diff> differences = conflict.getDifferences();
+ assertEquals(2, differences.size());
+ assertEquals(2, size(filter(differences,
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the first move). Comparison with BRANCH_3 (the second move). Comparison:
+ * Conflicts, with 2 {@link ResourceAttachmentChange} MOVE.
+ */
+ @Test
+ public void testComparisonMoveLocalMoveRemote() throws Exception {
+ setUpRepositoryCase003();
+
+ // Check comparison model : conflicts and 2 RAC Move
+ repository.checkoutBranch(BRANCH_2);
+ Comparison comparison = compare(BRANCH_2, BRANCH_3, modelNotation);
+ assertEquals(2, comparison.getConflicts().size());
+ assertEquals(2, size(filter(comparison.getDifferences(),
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+ // There is a conflict between the move in 2nd commit & the move in 3rd commit
+ Conflict conflict = comparison.getConflicts().get(1);
+ EList<Diff> differences = conflict.getDifferences();
+ assertEquals(2, differences.size());
+ assertEquals(2, size(filter(differences,
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the second move). Comparison with BRANCH_2 (the first move). Merge: Conflicts.
+ */
+ @Test
+ public void testMergeMoveRemoteMoveLocal() throws Exception {
+ setUpRepositoryCase003();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_3, ResetType.HARD);
+ repository.mergeLogicalWithNewCommit(BRANCH_2);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the first move). Comparison with BRANCH_3 (the second move). Merge: Conflicts.
+ */
+ @Test
+ public void testMergeMoveLocalMoveRemote() throws Exception {
+ setUpRepositoryCase003();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_2, ResetType.HARD);
+ repository.mergeLogicalWithNewCommit(BRANCH_3);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the second move). Comparison with BRANCH_2 (the first move). Rebase: Conflicts.
+ */
+ @Test
+ public void testRebaseMoveRemoteMoveLocal() throws Exception {
+ setUpRepositoryCase003();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_3, ResetType.HARD);
+ repository.rebaseLogical(BRANCH_2);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the first move). Comparison with BRANCH_3 (the second move). Rebase: Conflicts.
+ */
+ @Test
+ public void testRebaseMoveLocalMoveRemote() throws Exception {
+ setUpRepositoryCase003();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_2, ResetType.HARD);
+ repository.rebaseLogical(BRANCH_3);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_3 checkouted (the second move). Comparison with BRANCH_2 (the first move). CherryPick:
+ * Conflicts.
+ */
+ @Test
+ public void testCherryPickMoveRemoteMoveLocal() throws Exception {
+ setUpRepositoryCase003();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_3, ResetType.HARD);
+ repository.cherryPickLogical(BRANCH_2);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * BRANCH_2 checkouted (the first move). Comparison with BRANCH_3 (the second move). CherryPick:
+ * Conflicts.
+ */
+ @Test
+ public void testCherryPickMoveLocalMoveRemote() throws Exception {
+ setUpRepositoryCase003();
+
+ repository.checkoutBranch(MASTER);
+ repository.reset(BRANCH_2, ResetType.HARD);
+ repository.cherryPickLogical(BRANCH_3);
+
+ // Conflicts
+ assertFalse(repository.status().getConflicting().isEmpty());
+
+ testProject1.dispose();
+ }
+
+ /**
+ * Case 002. 3 commits. 1st commit: a model with 2 packages. 1 class diagram associated to the model, and
+ * 1 class diagram associated to the 2nd package. 2nd commit: the 2nd package is fragmented. The class
+ * diagram associated is moved in a new resource (notation model). 3rd commit: reset to the 1st commit.
+ * Remove the 2nd package. Also remove it from the diagram.
+ */
+ private void setUpRepositoryCase002() throws Exception {
+ resourceSet = new ResourceSetImpl();
+ File workingDirectory = repository.getRepository().getWorkTree();
+ testProject1 = new TestProject("Project1", workingDirectory.getAbsolutePath());
+ iProject = testProject1.getProject();
+ repository.connect(iProject);
+
+ // 1st commit: a model with 2 packages.
+ // 1 class diagram associated to the model, and 1 class diagram associated to the 2nd package.
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit1/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit1/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit1/model.uml", "");
+
+ repository.addAllAndCommit("1st-commit");
+ repository.createBranch(MASTER, BRANCH_1);
+
+ // 2nd commit: the 2nd package is fragmented.
+ // The class diagram associated is moved in a new resource (notation model).
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/model.uml", "");
+ fragmentDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/fragment.di", "");
+ fragmentNotation = addToProject(TEST_DATA_PATH, testProject1, iProject,
+ "case002/commit2/fragment.notation", "");
+ fragmentUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit2/fragment.uml",
+ "");
+ repository.addAllAndCommit("2nd-commit");
+ repository.createBranch(MASTER, BRANCH_2);
+
+ // Back to 1st commit
+ repository.reset(BRANCH_1, ResetType.HARD);
+
+ // 3rd commit: reset to the 1st commit.
+ // Remove the 2nd package. Also remove it from the diagram.
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit3/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit3/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case002/commit3/model.uml", "");
+ repository.addAllAndCommit("3rd-commit");
+ repository.createBranch(MASTER, BRANCH_3);
+
+ repository.checkoutBranch(MASTER);
+ }
+
+ /**
+ * Case 003. 3 commits. 1st commit: a model with 2 packages. 1 class diagram associated to the model, and
+ * 1 class diagram associated to the 2nd package. 2nd commit: the 2nd package is fragmented. The class
+ * diagram associated is moved in a new resource X (notation model). 3rd commit: reset to the 1st commit.
+ * The 2nd package is fragmented. The class diagram associated is moved in a new resource Y (notation
+ * model).
+ */
+ private void setUpRepositoryCase003() throws Exception {
+ resourceSet = new ResourceSetImpl();
+ File workingDirectory = repository.getRepository().getWorkTree();
+ testProject1 = new TestProject("Project1", workingDirectory.getAbsolutePath());
+ iProject = testProject1.getProject();
+ repository.connect(iProject);
+
+ // 1st commit: a model with 2 packages.
+ // 1 class diagram associated to the model, and 1 class diagram associated to the 2nd package.
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit1/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit1/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit1/model.uml", "");
+
+ repository.addAllAndCommit("1st-commit");
+ repository.createBranch(MASTER, BRANCH_1);
+
+ // 2nd commit: the 2nd package is fragmented.
+ // The class diagram associated is moved in a new resource X (notation model).
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit2/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit2/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit2/model.uml", "");
+ fragmentDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit2/fragment.di", "");
+ fragmentNotation = addToProject(TEST_DATA_PATH, testProject1, iProject,
+ "case003/commit2/fragment.notation", "");
+ fragmentUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit2/fragment.uml",
+ "");
+ repository.addAllAndCommit("2nd-commit");
+ repository.createBranch(MASTER, BRANCH_2);
+
+ // Back to 1st commit
+ repository.reset(BRANCH_1, ResetType.HARD);
+
+ // 3rd commit: the 2nd package is fragmented.
+ // The class diagram associated is moved in a new resource Y (notation model).
+ modelDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit3/model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit3/model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit3/model.uml", "");
+ IFile controlDi = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit3/control.di",
+ "");
+ IFile controlNotation = addToProject(TEST_DATA_PATH, testProject1, iProject,
+ "case003/commit3/control.notation", "");
+ IFile controlUml = addToProject(TEST_DATA_PATH, testProject1, iProject, "case003/commit3/control.uml",
+ "");
+ repository.addAllAndCommit("3rd-commit");
+ repository.createBranch(MASTER, BRANCH_3);
+
+ repository.checkoutBranch(MASTER);
+ }
+
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveNoConflictTests.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveNoConflictTests.java
new file mode 100644
index 00000000..d21c2e09
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveNoConflictTests.java
@@ -0,0 +1,214 @@
+/*******************************************************************************
+ * Copyright (C) 2015 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
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.move;
+
+import static com.google.common.base.Predicates.and;
+import static com.google.common.base.Predicates.instanceOf;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.size;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.ofKind;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.DifferenceKind;
+import org.eclipse.emf.compare.ResourceAttachmentChange;
+import org.eclipse.emf.compare.ide.ui.tests.framework.ResolutionStrategyID;
+import org.eclipse.emf.compare.ide.ui.tests.framework.annotations.ResolutionStrategies;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.GitTestRunner;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitCherryPick;
+import org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations.GitCompare;
+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.GitRebase;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.jgit.api.Status;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests for ResourceAttachmentChange with MOVE kind.
+ *
+ * @author <a href="mailto:axel.richard@obeo.fr">Axel Richard</a>
+ */
+@SuppressWarnings({"nls", })
+@RunWith(GitTestRunner.class)
+@ResolutionStrategies(ResolutionStrategyID.WORKSPACE)
+public class ResourceAttachmentChangeMoveNoConflictTests {
+
+ /**
+ * BRANCH_3 checkouted. Comparison with BRANCH_2 (the move). Comparison: No conflicts. Some differences,
+ * with just 1 {@link ResourceAttachmentChange} of kind MOVE.
+ */
+ @GitCompare(local = "branch3", remote = "branch2", file = "model.notation")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testComparisonMoveRemote(Comparison comparison) throws Exception {
+ assertTrue(comparison.getConflicts().isEmpty());
+ assertEquals(1, size(filter(comparison.getDifferences(),
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Comparison with BRANCH_3. Comparison: No conflicts. Some differences,
+ * with just 1 {@link ResourceAttachmentChange} of kind MOVE.
+ */
+ @GitCompare(local = "branch2", remote = "branch3", file = "model.notation")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testComparisonMoveLocal(Comparison comparison) throws Exception {
+ assertTrue(comparison.getConflicts().isEmpty());
+ assertEquals(1, size(filter(comparison.getDifferences(),
+ and(instanceOf(ResourceAttachmentChange.class), ofKind(DifferenceKind.MOVE)))));
+ }
+
+ /**
+ * BRANCH_3 checkouted. Merge with BRANCH_2 (the move). Merge: No conflicts. The fragmented model and new
+ * diagram from 2nd commit have to be in the repository. The changes from the 3rd commit have to be there.
+ */
+ @GitMerge(local = "branch3", remote = "branch2")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testMergeMoveRemote(Status status, List<IProject> projects) throws Exception {
+ checkContentsCase001(status, projects);
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Merge with BRANCH_3. Merge: No conflicts. The fragmented model and new
+ * diagram from 2nd commit have to be in the repository. The changes from the 3rd commit have to be there.
+ */
+ @GitMerge(local = "branch2", remote = "branch3")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testMergeMoveLocal(Status status, List<IProject> projects) throws Exception {
+ checkContentsCase001(status, projects);
+ }
+
+ /**
+ * BRANCH_3 checkouted. Merge with BRANCH_2 (the move). Rebase: No conflicts. The fragmented model and new
+ * diagram from 2nd commit have to be in the repository. The changes from the 3rd commit have to be there.
+ */
+ @GitRebase(local = "branch3", remote = "branch2")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testRebaseMoveRemote(Status status, List<IProject> projects) throws Exception {
+ checkContentsCase001(status, projects);
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Merge with BRANCH_3. Rebase: No conflicts. The fragmented model and new
+ * diagram from 2nd commit have to be in the repository. The changes from the 3rd commit have to be there.
+ */
+ @GitRebase(local = "branch2", remote = "branch3")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testRebaseMoveLocal(Status status, List<IProject> projects) throws Exception {
+ checkContentsCase001(status, projects);
+ }
+
+ /**
+ * BRANCH_3 checkouted. Merge with BRANCH_2 (the move). CherryPick: No conflicts. The fragmented model and
+ * new diagram from 2nd commit have to be in the repository. The changes from the 3rd commit have to be
+ * there.
+ */
+ @GitCherryPick(local = "branch3", remote = "branch2")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testCherryPickMoveRemote(Status status, List<IProject> projects) throws Exception {
+ checkContentsCase001(status, projects);
+ }
+
+ /**
+ * BRANCH_2 checkouted (the move). Merge with BRANCH_3. CherryPick: No conflicts. The fragmented model and
+ * new diagram from 2nd commit have to be in the repository. The changes from the 3rd commit have to be
+ * there.
+ */
+ @GitCherryPick(local = "branch2", remote = "branch3")
+ @GitInput("data/resourceAttachmentChangeMoveNoConflict.zip")
+ public void testCherryPickMoveLocal(Status status, List<IProject> projects) throws Exception {
+ checkContentsCase001(status, projects);
+ }
+
+ private void checkContentsCase001(Status status, List<IProject> projects) throws Exception {
+ // No conflicts
+ assertTrue(status.getConflicting().isEmpty());
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resourceModelDi = null;
+ Resource resourceModelUml = null;
+ Resource resourceModelNotation = null;
+ Resource resourceFragmentDi = null;
+ Resource resourceFragmentUml = null;
+ Resource resourceFragmentNotation = null;
+
+ // The project1 is accessible.
+ IProject iProject = projects.get(0);
+ assertTrue(iProject.isAccessible());
+ // After the merge, the repository should contain the new files from 2nd commit.
+ for (IResource res : iProject.members()) {
+ if (res.getName().equals("model.di")) {
+ resourceModelDi = resourceSet
+ .getResource(URI.createPlatformResourceURI(res.getFullPath().toString(), true), true);
+ } else if (res.getName().equals("model.uml")) {
+ resourceModelUml = resourceSet
+ .getResource(URI.createPlatformResourceURI(res.getFullPath().toString(), true), true);
+ } else if (res.getName().equals("model.notation")) {
+ resourceModelNotation = resourceSet
+ .getResource(URI.createPlatformResourceURI(res.getFullPath().toString(), true), true);
+ } else if (res.getName().equals("fragment.di")) {
+ resourceFragmentDi = resourceSet
+ .getResource(URI.createPlatformResourceURI(res.getFullPath().toString(), true), true);
+ } else if (res.getName().equals("fragment.uml")) {
+ resourceFragmentUml = resourceSet
+ .getResource(URI.createPlatformResourceURI(res.getFullPath().toString(), true), true);
+ } else if (res.getName().equals("fragment.notation")) {
+ resourceFragmentNotation = resourceSet
+ .getResource(URI.createPlatformResourceURI(res.getFullPath().toString(), true), true);
+ }
+ }
+ assertNotNull(resourceModelDi);
+ assertNotNull(resourceModelUml);
+ assertNotNull(resourceModelNotation);
+ assertNotNull(resourceFragmentDi);
+ assertNotNull(resourceFragmentUml);
+ assertNotNull(resourceFragmentNotation);
+
+ // ClassDiagramP2 should be in fragment.notation
+ assertEquals(1, resourceFragmentNotation.getContents().size());
+ Diagram diagramP2 = (Diagram)resourceFragmentNotation.getContents().get(0);
+ assertEquals("ClassDiagramP2", diagramP2.getName());
+
+ // It should contains the new graphical representation of semantic object Class1
+ EList<?> children = diagramP2.getChildren();
+ EObject element = ((Shape)children.get(0)).getElement();
+ assertTrue(element instanceof org.eclipse.uml2.uml.Class);
+ assertEquals("Class1", ((org.eclipse.uml2.uml.Class)element).getName());
+
+ // P2 & Class1 should be in fragment.uml
+ assertEquals(1, resourceFragmentUml.getContents().size());
+ Package p2 = (Package)resourceFragmentUml.getContents().get(0);
+ assertEquals("Package2", p2.getName());
+ EList<PackageableElement> packagedElements = p2.getPackagedElements();
+ assertEquals(1, packagedElements.size());
+ org.eclipse.uml2.uml.Class class1 = (org.eclipse.uml2.uml.Class)packagedElements.get(0);
+ assertEquals("Class1", class1.getName());
+
+ // ClassDiagram should be in model.notation
+ assertEquals(1, resourceModelNotation.getContents().size());
+ Diagram diagram = (Diagram)resourceModelNotation.getContents().get(0);
+ assertEquals("Class Diagram", diagram.getName());
+ }
+
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java
new file mode 100644
index 00000000..16b5f1ad
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/ResourceAttachmentChangeMoveOrderTests.java
@@ -0,0 +1,262 @@
+/*******************************************************************************
+ * Copyright (C) 2016 Ericsson 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
+ *
+ * Contributors:
+ * Simon Delisle - initial API and implementation
+ * Philip Langer - refactoring of test cases
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.move;
+
+import static com.google.common.collect.Iterables.find;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Diff;
+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.ide.ui.tests.workspace.TestProject;
+import org.eclipse.emf.compare.merge.IMerger;
+import org.eclipse.emf.compare.uml2.internal.merge.UMLMerger;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.compare.diagram.tests.AbstractGitTestCase;
+import org.junit.Test;
+
+import com.google.common.base.Predicate;
+
+@SuppressWarnings("restriction")
+public class ResourceAttachmentChangeMoveOrderTests extends AbstractGitTestCase {
+
+ /** Path to the test data. */
+ private static final String TEST_DATA_PATH = "src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/";
+
+ /** Path of model files within the test data. */
+ private static final String TEST_MODEL_PATH = "caseBug488089/";
+
+ /** Path of ancestor model files within the test data. */
+ private static final String ANCESTOR_PATH = TEST_MODEL_PATH + "ancestor/";
+
+ /** Path of left model files within the test data. */
+ private static final String LEFT_PATH = TEST_MODEL_PATH + "left/";
+
+ /** Path of right model files within the test data. */
+ private static final String RIGHT_PATH = TEST_MODEL_PATH + "right/";
+
+ /** Name of component diagram 2. */
+ private static final String COMPONENT_DIAGRAM_MODEL2 = "ComponentDiagramModel2";
+
+ /** Name of component diagram 2. */
+ private static final String COMPONENT_DIAGRAM_MODEL3 = "ComponentDiagramModel3";
+
+ private ResourceSetImpl resourceSet;
+
+ private IProject iProject;
+
+ private TestProject testProject;
+
+ private IFile modelDi;
+
+ private IFile modelNotation;
+
+ private IFile modelUml;
+
+ private IFile model2Di;
+
+ private IFile model2Notation;
+
+ private IFile model2Uml;
+
+ private IFile model3Di;
+
+ private IFile model3Notation;
+
+ private IFile model3Uml;
+
+ /**
+ * Checkout BRANCH_2 and compare with BRANCH_1 (contain the move). 2 {@link ResourceAttachmentChange
+ * resource attachment changes} of kind MOVE. Merge ComponentDiagramModel3 diff then
+ * ComponentDiagramModel2 diff. In the resulting model, the order should be preserved
+ * (ComponentDiagramModel2 before ComponentDiagramModel3).
+ */
+ @Test
+ public void testOrderAfterManuallyApplyingDiffs() throws Exception {
+ setUpRepositoryCaseBug488089();
+ repository.checkoutBranch(BRANCH_2);
+ Comparison comparison = compare(BRANCH_2, BRANCH_1, modelNotation);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ Diff diffComponentDiagramModel2 = find(diffs, resourceAttachmentMoveDiff(COMPONENT_DIAGRAM_MODEL2));
+ Diff diffComponentDiagramModel3 = find(diffs, resourceAttachmentMoveDiff(COMPONENT_DIAGRAM_MODEL3));
+
+ IMerger.Registry mergerRegistry;
+ mergerRegistry = IMerger.RegistryImpl.createStandaloneInstance();
+ final IMerger umlMerger = new UMLMerger();
+ umlMerger.setRanking(11);
+ final IMerger diagramMerger = new CompareDiagramMerger();
+ diagramMerger.setRanking(11);
+ mergerRegistry.add(umlMerger);
+ mergerRegistry.add(diagramMerger);
+
+ mergerRegistry.getHighestRankingMerger(diffComponentDiagramModel3)
+ .copyRightToLeft(diffComponentDiagramModel3, new BasicMonitor());
+ mergerRegistry.getHighestRankingMerger(diffComponentDiagramModel2)
+ .copyRightToLeft(diffComponentDiagramModel2, new BasicMonitor());
+
+ checkOrderInLeftResource(comparison.getMatchedResources());
+ testProject.dispose();
+ }
+
+ private void setUpRepositoryCaseBug488089() throws Exception {
+ resourceSet = new ResourceSetImpl();
+ File workingDirectory = repository.getRepository().getWorkTree();
+ testProject = new TestProject("Project", workingDirectory.getAbsolutePath());
+ iProject = testProject.getProject();
+ repository.connect(iProject);
+
+ modelDi = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model.uml", "");
+
+ model2Di = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model2.di", "");
+ model2Notation = addToProject(TEST_DATA_PATH, testProject, iProject,
+ ANCESTOR_PATH + "model2.notation", "");
+ model2Uml = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model2.uml", "");
+
+ model3Di = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model3.di", "");
+ model3Notation = addToProject(TEST_DATA_PATH, testProject, iProject,
+ ANCESTOR_PATH + "model3.notation", "");
+ model3Uml = addToProject(TEST_DATA_PATH, testProject, iProject, ANCESTOR_PATH + "model3.uml", "");
+
+ repository.addAllAndCommit("1st-commit", true);
+
+ repository.createBranch(MASTER, BRANCH_1);
+ repository.createBranch(MASTER, BRANCH_2);
+
+ repository.checkoutBranch(BRANCH_2);
+
+ modelDi = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model.notation", "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model.uml", "");
+
+ model2Di = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model2.di", "");
+ model2Notation = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model2.notation",
+ "");
+ model2Uml = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model2.uml", "");
+
+ model3Di = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model3.di", "");
+ model3Notation = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model3.notation",
+ "");
+ model3Uml = addToProject(TEST_DATA_PATH, testProject, iProject, LEFT_PATH + "model3.uml", "");
+
+ repository.addAllAndCommit("2nd-commit-branch2", true);
+
+ repository.checkoutBranch(BRANCH_1);
+
+ modelDi = addToProject(TEST_DATA_PATH, testProject, iProject, RIGHT_PATH + "model.di", "");
+ modelNotation = addToProject(TEST_DATA_PATH, testProject, iProject, RIGHT_PATH + "model.notation",
+ "");
+ modelUml = addToProject(TEST_DATA_PATH, testProject, iProject, RIGHT_PATH + "model.uml", "");
+
+ removeFromProject(iProject, model2Di.getName());
+ removeFromProject(iProject, model2Notation.getName());
+ removeFromProject(iProject, model2Uml.getName());
+ removeFromProject(iProject, model3Di.getName());
+ removeFromProject(iProject, model3Notation.getName());
+ removeFromProject(iProject, model3Uml.getName());
+
+ repository.addAllAndCommit("2nd-commit-branch1", true);
+ }
+
+ private Predicate<Diff> resourceAttachmentMoveDiff(final String name) {
+ return new Predicate<Diff>() {
+ @Override
+ public boolean apply(Diff input) {
+ if (input instanceof ResourceAttachmentChange
+ && DifferenceKind.MOVE.equals(input.getKind())) {
+ final ResourceAttachmentChange change = (ResourceAttachmentChange)input;
+ final EObject left = change.getMatch().getLeft();
+ if (left instanceof Diagram) {
+ return name.equals(((Diagram)left).getName());
+ }
+ }
+ return false;
+ }
+ };
+ }
+
+ private void checkOrderInLeftResource(EList<MatchResource> comparisonResourceList) {
+ Resource leftResource = null;
+ for (MatchResource matchResource : comparisonResourceList) {
+ if (matchResource.getLeftURI().contains("model.notation")) {
+ leftResource = matchResource.getLeft();
+ break;
+ }
+ }
+
+ assertNotNull(leftResource);
+ Diagram diagramModel2 = (Diagram)leftResource.getContents().get(1);
+ Diagram diagramModel3 = (Diagram)leftResource.getContents().get(2);
+ assertEquals(COMPONENT_DIAGRAM_MODEL2, diagramModel2.getName());
+ assertEquals(COMPONENT_DIAGRAM_MODEL3, diagramModel3.getName());
+ }
+
+ /**
+ * Checkout BRANCH_2 and merge with BRANCH_1 (contain the move). In the resulting file, the order of the
+ * elements (diagrams) should be the same as BRANCH_1 (componentDiagramModel2 before
+ * componentDiagramModel3).
+ */
+ @Test
+ public void testOrderAfterLogicalMerge() throws Exception {
+ setUpRepositoryCaseBug488089();
+ repository.checkoutBranch(BRANCH_2);
+ repository.mergeLogicalWithNewCommit(BRANCH_1);
+ checkContentsCaseBug488089();
+ testProject.dispose();
+ }
+
+ private void checkContentsCaseBug488089() throws Exception {
+ assertTrue(repository.status().getConflicting().isEmpty());
+ assertTrue(iProject.isAccessible());
+
+ assertTrue(modelDi.exists());
+ assertTrue(modelNotation.exists());
+ assertTrue(modelUml.exists());
+
+ URI modelNotationUri = URI.createPlatformResourceURI(modelNotation.getFullPath().toString(), true);
+ Resource resourceModelNotation = resourceSet.getResource(modelNotationUri, true);
+
+ assertEquals(3, resourceModelNotation.getContents().size());
+ Diagram diagramModel2 = (Diagram)resourceModelNotation.getContents().get(1);
+ Diagram diagramModel3 = (Diagram)resourceModelNotation.getContents().get(2);
+
+ assertEquals(COMPONENT_DIAGRAM_MODEL2, diagramModel2.getName());
+ assertEquals(COMPONENT_DIAGRAM_MODEL3, diagramModel3.getName());
+
+ assertFalse(model2Di.exists());
+ assertFalse(model2Notation.exists());
+ assertFalse(model2Uml.exists());
+ assertFalse(model3Di.exists());
+ assertFalse(model3Notation.exists());
+ assertFalse(model3Uml.exists());
+ }
+}
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.notation
new file mode 100644
index 00000000..e7b06d64
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.notation
@@ -0,0 +1,28 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.uml
new file mode 100644
index 00000000..62a53883
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit1/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.notation
new file mode 100644
index 00000000..d4937445
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.notation
@@ -0,0 +1,9 @@
+<?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="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.uml
new file mode 100644
index 00000000..3c647230
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/fragment.uml
@@ -0,0 +1,2 @@
+<?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="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.notation
new file mode 100644
index 00000000..82cf21aa
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.notation
@@ -0,0 +1,18 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.uml
new file mode 100644
index 00000000..f08e513a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit2/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.notation
new file mode 100644
index 00000000..4124b24d
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.notation
@@ -0,0 +1,54 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_eU6XIFeXEeWtWYkl6YNiFA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eU6-MFeXEeWtWYkl6YNiFA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eU6-MVeXEeWtWYkl6YNiFA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eU6-MleXEeWtWYkl6YNiFA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eU6-M1eXEeWtWYkl6YNiFA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eU6-NFeXEeWtWYkl6YNiFA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eU6-NVeXEeWtWYkl6YNiFA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eU6-NleXEeWtWYkl6YNiFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eU6-N1eXEeWtWYkl6YNiFA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eU6-OFeXEeWtWYkl6YNiFA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eU6-OVeXEeWtWYkl6YNiFA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eU6-OleXEeWtWYkl6YNiFA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eU6-O1eXEeWtWYkl6YNiFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eU6-PFeXEeWtWYkl6YNiFA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eU6-PVeXEeWtWYkl6YNiFA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eU6-PleXEeWtWYkl6YNiFA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eU6-P1eXEeWtWYkl6YNiFA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eU6-QFeXEeWtWYkl6YNiFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eU6-QVeXEeWtWYkl6YNiFA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_eU3T0FeXEeWtWYkl6YNiFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eU6XIVeXEeWtWYkl6YNiFA" x="196" y="164"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/commit3/model.uml
new file mode 100644
index 00000000..8e8a1c25
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case001/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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_eU3T0FeXEeWtWYkl6YNiFA" name="Class1"/>
+ </packagedElement>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.notation
new file mode 100644
index 00000000..e7b06d64
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.notation
@@ -0,0 +1,28 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.uml
new file mode 100644
index 00000000..62a53883
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit1/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.notation
new file mode 100644
index 00000000..d4937445
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.notation
@@ -0,0 +1,9 @@
+<?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="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.uml
new file mode 100644
index 00000000..3c647230
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/fragment.uml
@@ -0,0 +1,2 @@
+<?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="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.notation
new file mode 100644
index 00000000..82cf21aa
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.notation
@@ -0,0 +1,18 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.uml
new file mode 100644
index 00000000..f08e513a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit2/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.notation
new file mode 100644
index 00000000..82cf21aa
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.notation
@@ -0,0 +1,18 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.uml
new file mode 100644
index 00000000..d07d3af7
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case002/commit3/model.uml
@@ -0,0 +1,4 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.notation
new file mode 100644
index 00000000..e7b06d64
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.notation
@@ -0,0 +1,28 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.uml
new file mode 100644
index 00000000..62a53883
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit1/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.notation
new file mode 100644
index 00000000..d4937445
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.notation
@@ -0,0 +1,9 @@
+<?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="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.uml
new file mode 100644
index 00000000..3c647230
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/fragment.uml
@@ -0,0 +1,2 @@
+<?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="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.notation
new file mode 100644
index 00000000..82cf21aa
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.notation
@@ -0,0 +1,18 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.uml
new file mode 100644
index 00000000..f08e513a
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit2/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" href="fragment.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.notation
new file mode 100644
index 00000000..08055285
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.notation
@@ -0,0 +1,9 @@
+<?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="_aRs10FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="ClassDiagramP2" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aRs10VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aRs10leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_aRs101eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Package" href="control.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="control.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.uml
new file mode 100644
index 00000000..3c647230
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/control.uml
@@ -0,0 +1,2 @@
+<?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="_W3Z5MFeWEeWmnLjjRpJKCg" name="Package2"/>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.notation
new file mode 100644
index 00000000..82cf21aa
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.notation
@@ -0,0 +1,18 @@
+<?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="_Sog24FeWEeWmnLjjRpJKCg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U9H90FeWEeWmnLjjRpJKCg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9JL8FeWEeWmnLjjRpJKCg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9JL8VeWEeWmnLjjRpJKCg" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9JL8leWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9JL81eWEeWmnLjjRpJKCg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_U9ACAFeWEeWmnLjjRpJKCg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9H90VeWEeWmnLjjRpJKCg" x="85" y="99"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Sog24VeWEeWmnLjjRpJKCg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Sog24leWEeWmnLjjRpJKCg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Sog241eWEeWmnLjjRpJKCg">
+ <owner xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_Sk5iMFeWEeWmnLjjRpJKCg"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.uml
new file mode 100644
index 00000000..3474bfec
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/case003/commit3/model.uml
@@ -0,0 +1,5 @@
+<?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="_Sk5iMFeWEeWmnLjjRpJKCg" name="root">
+ <packagedElement xmi:type="uml:Package" xmi:id="_U9ACAFeWEeWmnLjjRpJKCg" name="Package1"/>
+ <packagedElement xmi:type="uml:Package" href="control.uml#_W3Z5MFeWEeWmnLjjRpJKCg"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.notation
new file mode 100644
index 00000000..85cee891
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.notation
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" 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="_8kEeYAJyEeaTnZrqlDPR7g" type="PapyrusUMLClassDiagram" name="PackageDiagramModel" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_GF8OgAJ5EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GF9coAJ5EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GF9coQJ5EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GF9cogJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GF9cowJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GF8OgQJ5EeaTnZrqlDPR7g" x="156" y="124"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GaN1YAJ5EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GaOccAJ5EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GaOccQJ5EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GaOccgJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GaOccwJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GaN1YQJ5EeaTnZrqlDPR7g" x="485" y="111"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_8kEeYQJyEeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8kEeYgJyEeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_8kEeYwJyEeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Model" href="model.uml#_rgwuYAJyEeaTnZrqlDPR7g"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_rgwuYAJyEeaTnZrqlDPR7g"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.uml
new file mode 100644
index 00000000..7b18cc81
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model.uml
@@ -0,0 +1,5 @@
+<?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="_rgwuYAJyEeaTnZrqlDPR7g" name="RootElement">
+ <packagedElement xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ <packagedElement xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.notation
new file mode 100644
index 00000000..47dfd284
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.notation
@@ -0,0 +1,21 @@
+<?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="_3m4j8AJ4EeaTnZrqlDPR7g" type="PapyrusUMLComponentDiagram" name="ComponentDiagramModel2" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_71mnIAJ4EeaTnZrqlDPR7g" type="2002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_71nOMAJ4EeaTnZrqlDPR7g" type="5004"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_71nOMQJ4EeaTnZrqlDPR7g" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_71nOMgJ4EeaTnZrqlDPR7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_71n1QAJ4EeaTnZrqlDPR7g" type="7001">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_71n1QQJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71n1QgJ4EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Component" href="model2.uml#_6RzSEAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71mnIQJ4EeaTnZrqlDPR7g" x="183" y="124"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_3m4j8QJ4EeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3m4j8gJ4EeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_3m4j8wJ4EeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.uml
new file mode 100644
index 00000000..a0e5ccee
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model2.uml
@@ -0,0 +1,4 @@
+<?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="_wMbkkAJ4EeaTnZrqlDPR7g" name="model2">
+ <packagedElement xmi:type="uml:Component" xmi:id="_6RzSEAJ4EeaTnZrqlDPR7g" name="ComponentModel2"/>
+</uml:Package>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.notation
new file mode 100644
index 00000000..e9241f43
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.notation
@@ -0,0 +1,21 @@
+<?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="__Q3NEAJ4EeaTnZrqlDPR7g" type="PapyrusUMLComponentDiagram" name="ComponentDiagramModel3" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BaTl0AJ5EeaTnZrqlDPR7g" type="2002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaUM4AJ5EeaTnZrqlDPR7g" type="5004"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaUM4QJ5EeaTnZrqlDPR7g" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BaUM4gJ5EeaTnZrqlDPR7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BaUM4wJ5EeaTnZrqlDPR7g" type="7001">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BaUM5AJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaUM5QJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Component" href="model3.uml#_AIyTkAJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaTl0QJ5EeaTnZrqlDPR7g" x="152" y="101"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="__Q3NEQJ4EeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__Q3NEgJ4EeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="__Q3NEwJ4EeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.uml
new file mode 100644
index 00000000..9c01228e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/ancestor/model3.uml
@@ -0,0 +1,4 @@
+<?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="_wvhqkAJ4EeaTnZrqlDPR7g" name="model3">
+ <packagedElement xmi:type="uml:Component" xmi:id="_AIyTkAJ5EeaTnZrqlDPR7g" name="ComponentModel3"/>
+</uml:Package>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.notation
new file mode 100644
index 00000000..4d4bf739
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.notation
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" 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="_8kEeYAJyEeaTnZrqlDPR7g" type="PapyrusUMLClassDiagram" name="PackageDiagramModel" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_GF8OgAJ5EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GF9coAJ5EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GF9coQJ5EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GF9cogJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GF9cowJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GF8OgQJ5EeaTnZrqlDPR7g" x="156" y="124"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GaN1YAJ5EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GaOccAJ5EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GaOccQJ5EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GaOccgJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GaOccwJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GaN1YQJ5EeaTnZrqlDPR7g" x="485" y="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kz7JUAJ6EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kz7JUgJ6EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kz7JUwJ6EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kz7JVAJ6EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kz7JVQJ6EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_iRqn8AJ6EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kz7JUQJ6EeaTnZrqlDPR7g" x="344" y="326"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_8kEeYQJyEeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8kEeYgJyEeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_8kEeYwJyEeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Model" href="model.uml#_rgwuYAJyEeaTnZrqlDPR7g"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_rgwuYAJyEeaTnZrqlDPR7g"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model.uml
new file mode 100644
index 00000000..d4fac4a2
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/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="_rgwuYAJyEeaTnZrqlDPR7g" name="RootElement">
+ <packagedElement xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ <packagedElement xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_iRqn8AJ6EeaTnZrqlDPR7g" name="package"/>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.notation
new file mode 100644
index 00000000..47dfd284
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.notation
@@ -0,0 +1,21 @@
+<?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="_3m4j8AJ4EeaTnZrqlDPR7g" type="PapyrusUMLComponentDiagram" name="ComponentDiagramModel2" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_71mnIAJ4EeaTnZrqlDPR7g" type="2002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_71nOMAJ4EeaTnZrqlDPR7g" type="5004"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_71nOMQJ4EeaTnZrqlDPR7g" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_71nOMgJ4EeaTnZrqlDPR7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_71n1QAJ4EeaTnZrqlDPR7g" type="7001">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_71n1QQJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71n1QgJ4EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Component" href="model2.uml#_6RzSEAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71mnIQJ4EeaTnZrqlDPR7g" x="183" y="124"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_3m4j8QJ4EeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3m4j8gJ4EeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_3m4j8wJ4EeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model2.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.uml
new file mode 100644
index 00000000..a0e5ccee
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model2.uml
@@ -0,0 +1,4 @@
+<?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="_wMbkkAJ4EeaTnZrqlDPR7g" name="model2">
+ <packagedElement xmi:type="uml:Component" xmi:id="_6RzSEAJ4EeaTnZrqlDPR7g" name="ComponentModel2"/>
+</uml:Package>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.notation
new file mode 100644
index 00000000..e9241f43
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.notation
@@ -0,0 +1,21 @@
+<?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="__Q3NEAJ4EeaTnZrqlDPR7g" type="PapyrusUMLComponentDiagram" name="ComponentDiagramModel3" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BaTl0AJ5EeaTnZrqlDPR7g" type="2002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaUM4AJ5EeaTnZrqlDPR7g" type="5004"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaUM4QJ5EeaTnZrqlDPR7g" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BaUM4gJ5EeaTnZrqlDPR7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BaUM4wJ5EeaTnZrqlDPR7g" type="7001">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BaUM5AJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaUM5QJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Component" href="model3.uml#_AIyTkAJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaTl0QJ5EeaTnZrqlDPR7g" x="152" y="101"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="__Q3NEQJ4EeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__Q3NEgJ4EeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="__Q3NEwJ4EeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model3.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+</notation:Diagram>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.uml
new file mode 100644
index 00000000..9c01228e
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/left/model3.uml
@@ -0,0 +1,4 @@
+<?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="_wvhqkAJ4EeaTnZrqlDPR7g" name="model3">
+ <packagedElement xmi:type="uml:Component" xmi:id="_AIyTkAJ5EeaTnZrqlDPR7g" name="ComponentModel3"/>
+</uml:Package>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.di b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.di
new file mode 100644
index 00000000..bf9abab3
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/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/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.notation b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.notation
new file mode 100644
index 00000000..d2b7eb06
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.notation
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" 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="_8kEeYAJyEeaTnZrqlDPR7g" type="PapyrusUMLClassDiagram" name="PackageDiagramModel" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_GF8OgAJ5EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GF9coAJ5EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GF9coQJ5EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GF9cogJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GF9cowJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GF8OgQJ5EeaTnZrqlDPR7g" x="156" y="124"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GaN1YAJ5EeaTnZrqlDPR7g" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GaOccAJ5EeaTnZrqlDPR7g" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GaOccQJ5EeaTnZrqlDPR7g" type="7016">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GaOccgJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GaOccwJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GaN1YQJ5EeaTnZrqlDPR7g" x="485" y="111"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_8kEeYQJyEeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8kEeYgJyEeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_8kEeYwJyEeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Model" href="model.uml#_rgwuYAJyEeaTnZrqlDPR7g"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_rgwuYAJyEeaTnZrqlDPR7g"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_3m4j8AJ4EeaTnZrqlDPR7g" type="PapyrusUMLComponentDiagram" name="ComponentDiagramModel2" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_71mnIAJ4EeaTnZrqlDPR7g" type="2002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_71nOMAJ4EeaTnZrqlDPR7g" type="5004"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_71nOMQJ4EeaTnZrqlDPR7g" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_71nOMgJ4EeaTnZrqlDPR7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_71n1QAJ4EeaTnZrqlDPR7g" type="7001">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_71n1QQJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71n1QgJ4EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Component" href="model.uml#_6RzSEAJ4EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71mnIQJ4EeaTnZrqlDPR7g" x="183" y="124"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_3m4j8QJ4EeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3m4j8gJ4EeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_3m4j8wJ4EeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Package" href="model.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_wMbkkAJ4EeaTnZrqlDPR7g"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="__Q3NEAJ4EeaTnZrqlDPR7g" type="PapyrusUMLComponentDiagram" name="ComponentDiagramModel3" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BaTl0AJ5EeaTnZrqlDPR7g" type="2002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaUM4AJ5EeaTnZrqlDPR7g" type="5004"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BaUM4QJ5EeaTnZrqlDPR7g" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BaUM4gJ5EeaTnZrqlDPR7g" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BaUM4wJ5EeaTnZrqlDPR7g" type="7001">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BaUM5AJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaUM5QJ5EeaTnZrqlDPR7g"/>
+ </children>
+ <element xmi:type="uml:Component" href="model.uml#_AIyTkAJ5EeaTnZrqlDPR7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BaTl0QJ5EeaTnZrqlDPR7g" x="152" y="101"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="__Q3NEQJ4EeaTnZrqlDPR7g" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__Q3NEgJ4EeaTnZrqlDPR7g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="__Q3NEwJ4EeaTnZrqlDPR7g">
+ <owner xmi:type="uml:Package" href="model.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_wvhqkAJ4EeaTnZrqlDPR7g"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.uml b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/model.uml
new file mode 100644
index 00000000..7d664b33
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/caseBug488089/right/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="_rgwuYAJyEeaTnZrqlDPR7g" name="RootElement">
+ <packagedElement xmi:type="uml:Package" xmi:id="_wMbkkAJ4EeaTnZrqlDPR7g" name="model2">
+ <packagedElement xmi:type="uml:Component" xmi:id="_6RzSEAJ4EeaTnZrqlDPR7g" name="ComponentModel2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_wvhqkAJ4EeaTnZrqlDPR7g" name="model3">
+ <packagedElement xmi:type="uml:Component" xmi:id="_AIyTkAJ5EeaTnZrqlDPR7g" name="ComponentModel3"/>
+ </packagedElement>
+</uml:Model>
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/resourceAttachmentChangeMoveNoConflict.zip b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/resourceAttachmentChangeMoveNoConflict.zip
new file mode 100644
index 00000000..2b798482
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/resourceattachmentchange/move/data/resourceAttachmentChangeMoveNoConflict.zip
Binary files differ
diff --git a/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/suite/PapyrusGitTests.java b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/suite/PapyrusGitTests.java
new file mode 100644
index 00000000..988c1983
--- /dev/null
+++ b/compare/tests/org.eclipse.papyrus.compare.diagram.tests.git/src/org/eclipse/papyrus/compare/diagram/tests/suite/PapyrusGitTests.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 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
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ * Philip Langer - added further tests
+ * Alexandra Buzila - additional tests
+ * Christian W. Damus - bugs 526932, 529217, 529253
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.suite;
+
+import org.eclipse.emf.compare.ComparePackage;
+import org.eclipse.emf.compare.diagram.internal.extensions.ExtensionsPackage;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.papyrus.compare.diagram.tests.conflicts.MoveOfDiagramConflictDetectionTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.IgnoreDiFileChangesInGitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeAdd1GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeAdd2GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeDelete1GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeDelete2GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeRename1GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeRename2GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeRename3GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeRename4GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.ResourceAttachmentChangeRename5GitMergeTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.StereotypeApplicationsInSubunitsTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.StereotypeConflictTest;
+import org.eclipse.papyrus.compare.diagram.tests.egit.mergeresolution.MergeResolutionManagerTest;
+import org.eclipse.papyrus.compare.diagram.tests.merge.AdditiveMergeDiagramTests;
+import org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.implication.AttachmentChangeImplicationTest;
+import org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveConflictTests;
+import org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveNoConflictTests;
+import org.eclipse.papyrus.compare.diagram.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveOrderTests;
+import org.eclipse.papyrus.infra.core.sashwindows.di.DiPackage;
+import org.eclipse.papyrus.infra.core.sashwindows.di.util.DiResourceFactoryImpl;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@SuppressWarnings("restriction")
+@RunWith(Suite.class)
+@SuiteClasses({AttachmentChangeImplicationTest.class, ResourceAttachmentChangeAdd1GitMergeTest.class,
+ ResourceAttachmentChangeAdd2GitMergeTest.class, ResourceAttachmentChangeDelete1GitMergeTest.class,
+ ResourceAttachmentChangeDelete2GitMergeTest.class, ResourceAttachmentChangeMoveConflictTests.class,
+ ResourceAttachmentChangeMoveNoConflictTests.class, ResourceAttachmentChangeMoveOrderTests.class,
+ StereotypeConflictTest.class, IgnoreDiFileChangesInGitMergeTest.class,
+ MoveOfDiagramConflictDetectionTest.class, AdditiveMergeDiagramTests.class,
+ MergeResolutionManagerTest.class, StereotypeApplicationsInSubunitsTest.class, //
+ ResourceAttachmentChangeRename1GitMergeTest.class, //
+ ResourceAttachmentChangeRename2GitMergeTest.class, //
+ ResourceAttachmentChangeRename3GitMergeTest.class, //
+ ResourceAttachmentChangeRename4GitMergeTest.class, //
+ ResourceAttachmentChangeRename5GitMergeTest.class, //
+})
+public class PapyrusGitTests {
+
+ @BeforeClass
+ public static void fillEMFRegistries() {
+ EPackage.Registry.INSTANCE.put(ComparePackage.eNS_URI, ComparePackage.eINSTANCE);
+ EPackage.Registry.INSTANCE.put(ExtensionsPackage.eNS_URI, ExtensionsPackage.eINSTANCE);
+ EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ EPackage.Registry.INSTANCE.put(NotationPackage.eNS_URI, NotationPackage.eINSTANCE);
+ EPackage.Registry.INSTANCE.put(DiPackage.eNS_URI, DiPackage.eINSTANCE);
+
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("di", //$NON-NLS-1$
+ new DiResourceFactoryImpl());
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("notation", //$NON-NLS-1$
+ new GMFResourceFactory());
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("uml", //$NON-NLS-1$
+ new UMLResourceFactoryImpl());
+ }
+
+}

Back to the top