java.lang.Object
org.apache.sling.discovery.base.connectors.announcement.Announcement

public class Announcement extends Object
An announcement is the information exchanged by the topology connector and contains all clusters and instances which both the topology connector client and servlet see (in their part before joining the two worlds).

An announcement is exchanged in json format and carries a timeout.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
    Announcement(String ownerId, int protocolVersion)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addIncomingTopologyAnnouncement(Announcement incomingTopologyAnnouncement)
    adds an incoming announcement to this announcement
    Convert this announcement into json
    boolean
    Compare this Announcement with another one, ignoring the 'created' property - which gets added to the JSON object automatically due to SLING-3389 wire-backwards-compatibility - and backoffInterval introduced as part of SLING-3382
    fromJSON(String topologyAnnouncementJSON)
    Create an announcement form json
    long
    Gets the backoffInterval which the connector servlets passes back to the client to use as the next heartbeatInterval
    long
     
    Returns the slingid of the owner of this announcement.
    the key which is unique to this announcement
    int
    Returns the protocolVersion of this announcement
    long
     
    boolean
    gets the resetBackoff flag
    the information about the server where this announcement came from
    boolean
    check whether this is announcement contains the valid protocol version
    boolean
    Returns the inherited flag - if true this means that this announcement is the response of a topology connect
    boolean
    Returns the loop flag - set when this announcement represents a loop detected in the topology connectors
    boolean
    check whether this is a valid announcement, containing the minimal information
    Returns the list of instances that are contained in this announcement
    void
    persistTo(Resource announcementsResource)
    Persists this announcement using the given 'announcements' resource, under which a node with the primary key is created
    void
    registerPing(Announcement incomingAnnouncement)
     
    void
    Remove all announcements that match the given owner Id
    void
    setBackoffInterval(long backoffInterval)
    Sets the backoffInterval which the connector servlets passes back to the client to use as the next heartbeatInterval
    void
    setInherited(boolean inherited)
    set the inherited flag - if true this means this announcement is the response of a topology connect
    void
    sets the local clusterview
    void
    setLoop(boolean loop)
    Sets the loop falg - set true when this announcement should represent a loop detected in the topology connectors
    void
    setResetBackoff(boolean resetBackoff)
    sets the resetBackoff flag
    void
    setServerInfo(String serverInfo)
    sets the information about the server where this announcement came from
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Announcement

      public Announcement(String ownerId)
    • Announcement

      public Announcement(String ownerId, int protocolVersion)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isCorrectVersion

      public boolean isCorrectVersion()
      check whether this is announcement contains the valid protocol version
    • isValid

      public boolean isValid()
      check whether this is a valid announcement, containing the minimal information
    • setInherited

      public void setInherited(boolean inherited)
      set the inherited flag - if true this means this announcement is the response of a topology connect
    • isInherited

      public boolean isInherited()
      Returns the inherited flag - if true this means that this announcement is the response of a topology connect
    • setLoop

      public void setLoop(boolean loop)
      Sets the loop falg - set true when this announcement should represent a loop detected in the topology connectors
    • setBackoffInterval

      public void setBackoffInterval(long backoffInterval)
      Sets the backoffInterval which the connector servlets passes back to the client to use as the next heartbeatInterval
    • getBackoffInterval

      public long getBackoffInterval()
      Gets the backoffInterval which the connector servlets passes back to the client to use as the next heartbeatInterval
    • getOriginallyCreatedAt

      public long getOriginallyCreatedAt()
    • getReceivedAt

      public long getReceivedAt()
    • setResetBackoff

      public void setResetBackoff(boolean resetBackoff)
      sets the resetBackoff flag
    • getResetBackoff

      public boolean getResetBackoff()
      gets the resetBackoff flag
    • isLoop

      public boolean isLoop()
      Returns the loop flag - set when this announcement represents a loop detected in the topology connectors
    • getProtocolVersion

      public int getProtocolVersion()
      Returns the protocolVersion of this announcement
    • setServerInfo

      public void setServerInfo(String serverInfo)
      sets the information about the server where this announcement came from
    • getServerInfo

      public String getServerInfo()
      the information about the server where this announcement came from
    • getOwnerId

      public String getOwnerId()
      Returns the slingid of the owner of this announcement.

      The owner is the instance which initiated the topology connection

    • fromJSON

      public static Announcement fromJSON(String topologyAnnouncementJSON)
      Create an announcement form json
    • setLocalCluster

      public void setLocalCluster(ClusterView localCluster)
      sets the local clusterview
    • addIncomingTopologyAnnouncement

      public void addIncomingTopologyAnnouncement(Announcement incomingTopologyAnnouncement)
      adds an incoming announcement to this announcement
    • asJSON

      public String asJSON()
      Convert this announcement into json
    • getPrimaryKey

      public String getPrimaryKey()
      the key which is unique to this announcement
    • listInstances

      public Collection<InstanceDescription> listInstances()
      Returns the list of instances that are contained in this announcement
    • persistTo

      public void persistTo(Resource announcementsResource) throws PersistenceException
      Persists this announcement using the given 'announcements' resource, under which a node with the primary key is created
      Throws:
      PersistenceException
    • removeInherited

      public void removeInherited(String ownerId)
      Remove all announcements that match the given owner Id
    • correspondsTo

      public boolean correspondsTo(Announcement announcement)
      Compare this Announcement with another one, ignoring the 'created' property - which gets added to the JSON object automatically due to SLING-3389 wire-backwards-compatibility - and backoffInterval introduced as part of SLING-3382
    • registerPing

      public void registerPing(Announcement incomingAnnouncement)