Class RetryableAmLink
java.lang.Object
org.forgerock.openig.tools.notifications.ws.link.RetryableAmLink
- All Implemented Interfaces:
AmLink,AmLinkListener
Retry the
AmLink start according to criterion. This class is also responsible for getting the SSO token
needed by AM for WebSocket authentication and refreshing it upon authorization failure.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceA type helper to supply anAmLink.AmLinkSupplierfrom an SSO Token.Nested classes/interfaces inherited from interface org.forgerock.openig.tools.notifications.ws.link.AmLink
AmLink.AmLinkSupplier, AmLink.ResilientAmLinkSupplierNested classes/interfaces inherited from interface org.forgerock.openig.tools.notifications.ws.link.AmLinkListener
AmLinkListener.ResilientAmLinkListener -
Method Summary
Modifier and TypeMethodDescriptionstatic AmLink.AmLinkSupplierasInfiniteRetrySupplier(Duration delay, AsyncRefreshableSupplier<SsoToken, AuthenticationException> tokenProvider, RetryableAmLink.AmLinkSupplierFromToken amLinkSupplierFromToken, ScheduledExecutorService executor, org.forgerock.openig.tracing.TracingProvider tracingProvider) Builds a supplier ofRetryableAmLinkwithout any retry limit.static AmLink.AmLinkSupplierasSupplier(boolean stopOnSslFailure, int retryLimit, Duration delay, AsyncRefreshableSupplier<SsoToken, AuthenticationException> tokenProvider, RetryableAmLink.AmLinkSupplierFromToken amLinkSupplierFromToken, ScheduledExecutorService executor, org.forgerock.openig.tracing.TracingProvider tracingProvider) Builds a supplier ofRetryableAmLink.close()Close theAmLinkand its associated resources.voidThe handler to call in case of a disconnection.voidonNotification(Notification notification) The notification handler, will receive all notifications sent by AM.start()Start theAmLink.Subscribe to an AM topic.unsubscribe(String topic) Unsubscribe from an AM topic.
-
Method Details
-
start
Description copied from interface:AmLink -
close
Description copied from interface:AmLinkClose theAmLinkand its associated resources. The instance can't be reused afterward. -
subscribe
Description copied from interface:AmLinkSubscribe to an AM topic. After successful subscription, the notification consumer (supplied in will begin receiving notifications on this topic. -
unsubscribe
Description copied from interface:AmLinkUnsubscribe from an AM topic. After successful unsubscribe request, the notification consumer will stop receiving notifications on this topic.- Specified by:
unsubscribein interfaceAmLink- Parameters:
topic- The AM topic to un-subscribe from.- Returns:
- A promise of a successful un-subscription to the AM topic.
-
onDisconnection
public void onDisconnection()Description copied from interface:AmLinkListenerThe handler to call in case of a disconnection. When this handler is called, the instance is considered as closed. Can only be called after the start promise successful completion, and before every ongoing (un)subscribe promise failure.- Specified by:
onDisconnectionin interfaceAmLinkListener
-
onNotification
Description copied from interface:AmLinkListenerThe notification handler, will receive all notifications sent by AM. Duplicate notifications may occur.- Specified by:
onNotificationin interfaceAmLinkListener- Parameters:
notification- the received notification
-
asSupplier
public static AmLink.AmLinkSupplier asSupplier(boolean stopOnSslFailure, int retryLimit, Duration delay, AsyncRefreshableSupplier<SsoToken, AuthenticationException> tokenProvider, RetryableAmLink.AmLinkSupplierFromToken amLinkSupplierFromToken, ScheduledExecutorService executor, org.forgerock.openig.tracing.TracingProvider tracingProvider) Builds a supplier ofRetryableAmLink.- Parameters:
stopOnSslFailure- Whether the AmLink should retry or not on SSL FailureretryLimit- The maximum number of retriesdelay- The delay between retriestokenProvider- The Token provider to use to refresh tokensamLinkSupplierFromToken- A supplier of AmLinkSuppliers based on tokenexecutor- The ExecutorService to use to schedule retriestracingProvider- theTracingProviderto use when working with AM.- Returns:
- a supplier of
RetryableAmLink.
-
asInfiniteRetrySupplier
public static AmLink.AmLinkSupplier asInfiniteRetrySupplier(Duration delay, AsyncRefreshableSupplier<SsoToken, AuthenticationException> tokenProvider, RetryableAmLink.AmLinkSupplierFromToken amLinkSupplierFromToken, ScheduledExecutorService executor, org.forgerock.openig.tracing.TracingProvider tracingProvider) Builds a supplier ofRetryableAmLinkwithout any retry limit.- Parameters:
delay- The delay between retriestokenProvider- The Token provider to use to refresh tokensamLinkSupplierFromToken- A supplier of AmLinkSuppliers based on tokenexecutor- The ExecutorService to use to schedule retriestracingProvider- theTracingProviderto use when working with AM.- Returns:
- a supplier of
RetryableAmLink.
-