1 ["plantuml", "03_classClusterSingletonServiceGroup", "svg"]
6 interface "AutoCloseable" as auto {
10 interface "ClusterSingletonService" as csService {
11 +void instantiateServiceInstance();
12 +ListenableFuture<Void> closeServiceInstance();
13 +String getServiceGroupIdentifier();
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();
24 interface "ClusterSingletonServiceRegistration" as cssRegistration {
27 interface "ClusterSingletonServiceProvider" as cssProvider {
28 +ClusterSingletonServiceRegistration registerClusterSingletonService(ClusterSingletonService);
32 cssRegistration --|> auto
34 csService - cssProvider : registerClusterSingletonService
35 cssProvider - cssGroup : registerClusterSingletonService