Class AutoReconnectAmLink
java.lang.Object
org.forgerock.openig.tools.notifications.ws.link.AutoReconnectAmLink
- All Implemented Interfaces:
AmLink
,AmLinkListener
Restart an
AmLink
automatically upon disconnection.
Subscriptions may be in progress when a disconnection occurs, then they will be replayed on the new link.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
A helper class to ease readability.Nested classes/interfaces inherited from interface org.forgerock.openig.tools.notifications.ws.link.AmLink
AmLink.AmLinkSupplier, AmLink.ResilientAmLinkSupplier
Nested classes/interfaces inherited from interface org.forgerock.openig.tools.notifications.ws.link.AmLinkListener
AmLinkListener.ResilientAmLinkListener
-
Method Summary
Modifier and TypeMethodDescriptionasSupplier
(Duration reconnectDelay, AmLink.AmLinkSupplier initialAmLinkSupplier, AutoReconnectAmLink.AmLinkSupplierFromTopics amLinkSupplier, ScheduledExecutorService executorService) Builds a supplier ofAutoReconnectAmLink
.close()
Close theAmLink
and its associated resources.void
The handler to call in case of a disconnection.void
onNotification
(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:AmLink
Close theAmLink
and its associated resources. The instance can't be reused afterward. -
onDisconnection
public void onDisconnection()Description copied from interface:AmLinkListener
The 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:
onDisconnection
in interfaceAmLinkListener
-
onNotification
Description copied from interface:AmLinkListener
The notification handler, will receive all notifications sent by AM. Duplicate notifications may occur.- Specified by:
onNotification
in interfaceAmLinkListener
- Parameters:
notification
- the received notification
-
subscribe
Description copied from interface:AmLink
Subscribe to an AM topic. After successful subscription, the notification consumer (supplied in will begin receiving notifications on this topic. -
unsubscribe
Description copied from interface:AmLink
Unsubscribe from an AM topic. After successful unsubscribe request, the notification consumer will stop receiving notifications on this topic.- Specified by:
unsubscribe
in interfaceAmLink
- Parameters:
topic
- The AM topic to un-subscribe from.- Returns:
- A promise of a successful un-subscription to the AM topic.
-
asSupplier
public static AmLink.ResilientAmLinkSupplier asSupplier(Duration reconnectDelay, AmLink.AmLinkSupplier initialAmLinkSupplier, AutoReconnectAmLink.AmLinkSupplierFromTopics amLinkSupplier, ScheduledExecutorService executorService) Builds a supplier ofAutoReconnectAmLink
.- Parameters:
reconnectDelay
- the delay to wait for reconnectinitialAmLinkSupplier
- A supplier of the first AmLink to use.amLinkSupplier
- A supplier of all subsequents AmLink to use.executorService
- the executorService to use to schedule tasks.- Returns:
- a supplier of
AutoReconnectAmLink
.
-