32c9602a9fae6bb22050cc6016ab422a192e22c8
[mdsal.git] / singleton-service / mdsal-singleton-common-api / src / site / asciidoc / 01_doubleCandidateSimpleSequence.plantuml
1 ["plantuml", "01_doubleCandidateSimpleSequence", "svg"]
2
3 ------------
4 @startuml
5
6   autonumber "<font color=red><b>[00]"
7
8   participant "OSGi Container" as osgi
9   participant "Application" as app
10   participant "Application Body" as body
11   participant "EntitiOwnerhsipService" as eos
12
13   alt "Initialization"
14     osgi -> app : <<init>>
15     activate osgi
16       activate app
17         app -> eos : registerListener()
18         activate eos
19           app <-- eos
20         deactivate eos
21       deactivate app
22       app -> eos : registerCandidate(MainEntity)
23       activate app
24         activate eos
25           app <-- eos
26         deactivate eos
27         osgi <-- app
28       deactivate app
29     deactivate osgi
30
31   else "Try to take Leadership"
32     eos -> app : ownershipChanged(isOwner=true) [MainEntity]
33     activate eos
34       activate app
35         app -> eos : registerCandidate(CloseGuardEntity)
36         app <-- eos
37         eos <-- app
38       deactivate app
39     deactivate eos
40
41   else "Take Leadership"
42     eos -> app : ownershipChanged(isOwner=true) [CloseGuardEntity]
43     activate eos
44     activate app
45       app -> body : <<init>>
46       activate body
47         ...
48         app <-- body
49       deactivate body
50     eos <-- app
51     deactivate app
52     deactivate eos
53
54   else "Lost Leadership"
55     alt "CloseGuardEntity is not registered (initial phase)"
56       eos -> app : ownershipChanged(isOwner=false, wasOwner=false) [MainEntity]
57       activate eos
58       activate app
59         eos <-- app
60       deactivate app
61       deactivate eos
62
63     else "CloseGuardEntity is registered (realy lost leadership)"
64       eos -> app : ownershipChanged(isOwner=false, wasOwner=true) [MainEntity]
65       activate eos
66       activate app
67         app -\ body : close
68       deactivate app
69       activate body
70         ...
71         app \-- body
72       deactivate body
73       activate app
74         app -> eos :closeGuardCandidateRegistration.close
75         app <-- eos
76         eos <-- app
77       deactivate app
78       deactivate eos
79
80     end
81   end
82
83 @enduml
84 ------------