Class Delegate

java.lang.Object
org.apache.uima.aae.delegate.Delegate
Direct Known Subclasses:
ClientServiceDelegate, ControllerDelegate

public abstract class Delegate extends Object
  • Field Details

  • Constructor Details

    • Delegate

      public Delegate()
  • Method Details

    • getNotificationEndpoint

      public Endpoint getNotificationEndpoint()
    • setNotificationEndpoint

      public void setNotificationEndpoint(Endpoint notificationEndpoint)
    • isAwaitingPingReply

      public boolean isAwaitingPingReply()
    • setAwaitingPingReply

      public void setAwaitingPingReply()
    • resetAwaitingPingReply

      public void resetAwaitingPingReply()
    • getKey

      public String getKey()
      Returns delegate key
      Returns:
    • setEndpoint

      public void setEndpoint(Endpoint anEndpoint)
      Sets an Endpoint object
      Parameters:
      anEndpoint - - an endpoint object
    • getEndpoint

      public Endpoint getEndpoint()
      Returns an Endpoint object
      Returns:
    • restartTimerForOldestCasInOutstandingList

      public void restartTimerForOldestCasInOutstandingList()
      Forces Timer restart for the oldest CAS sitting in the list of CASes pending reply.
    • getDelegateCasesPendingReply

      public List<Delegate.DelegateEntry> getDelegateCasesPendingReply()
    • getDelegateCasesPendingDispatch

      public List<Delegate.DelegateEntry> getDelegateCasesPendingDispatch()
    • addNewCasToOutstandingList

      public void addNewCasToOutstandingList(String aCasReferenceId)
    • addNewCasToOutstandingList

      public void addNewCasToOutstandingList(String aCasReferenceId, boolean isCasGeneratingChildren)
    • addCasToOutstandingList

      public void addCasToOutstandingList(String aCasReferenceId)
      Adds a given Cas ID to the list of CASes pending reply. A new timer will be started to handle delegate's timeout if either: 1) the list of CASes pending reply is empty AND delegate timeout > 0 2) the list already contains the CAS ID AND delegate timeout > 0. This is a retry logic.
      Parameters:
      aCasReferenceId - - CAS ID to add to pending list if not already there
    • addCasToPendingDispatchList

      public int addCasToPendingDispatchList(String aCasReferenceId)
      Adds given CAS ID to the list of CASes pending dispatch. These CASes are delayed due to a questionable state of the delegate that most likely timed out on a previous CAS. When the timeout occurs, the subsequent CASes are queued (delayed) and a GetMeta request is sent to the delegate. When the delegate responds to GetMeta request, the state of the delegate is reset back to normal and the CASes queued (delayed) are immediately send to the delegate.
      Parameters:
      aCasReferenceId - - CAS ID to add to the delayed list
    • incrementRetryCount

      public void incrementRetryCount(String aCasReferenceId)
      Increments retry count
      Parameters:
      aCasReferenceId -
    • removeOldestFromPendingDispatchList

      public String removeOldestFromPendingDispatchList()
      Removes the oldest entry from the list of CASes pending dispatch. A CAS is delayed and placed on this list when the delegate status changes to TIMED_OUT and a PING message is sent to test delegate availability. Until the PING message is acked by the delegate OR the PING times out, all CASes are delayed. When the PING is acked by the delegate ALL delayed CASes are sent to the delegate one at a time.
      Returns:
      - ID of the oldest CAS in the list
    • removeCasFromPendingDispatchList

      public boolean removeCasFromPendingDispatchList(String aCasReferenceId)
      Removes an entry from the list of CASes pending dispatch that matches a given CAS Id.A CAS is delayed and placed on this list when the delegate status changes to TIMED_OUT and a PING message is sent to test delegate availability. Until the PING message is acked by the delegate OR the PING times out, all CASes are delayed. When the PING is acked by the delegate ALL delayed CASes are sent to the delegate one at a time.
      Returns:
      - ID of the oldest CAS in the list
    • removeCasFromOutstandingList

      public boolean removeCasFromOutstandingList(String aCasReferenceId)
      Removes Delegate.DelegateEntry from the list of CASes pending reply. The entry is removed when either: 1) reply is received from the delegate before the timeout 2) the timeout occurs with no retry 3) an error occurs and the CAS is dropped as part of Error Handling
      Parameters:
      aCasReferenceId - - id of the CAS to remove from the list
    • removeOldestCasFromOutstandingList

      public String removeOldestCasFromOutstandingList()
      Removes Delegate.DelegateEntry from the list of CASes pending reply. The entry is removed when either: 1) reply is received from the delegate before the timeout 2) the timeout occurs with no retry 3) an error occurs and the CAS is dropped as part of Error Handling
      Parameters:
      aCasReferenceId - - id of the CAS to remove from the list
    • getOldestCasIdFromOutstandingList

      public String getOldestCasIdFromOutstandingList()
    • cleanup

      public void cleanup()
      Cancels timer and clears a list of CASes pending reply
    • getCasPendingReplyListSize

      public int getCasPendingReplyListSize()
    • getCasPendingDispatchListSize

      public int getCasPendingDispatchListSize()
    • cancelDelegateTimer

      public void cancelDelegateTimer()
      Cancels current timer
    • startGetMetaRequestTimer

      public void startGetMetaRequestTimer()
      Starts GetMeta Request timer
    • getCasProcessTimeout

      public long getCasProcessTimeout()
    • setCasProcessTimeout

      public void setCasProcessTimeout(long casProcessTimeout)
    • getGetMetaTimeout

      public long getGetMetaTimeout()
    • setGetMetaTimeout

      public void setGetMetaTimeout(long getMetaTimeout)
    • getCpcTimeout

      public long getCpcTimeout()
    • setCpcTimeout

      public void setCpcTimeout(long cpcTimeout)
    • getState

      public int getState()
    • setState

      public void setState(int aState)
    • setConcurrentConsumersOnReplyQueue

      public void setConcurrentConsumersOnReplyQueue()
    • hasConcurrentConsumersOnReplyQueue

      public boolean hasConcurrentConsumersOnReplyQueue()
    • isGeneratingChildrenFrom

      public boolean isGeneratingChildrenFrom(String aCasReferenceId)
    • setGeneratingChildrenFrom

      public void setGeneratingChildrenFrom(String aCasReferenceId, boolean tOf)
    • handleError

      public abstract void handleError(Exception e, ErrorContext errorContext)
    • getComponentName

      public abstract String getComponentName()
    • toString

      public String toString()
      Overrides:
      toString in class Object