1ece350c0060651a0fa033279aaeb87daab718ac
[mdsal.git] / singleton-service / mdsal-singleton-common-api / src / site / asciidoc / 03_classClusterSingletonServiceGroup.plantuml
1 ["plantuml", "03_classClusterSingletonServiceGroup", "svg"]
2
3 ------------
4 @startuml
5
6 interface "AutoCloseable" as auto {
7   +void close();
8 }
9
10 interface "ClusterSingletonService" as csService {
11   +void instantiateServiceInstance();
12   +ListenableFuture<Void> closeServiceInstance();
13   +String getServiceGroupIdentifier();
14 }
15
16 interface "ClusterSingletonServiceGroup" as cssGroup {
17   +void initializationClusterSingletonGroup()
18   +ClusterSingletonServiceRegistration registerService(ClusterSingletonService);
19   +void unregisterService(ClusterSingletonService);
20   +void ownershipChanged(final OwnershipChange ownershipChange);
21   +ListenableFuture<List<Void>> closingClusterSingletonGroup();
22 }
23
24 interface "ClusterSingletonServiceRegistration" as cssRegistration {
25 }
26
27 interface "ClusterSingletonServiceProvider" as cssProvider {
28   +ClusterSingletonServiceRegistration registerClusterSingletonService(ClusterSingletonService);
29 }
30
31 cssProvider --|> auto
32 cssRegistration --|> auto
33
34 csService - cssProvider : registerClusterSingletonService
35 cssProvider - cssGroup : registerClusterSingletonService
36
37
38 @enduml
39 ------------