b58c6674e732ef919b84cf5e34f71b66f3a2417c
[mdsal.git] / singleton-service / mdsal-singleton-common-api / src / site / asciidoc / 07_processAppSingleInstSimply.plantuml
1 ["plantuml", "07_processAppSingleInstSimply", "svg"]
2
3 ------------
4 @startuml
5
6
7   autonumber "<font color=red><b>[00]"
8
9   participant "OSGi container" as osgi
10   participant "AbstractModule<ODL app>" as module
11   participant "ODL app ProviderImpl" as provider
12   participant "ODL app Body" as body
13   participant "ClusterSingletonServiceProvider" as cssProvider
14   participant "EntityOwnershipService" as eos
15
16   activate osgi
17     osgi -> module : <<init>>
18     activate module
19       module -> provider : initializeProvider()
20       activate provider
21         provider -> cssProvider : registerClusterSingletonService()
22         activate cssProvider
23           cssProvider -> eos : registerCandidate
24           activate eos
25             cssProvider <-- eos
26           deactivate eos
27           provider <-- cssProvider
28         deactivate cssProvider
29         module <-- provider
30       deactivate provider
31       osgi <-- module
32     deactivate module
33   deactivate osgi
34
35   alt "Get Role Master"
36     activate eos
37     cssProvider <- eos : ownershipChanged(isOwner=true)
38       activate cssProvider
39         cssProvider -> provider : instantiateServiceInstance()
40         activate provider
41           provider -> body : <<init>>
42           activate body
43             provider <-- body
44           deactivate body
45           cssProvider <-- provider
46         deactivate provider
47         cssProvider --> eos
48       deactivate cssProvider
49     deactivate eos
50   else "Get Role Slave"
51     alt "Was Master"
52       cssProvider <- eos : ownershipChanged(isOwner=false, wasOwner=true)
53       activate eos
54         activate cssProvider
55           cssProvider -> provider : closeServiceInstance()
56           activate provider
57             provider -> body : close
58             activate body
59               provider <-- body : close
60             deactivate body
61             cssProvider <-- provider
62           deactivate provider
63           cssProvider --> eos
64         deactivate cssProvider
65       deactivate eos
66     else "Was Not Master"
67       cssProvider <- eos : ownershipChanged(isOwner=false, wasOwner=false)
68       activate eos
69         activate cssProvider
70           cssProvider --> eos
71         deactivate cssProvider
72       deactivate eos
73     end
74   end
75
76
77 @enduml
78 ------------