Community
Participate
Working Groups
.aird files currently contain both session/model information and representation information. Those different aspects are completely mixed in the files. Opening a Sirius session will load all representation information. And there is no current way to simply and directly extract information like number/name/description of representations or targeted elements without parsing the whole file. The current targeted solution is to separate the persistence for session/model and representation data with one file/resource per representation and one proxy/descriptor for each of them. The goal of this evolution is to be able to load the representation data as late as possible (ie editor opening, representation copy, export, ..), so the descriptor will have to be aware of: . the name . the description . the target (semantic elements) . the representation path/uri . we must avoid to let EMF load the representation data during resolveAll . see work done in Bug 456351 in which models links have been replaced by semantic resources datatype on DAnalysis. . we will also analyse the need of a mechanism to detect a desynchronization or compare the diagrams (modification time stamp for example) To achieve this target, we have to define several phases, in each of them Sirius must continue to behave in a consistent way. "repfile" will be used to reference the new kind of file which will contain the representations until the file extension is chosen.
Created attachment 261602 [details] Aird - current state
Created attachment 261604 [details] Aird - current state
Proof of Concept: It is currently possible to dispatch representations in several aird. When the user controls its semantic model, the semantic element is still contained by the previous container but it is serialized in its own resource but Sirius creates a new .aird file with a new plain DAnalysis which is referenced from the main DAnalysis of the current session. The sub aird could allow to open a plain/isolated session on the fragment (legacy mode), but the modeling project prevents the user to open it as only one session is allowed in a ModelingProject and Sirius is aware of the DAnalysis structure. In Capella, those sub aird are created with the airdfragment file extension. We could have tested the automatic creation of such sub aird using a specific DAnalysis selector but this would be insufficient as this kind of split does not allow to differ the load of the graphical data as all the analyses are loaded to detect the full set of semantic resources, controlled resources, activated viewpoints. A POC has been implemented to test the ability of Sirius to deal with fragmented representations. It mainly consisted in the auto-control of all created representations and the implementation of the corresponding migration action to split every aird file from the integration test data. The POC result allowed to identify several impacts or known issues, but also to identify several phases leading to the final goal of the current spec.
Created attachment 261606 [details] Aird - PoC
Created attachment 261607 [details] Aird - phase 1
Created attachment 261608 [details] Aird - phase 2
Created attachment 261609 [details] Aird - phase 2 experimental mode
Created attachment 261610 [details] Aird - phase 3
I have attached several images showing the step we currently have in mind for this evolution. I will explain them in separated bugzillas.
During the analysis phase, several draft commit have been pushed to gerrit. Some of them contain draft corrections and/or workarounds for the first observed regressions corresponding to the POC behavior: . https://git.eclipse.org/r/#/c/65561 . https://git.eclipse.org/r/#/c/65562 . https://git.eclipse.org/r/#/c/65705 . https://git.eclipse.org/r/#/c/65706 . https://git.eclipse.org/r/#/c/65707 . https://git.eclipse.org/r/#/c/66626 . https://git.eclipse.org/r/#/c/66627 The following patch set have been used to launch the tests suite on the migrated date (local or our internal test_drive job) . https://git.eclipse.org/r/#/c/66628: Migrate all action for debug plugin . https://git.eclipse.org/r/#/c/66629: Result of the migrate action on the repo test data . https://git.eclipse.org/r/#/c/66630: Control representations step in migrate all action and add capability to copy all fragments in test set up phase. . https://git.eclipse.org/r/#/c/66631: Result of the control of all representation on the repo test data
Impact on the referenced DAnalysis The current evolution is not intended to change the ability to define fragmented/referenced DAnalysis structures. This capability might impact the file management choices (hidden folder(s), export/copy behavior).
Most of the preparation work is done for 4.1 (see bugs #491604, #493367, #494766). Moving the 5.0 for now (with now guarantee it will indeed be done in that timeframe) for the remaining work.
New Gerrit change created: https://git.eclipse.org/r/89430
New Gerrit change created: https://git.eclipse.org/r/89429
New Gerrit change created: https://git.eclipse.org/r/92884
New Gerrit change created: https://git.eclipse.org/r/94316
New Gerrit change created: https://git.eclipse.org/r/94794
New Gerrit change created: https://git.eclipse.org/r/94898
New Gerrit change created: https://git.eclipse.org/r/94899
New Gerrit change created: https://git.eclipse.org/r/94922
New Gerrit change created: https://git.eclipse.org/r/94974
Gerrit change https://git.eclipse.org/r/92886 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=9045e422f17ff9f9646d80e18b56fa030e609d73
Gerrit change https://git.eclipse.org/r/92890 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=669d3884a935f1cf4889eefb225f3268a359e97f
Gerrit change https://git.eclipse.org/r/92887 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=266219d64bb56fc13ae70f58973fa485f5c86f42
Gerrit change https://git.eclipse.org/r/92884 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=118e1e1367a7e7a3ade58c1821d02a19bd74407e
Gerrit change https://git.eclipse.org/r/92889 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=9f2e4a2036e862a7b46ad07812340578bbfd8fde
Gerrit change https://git.eclipse.org/r/92891 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=482a63c2bd9bec5643a1620614d0dd61d9ebbf8f
Gerrit change https://git.eclipse.org/r/94794 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=12350540efc2d359623669066a5b99cbc37a1ef8
Gerrit change https://git.eclipse.org/r/92893 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a197ed2342ef3e2995cf97d6c8fe4edb4c0056d5
Gerrit change https://git.eclipse.org/r/92894 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=e68c4a94dc2d50dd3f49ea250b5146fbc3e664a6
Gerrit change https://git.eclipse.org/r/92895 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a29931aa224981e030b112ea13ab89ada335faf8
Gerrit change https://git.eclipse.org/r/93433 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=381800338362e659398f2c473f60e1596c7fa5cf
Gerrit change https://git.eclipse.org/r/93750 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=392c7a566ac55986f7c9d77c934cfe6ff35e7eb2
Gerrit change https://git.eclipse.org/r/94898 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b243be7e2a32a18b8397bbe0c9de9ad11fe0a7b3
New Gerrit change created: https://git.eclipse.org/r/95073
New Gerrit change created: https://git.eclipse.org/r/95174
New Gerrit change created: https://git.eclipse.org/r/95249
New Gerrit change created: https://git.eclipse.org/r/95397
New Gerrit change created: https://git.eclipse.org/r/95472
New Gerrit change created: https://git.eclipse.org/r/95490
New Gerrit change created: https://git.eclipse.org/r/95489
New Gerrit change created: https://git.eclipse.org/r/95756
New Gerrit change created: https://git.eclipse.org/r/95919
New Gerrit change created: https://git.eclipse.org/r/95927
New Gerrit change created: https://git.eclipse.org/r/96031
Gerrit change https://git.eclipse.org/r/95472 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=35bcc695376c4c6285cb69e2121b501da0d57b46
Gerrit change https://git.eclipse.org/r/95489 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=57a75120e51e5e87bfc2b4df7a2ed55e222243ba
Gerrit change https://git.eclipse.org/r/95490 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b67e6b0ee5f76d548e47f5b5f8c130f0d3197440
Gerrit change https://git.eclipse.org/r/95756 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3dd440626dfabc7ca0e7944a25e4ce05fcbe47dd
Gerrit change https://git.eclipse.org/r/96031 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=6ef975dcf261b13471767173db585db66bd3072f
Gerrit change https://git.eclipse.org/r/94922 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b585afa30a8a49470086467b7c1d4da79a9b4a51
Gerrit change https://git.eclipse.org/r/95073 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=c6da22f1e2320488ad2cff5148f50196f3c8a172
Gerrit change https://git.eclipse.org/r/95174 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=c763363ee163a319f4ee982ebfb098ea4f028e25
Gerrit change https://git.eclipse.org/r/95397 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=fd2a34184027ac29ecf4bc4c1909eff95034e2c8
Gerrit change https://git.eclipse.org/r/95249 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=0517654d6aac42561f8c483d2330a9c66171d527
Gerrit change https://git.eclipse.org/r/94899 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3fd217cf9514ffe1662f2f348a050b5c492e9c98
New Gerrit change created: https://git.eclipse.org/r/96232
New Gerrit change created: https://git.eclipse.org/r/96325
New Gerrit change created: https://git.eclipse.org/r/96414
New Gerrit change created: https://git.eclipse.org/r/96415
Gerrit change https://git.eclipse.org/r/96325 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=90a5e0891986f44414fd30d5abde9519865053bb
Gerrit change https://git.eclipse.org/r/96414 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=5d943eac08ed168fb6d25be5714f54cec162337d
Gerrit change https://git.eclipse.org/r/96232 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=995f880c08bfdea953166e79495b56bfe7b403c1
Gerrit change https://git.eclipse.org/r/96415 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3188289d202de07e4ac01201b177fd3351f9c6e4
New Gerrit change created: https://git.eclipse.org/r/96788
New Gerrit change created: https://git.eclipse.org/r/96838
New Gerrit change created: https://git.eclipse.org/r/96837
Gerrit change https://git.eclipse.org/r/96788 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=924a5f6367f4bd025c3f115626dff607d4dca006
New Gerrit change created: https://git.eclipse.org/r/97097
New Gerrit change created: https://git.eclipse.org/r/97096
The first steps introducing the ability to split representations into different resources, the DRepresentationDescriptor.repPath attribute and making derived, transient and volatile the feature DRepresentationDescriptor.representation is over for Sirius 5.0.
See bug 516669 for the next steps
New Gerrit change created: https://git.eclipse.org/r/97547
Gerrit change https://git.eclipse.org/r/97547 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=e386cb2a13a25894cc9c3463d7b7075107f73b7c
technical issue. The validation is the whole Sirius suites.
Available in Sirius 5.0.0, see https://wiki.eclipse.org/Sirius/5.0.0 for details.