java.lang.Object
org.forgerock.openig.tools.notifications.ws.link.StableAmLink
All Implemented Interfaces:
AmLink, AmLinkListener, AmLinkListener.ResilientAmLinkListener

public class StableAmLink extends Object implements AmLink, AmLinkListener.ResilientAmLinkListener
Permits to use a AmLink even if not started or between disconnection and reconnection events.
  • Method Details

    • start

      public Promise<Void,Exception> start()
      Description copied from interface: AmLink
      Start the AmLink. The AmLink is considered ready for use only when the resulting promise has successfully completed. In case of a failed promise, the instance is considered as already closed.

      Note that notifications are guaranteed to be received AT LEAST once. Duplicate notification may occur.

      Specified by:
      start in interface AmLink
      Returns:
      A promise of this AmLink's start completion.
    • onReopen

      public void onReopen()
      Description copied from interface: AmLinkListener.ResilientAmLinkListener
      The handler to call on connection reopening. Can only be called after onDisconnection call, and will be called before any (un)subscribe promise completes.
      Specified by:
      onReopen in interface AmLinkListener.ResilientAmLinkListener
    • 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 interface AmLinkListener
    • onNotification

      public void onNotification(Notification notification)
      Description copied from interface: AmLinkListener
      The notification handler, will receive all notifications sent by AM. Duplicate notifications may occur.
      Specified by:
      onNotification in interface AmLinkListener
      Parameters:
      notification - the received notification
    • close

      public Promise<Void,Exception> close()
      Description copied from interface: AmLink
      Close the AmLink and its associated resources. The instance can't be reused afterward.
      Specified by:
      close in interface AmLink
      Returns:
      A promise indicating the AmLink has been closed
    • subscribe

      public Promise<Void,Exception> subscribe(String topic)
      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.
      Specified by:
      subscribe in interface AmLink
      Parameters:
      topic - The AM topic to subscribe to.
      Returns:
      A promise of a successful subscription to the AM topic.
    • unsubscribe

      public Promise<Void,Exception> unsubscribe(String topic)
      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 interface AmLink
      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(AmLink.ResilientAmLinkSupplier amLinkSupplier)
      Builds a supplier of StableAmLink.
      Parameters:
      amLinkSupplier - The AmLinkSupplier to use to set up the underlying AmLink
      Returns:
      a supplier of StableAmLink.