Community
Participate
Working Groups
Bug 467545 introduced an implementation of the UML Metamodel for UML-RT semantics of inheritance and redefinition in Capsule Structure and Protocols: the concepts defined in the UMLRealTime profile. Similar support is required for inheritance and redefinition in the behavioural concepts defined in the UMLRTStateMachines profile.
New Gerrit change created: https://git.eclipse.org/r/89958
In the legacy tooling a capsule was always required to own a state-machine, which made it obvious how to handle the inheritance of the state-machine whenever a generalization was added to the capsule. But since the state-machine profile now is optional, and thus it is also optional for a capsule to own a state-machine, there are some additional cases that needs to be considered, e.g. when either superclass, or the subclass, capsule does not own a state-machine when the generalization is established, and the cases when a state-machine is added to the superclass, or the subclass, capsule at a later point in time after the generalization have been established. One such example is the "interface capsule pattern" (see example legacy model based on this pattern attached to Bug 511211 Comment 0) where an "interface capsule" is a pattern which only have relay ports and no internal structure and no behaviour. It would be rather natural to leave the interface capsule without having a state-machine, to really indicate that it is not supposed to have any behavior defined. But then in the "implementation subclass", which inherits the "interface capsule", it would then be natural to have a state-machine where its behavior is added. Another aspect to consider here is also the three initial elements added to a UML-RT state-machine at creation, i.e. the initial pseudostate, the first state, and the initial transition between them. Whenever a generalization is established, then these elements shall automatically be removed in the subclass capsule's state-machine to avoid them being defined "double", i.e. both being inherited and both defined locally. At this point in time it is sufficient to inherit them, and thus the locally defined ones shall be removed. When removing a generalization, these elements can be re-added again. This is how the legacy tooling handles these three initial elements. It probably needs to be elaborated in which situations the local elements cannot/shall not be removed, e.g. if outgoing transitions have been added to the first state, in which case it probably is not a good idea to simply remove the first state. But for "empty" state-machines, where only the three initial and automatically created elements exist, then it should be just to removed the local ones, and let them be inherited from the superclass capsule instead.
Gerrit change https://git.eclipse.org/r/89958 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=920a5b2d097b9b28038c0159696903cc01ebebb7
New Gerrit change created: https://git.eclipse.org/r/90419
Gerrit change https://git.eclipse.org/r/90419 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=2e65d0b2bf5cac4051d50a8e8cdeaf9b4caf38fa
New Gerrit change created: https://git.eclipse.org/r/90586
Gerrit change https://git.eclipse.org/r/90586 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=74d961ac2a8b1d64a48a90f79c06ac84b713ae94
New Gerrit change created: https://git.eclipse.org/r/90677
Gerrit change https://git.eclipse.org/r/90677 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=f8c3a258b1c8585ade054811d210d1cb1f745ecf
New Gerrit change created: https://git.eclipse.org/r/90828
New Gerrit change created: https://git.eclipse.org/r/90827
Blocking bug 511942 is resolved in Papyrus.
Gerrit change https://git.eclipse.org/r/90827 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=eb9ae73e2c61a521a6bdec9b7887e758cd58cdba
Gerrit change https://git.eclipse.org/r/90828 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=bc9882680a11f4f71a338a401abb32a8e631e7a3
New Gerrit change created: https://git.eclipse.org/r/90865
Gerrit change https://git.eclipse.org/r/90865 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=e438d68092a82e8bcbd49cc14e649fb116f8f017
New Gerrit change created: https://git.eclipse.org/r/90891
Gerrit change https://git.eclipse.org/r/90891 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=9d24fc957e410c841e03d41061f2579d083d4559
New Gerrit change created: https://git.eclipse.org/r/91007
Gerrit change https://git.eclipse.org/r/91007 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=b9c151ef415fbe63ecb1bb6c961d5f45757e22a9
New Gerrit change created: https://git.eclipse.org/r/91078
Gerrit change https://git.eclipse.org/r/91078 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=e02efa6fffec19bff844e6d23a3a0a746af81d36
New Gerrit change created: https://git.eclipse.org/r/91296
New Gerrit change created: https://git.eclipse.org/r/91297
Gerrit change https://git.eclipse.org/r/91297 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=b88b69340516b3dbf1724c1d177bda3c20d86a25
New Gerrit change created: https://git.eclipse.org/r/91317
Gerrit change https://git.eclipse.org/r/91317 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=fa94cfd62651868e85d241b4844606954dddfe20
New Gerrit change created: https://git.eclipse.org/r/91512
Gerrit change https://git.eclipse.org/r/91512 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=2eeccd253a2809fac0051b859bf94b3f5a6633ec
New Gerrit change created: https://git.eclipse.org/r/91561
Gerrit change https://git.eclipse.org/r/91561 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=10455d1f9bf3bc6e9bc8017408c9b5567f45bb16
New Gerrit change created: https://git.eclipse.org/r/91565
New Gerrit change created: https://git.eclipse.org/r/91574
Gerrit change https://git.eclipse.org/r/91565 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=dee34a42725b1ea29e410cb094f12a2d30aa7a7d
Gerrit change https://git.eclipse.org/r/91574 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=0bd0b9610735f7050566074ea4c2a7f8667e5924
New Gerrit change created: https://git.eclipse.org/r/91635
Gerrit change https://git.eclipse.org/r/91635 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=f3a0f58ef79d4648d98534bd59c48fa98d629441
New Gerrit change created: https://git.eclipse.org/r/91642
Gerrit change https://git.eclipse.org/r/91642 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=bfd73206be3d42fc7a275e70a3fe992311780153
New Gerrit change created: https://git.eclipse.org/r/91663
New Gerrit change created: https://git.eclipse.org/r/91662
Gerrit change https://git.eclipse.org/r/91662 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=6041c3f101bab2564c7e07bfaf44d42f462673c7
Gerrit change https://git.eclipse.org/r/91663 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=1ec25cc864c5e869f4655d01bc724db25ccf31f4
New Gerrit change created: https://git.eclipse.org/r/91718
Gerrit change https://git.eclipse.org/r/91718 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=347968b852b08b50f56e44ae649847782ab5a8a3
New Gerrit change created: https://git.eclipse.org/r/91729
Gerrit change https://git.eclipse.org/r/91729 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus-rt/org.eclipse.papyrus-rt.git/commit/?id=5bfc77fd4c96c95fd55212d3aa26d129308d4f61
Marking this as resolved because the UML-RT implementation and façade for state machines are effectively complete, including JUnit tests (72% coverage overall, with much of the uncovered code being what EMF/UML2 generates and our use cases have no interest in). Depending on how the decision whether to inherit automatically (in the API) the state machine behaviour of a capsule lands (https://goo.gl/b0tIZS), that would best be handled by a new bugzilla.
Kind of hard verify all aspects of this bug. But since the work has progressed pretty much and we have started to track individual issues with separate bugs, I put this one into verified/closed fixed.
Closing as verified fixed.