Interface ClusterSingletonServiceProvider
-
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
AbstractClusterSingletonServiceProviderImpl
,DefaultClusterSingletonServiceProvider
,DOMClusterSingletonServiceProviderImpl
,OSGiClusterSingletonServiceProvider
public interface ClusterSingletonServiceProvider extends AutoCloseable
ClusterSingletonServiceProvider
provides a functionality to register and group servicesClusterSingletonService
by service group identifier. Services could be Applications or RPCs. Provider provides a functionality which allows to have only one fully instantiated service instance in a cluster at one time and service group means to have all service instances for the same group situated on same Cluster Node. This is realized via a double candidate approach where a service group instance maintains a candidate registration for ownership of the service group entity in the cluster and also a registration that acts as a guard to ensure a service group instance has fully closed prior to relinquishing service group ownership. To achieve ownership of the service group, a service group candidate must hold ownership of both these entities.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ClusterSingletonServiceRegistration
registerClusterSingletonService(ClusterSingletonService service)
Method registersClusterSingletonService
to Provider.-
Methods inherited from interface java.lang.AutoCloseable
close
-
-
-
-
Method Detail
-
registerClusterSingletonService
ClusterSingletonServiceRegistration registerClusterSingletonService(ClusterSingletonService service)
Method registersClusterSingletonService
to Provider. Method returnsRuntimeException
for unexpected state, so be careful with implementation. Note: RuntimeException is implemented as a notification about some problems with registration and client has to implement some strategy for handling this issue. TODO: RuntimeException is not a transparent contract for handling unexpected state and it needs to be replaced with a specific documented Exception or it needs to add another contract definition for a client notification about the unexpected state reason inClusterSingletonService
. RuntimeException implementation is a hotfix for an unwanted API contract changes in boron release only.- Parameters:
service
- ClusterSingletonService instance- Returns:
AutoCloseable
registration
-
-