Class MicroserviceSubscriptionsServiceImpl
- java.lang.Object
-
- com.cumulocity.microservice.subscription.service.impl.MicroserviceSubscriptionsServiceImpl
-
- All Implemented Interfaces:
MicroserviceSubscriptionsService
@Service public class MicroserviceSubscriptionsServiceImpl extends Object implements MicroserviceSubscriptionsService
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MicroserviceSubscriptionsServiceImpl.MicroserviceChangedListener<T>
-
Constructor Summary
Constructors Constructor Description MicroserviceSubscriptionsServiceImpl(PlatformProperties properties, org.springframework.context.ApplicationEventPublisher eventPublisher, MicroserviceSubscriptionsRepository repository, MicroserviceMetadataRepresentation microserviceMetadataRepresentation, ContextService<MicroserviceCredentials> contextService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
callForTenant(String tenant, Callable<T> runnable)
Invokes runnable in context of subscribed tenant.Collection<MicroserviceCredentials>
getAll()
Gets current microservice subscriptions' credentialsOptional<MicroserviceCredentials>
getCredentials(String tenant)
Gets microservice credentials of the given tenantString
getTenant()
Returns current tenant.boolean
isRegisteredSuccessfully()
void
listen(MicroserviceSubscriptionsServiceImpl.MicroserviceChangedListener listener)
<T> void
listen(Class<T> clazz, MicroserviceSubscriptionsServiceImpl.MicroserviceChangedListener<T> listener)
void
runForEachTenant(Runnable runnable)
Invokes runnable in context of all subscribed tenants.void
runForTenant(String tenant, Runnable runnable)
Invokes runnable in context of subscribed tenant.void
subscribe()
Fetches microservice subscriptions and emits MicroserviceSubscriptionRemovedEvent, MicroserviceSubscriptionAddedEvent to the MicroserviceChangedListener listeners
-
-
-
Constructor Detail
-
MicroserviceSubscriptionsServiceImpl
@Autowired public MicroserviceSubscriptionsServiceImpl(PlatformProperties properties, org.springframework.context.ApplicationEventPublisher eventPublisher, MicroserviceSubscriptionsRepository repository, MicroserviceMetadataRepresentation microserviceMetadataRepresentation, ContextService<MicroserviceCredentials> contextService)
-
-
Method Detail
-
listen
public void listen(MicroserviceSubscriptionsServiceImpl.MicroserviceChangedListener listener)
-
listen
public <T> void listen(Class<T> clazz, MicroserviceSubscriptionsServiceImpl.MicroserviceChangedListener<T> listener)
-
subscribe
public void subscribe()
Description copied from interface:MicroserviceSubscriptionsService
Fetches microservice subscriptions and emits MicroserviceSubscriptionRemovedEvent, MicroserviceSubscriptionAddedEvent to the MicroserviceChangedListener listenersIf a listener throws exception during event execution, the event is created again in the next call to the method.
- Specified by:
subscribe
in interfaceMicroserviceSubscriptionsService
-
getAll
public Collection<MicroserviceCredentials> getAll()
Description copied from interface:MicroserviceSubscriptionsService
Gets current microservice subscriptions' credentials- Specified by:
getAll
in interfaceMicroserviceSubscriptionsService
- Returns:
- collection of microservice credentials
-
getCredentials
public Optional<MicroserviceCredentials> getCredentials(String tenant)
Description copied from interface:MicroserviceSubscriptionsService
Gets microservice credentials of the given tenant- Specified by:
getCredentials
in interfaceMicroserviceSubscriptionsService
- Parameters:
tenant
- tenant id- Returns:
Optional.of
microservice credentials if tenant is found in current subscriptions;Optional.<MicroserviceCredentials>empty()
otherwise
-
getTenant
public String getTenant()
Description copied from interface:MicroserviceSubscriptionsService
Returns current tenant.- Specified by:
getTenant
in interfaceMicroserviceSubscriptionsService
- Returns:
- current tenant id
-
runForEachTenant
public void runForEachTenant(Runnable runnable)
Description copied from interface:MicroserviceSubscriptionsService
Invokes runnable in context of all subscribed tenants.- Specified by:
runForEachTenant
in interfaceMicroserviceSubscriptionsService
- Parameters:
runnable
- runnable to execute
-
runForTenant
public void runForTenant(String tenant, Runnable runnable)
Description copied from interface:MicroserviceSubscriptionsService
Invokes runnable in context of subscribed tenant.- Specified by:
runForTenant
in interfaceMicroserviceSubscriptionsService
- Parameters:
tenant
- tenant idrunnable
- runnable to execute
-
callForTenant
public <T> T callForTenant(String tenant, Callable<T> runnable)
Description copied from interface:MicroserviceSubscriptionsService
Invokes runnable in context of subscribed tenant.- Specified by:
callForTenant
in interfaceMicroserviceSubscriptionsService
- Type Parameters:
T
- generic type of expected result object- Parameters:
tenant
- tenant idrunnable
- callable to execute- Returns:
- result object
-
isRegisteredSuccessfully
public boolean isRegisteredSuccessfully()
- Specified by:
isRegisteredSuccessfully
in interfaceMicroserviceSubscriptionsService
-
-