Community
Participate
Working Groups
The Session concept is central in the Sirius runtime, but its API and implementation have become complex, difficult to maintain and to optimize. More specifically, the current implementation (DAnalysisSessionImpl and associated classes) tries to support different modes of behaviors, some of which impose a lot of complexity and runtime overhead even when they are not needed (which is most of the time, for most users). This ticket will be used to discuss a general strategy and concrete actions towards the replacement of the current implementation with a new, more efficient one which does not try to handle all the "legacy" uses cases. This will be done over several versions of Sirius, so that we can keep the existing implementation as long as needed for compatibility for existing users. The proposed general strategy: 1. Make it technically possible to have several implementations of the Session API in the code, selectable at runtime. Note that the session's contract itself might need to evolve, so we are not necessarily talking about a single set of Java interfaces which can be implemented in several ways; it might be necessary to have two sets of APIs ("Old-Style Sessions" and "New-Style Session") co-exist peacefully. 2. Provide a new implementation of the session concepts and APIs with better properties than the current one, but make the new implementation opt-in (i.e. client code will need to ask explicitly to use the new version). 3. Once we are confident enough that the new implementation is complete and stable, make the new one the default. The old one would still be available if explicitly requested, but it would become deprecated. 4. Remove the old implementation altogether once we are sure all users have migrated to the new one.
I have created https://wiki.eclipse.org/Sirius/Session_API to complement this ticket.
Pierre-Charles some related elements: Bug 426811 and https://git.eclipse.org/r/#/c/21509/
New Gerrit change created: https://git.eclipse.org/r/42663
New Gerrit change created: https://git.eclipse.org/r/42666
New Gerrit change created: https://git.eclipse.org/r/42665
New Gerrit change created: https://git.eclipse.org/r/42664
New Gerrit change created: https://git.eclipse.org/r/42669
New Gerrit change created: https://git.eclipse.org/r/42668
New Gerrit change created: https://git.eclipse.org/r/42667
New Gerrit change created: https://git.eclipse.org/r/42671
New Gerrit change created: https://git.eclipse.org/r/42670
Gerrit change https://git.eclipse.org/r/39390 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=845edd6a36e61ff518ed2462a7726404d5577280
Gerrit change https://git.eclipse.org/r/42663 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=1fb9718ebf64ccf3c3054a03062f304e7ffbb3ff
Gerrit change https://git.eclipse.org/r/42671 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=8a5ceae32a9a2414cf1a48a01ba98107b8406a66
Gerrit change https://git.eclipse.org/r/42670 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=86812009da49387db0369d38027cb64da2caf945
Gerrit change https://git.eclipse.org/r/42669 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3959a8ffee6fdc020a2c6c2b1a4aef28c46b7fd9
Gerrit change https://git.eclipse.org/r/42668 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=bd72d57c92608a07b09de2f7bc1f8d9c485f3eff
Gerrit change https://git.eclipse.org/r/42667 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=d4c29bfab31190bf964cb1cad80145b5eb642272
Gerrit change https://git.eclipse.org/r/42665 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=5970079c39e32a9a573ab4e602811be949b7b060
Gerrit change https://git.eclipse.org/r/42666 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4ddb8ab3b4f3ae033782fc811890d9ebc707bdbf
Gerrit change https://git.eclipse.org/r/42664 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=30351957d9dabe7db92e1d09c2b6d064b9c1e888
New Gerrit change created: https://git.eclipse.org/r/42871
Gerrit change https://git.eclipse.org/r/42871 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=6b2acf6332937982542bc1dd18c0d7551b8c42b2
New Gerrit change created: https://git.eclipse.org/r/45547
New Gerrit change created: https://git.eclipse.org/r/45548
New Gerrit change created: https://git.eclipse.org/r/45549
New Gerrit change created: https://git.eclipse.org/r/45653
New Gerrit change created: https://git.eclipse.org/r/45652
New Gerrit change created: https://git.eclipse.org/r/45656
New Gerrit change created: https://git.eclipse.org/r/45655
New Gerrit change created: https://git.eclipse.org/r/45654
New Gerrit change created: https://git.eclipse.org/r/45658
New Gerrit change created: https://git.eclipse.org/r/45657
New Gerrit change created: https://git.eclipse.org/r/45661
New Gerrit change created: https://git.eclipse.org/r/45660
New Gerrit change created: https://git.eclipse.org/r/45659
New Gerrit change created: https://git.eclipse.org/r/45663
New Gerrit change created: https://git.eclipse.org/r/45662
Gerrit change https://git.eclipse.org/r/45549 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=81365a83b09b4de7932f66ef7f699efddabde406
Gerrit change https://git.eclipse.org/r/45548 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4bdbf3a79d68eda77b1ec6a2f5b2f5db6899b64f
Gerrit change https://git.eclipse.org/r/45547 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=73b60c34fa3e15213e3f5b379db6dd6c75d7b703
Gerrit change https://git.eclipse.org/r/45652 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=80a20d8b3eaa47fc47eb5d3bbc39f528c50fc507
Gerrit change https://git.eclipse.org/r/45653 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=9f743fbf2224fd239afb4df7291343cd56823639
Gerrit change https://git.eclipse.org/r/45654 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3422b6409745ef283d997a08ab566d880c7dd3f6
Gerrit change https://git.eclipse.org/r/45663 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a78ecdb99eda0941731b41bb32f7c8dc6a6737e4
Gerrit change https://git.eclipse.org/r/45662 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=440ac80e04a5308dc4dc2b38aeb2d440ab746a12
Gerrit change https://git.eclipse.org/r/45661 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=fa60b94f8c147e6e49d4e98232dcaed77fce847a
Gerrit change https://git.eclipse.org/r/45660 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b2f7ce15b82798e853d690941b068484ccd3b439
Gerrit change https://git.eclipse.org/r/45659 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=c6b053356950571d8b6e2135dd570b4a2f7e1946
Gerrit change https://git.eclipse.org/r/45658 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b8ea76178b86b927dea25dc1a0334f6b040f9582
Gerrit change https://git.eclipse.org/r/45657 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=fda3222a7d0272bdc4e6e834f20bc59f7afa3182
Gerrit change https://git.eclipse.org/r/45656 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=18e09ec89df3cf90b876255bcdde3a60bf6fdb33
Gerrit change https://git.eclipse.org/r/45655 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=2bb9d20791fc08edf37b79ae2a7ab4ebd1b0e96b
New Gerrit change created: https://git.eclipse.org/r/46080
New Gerrit change created: https://git.eclipse.org/r/46079
New Gerrit change created: https://git.eclipse.org/r/46078
New Gerrit change created: https://git.eclipse.org/r/46082
New Gerrit change created: https://git.eclipse.org/r/46081
New Gerrit change created: https://git.eclipse.org/r/46084
New Gerrit change created: https://git.eclipse.org/r/46083
New Gerrit change created: https://git.eclipse.org/r/46085
Gerrit change https://git.eclipse.org/r/46085 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=1d40ce1dab61537a8fe78a79e99c4de0eea4dcc8
Gerrit change https://git.eclipse.org/r/46084 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=8d8027e576706bb8684cf28faa487fc7b08bdd3f
Gerrit change https://git.eclipse.org/r/46083 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3522a3368fcf31b605eba3561a63477ff9bf03a1
Gerrit change https://git.eclipse.org/r/46082 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4ea7a66900ba14facd5f6a2ffcecde0aba4d9531
Gerrit change https://git.eclipse.org/r/46081 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=7bd37e9d8e3fa582a99231dec9d3946327751a04
Gerrit change https://git.eclipse.org/r/46080 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b4e6e96b74f2685cc8755daa472131c543603c93
Gerrit change https://git.eclipse.org/r/46079 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=fc45c0224943725e31d8b5ce611999df763b8ecf
Gerrit change https://git.eclipse.org/r/46078 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=46c3fc0f55a18d72523a448eb77fef5f02f55d67
Closing for 3.0. There are many other potential improvements in this area, but in the context of Sirius 3.0 we'll stop here for general refactoring. Other improvements may still come from work on more specific issues.
Verified with Sirius 3.0.0 rc1
Available in Sirius 3.0.0. See https://wiki.eclipse.org/Sirius/3.0.0.