Class SubscriptionImpl

  • All Implemented Interfaces:
    Serializable, Comparable<SubscriptionImpl>, Subscription

    public class SubscriptionImpl
    extends DbItem<SubscriptionImpl>
    implements Subscription
    Represents a subscription for the synch engine.

    A subscription has 2 connections, one for each end of the subscription. We will refer to these as endA and endB.

    Each connection has a kind which is a name used to retrieve a connector from the synch engine. The retrieved connector implements the Connector interface. This connector object can then be used to retrieve a ConnectionInst implementation which uses information stored in a serializable object to obtain connection specific properties such as id and password.

    These properties are obtained by presenting the user with a list of required properties and then encrypting and storing the response. The serialized result is stored as a field in the subscription.

    Connections are either polling or notify. Polling means that the host will be polled to see if anything has changed. Notify means that the subscription will be activated when the system is notified of a change.

    Connections are also resynch only - that is the far end does not support fetching of individual items but must be completely resynched each time, or the support the full synch feature set.

    Resynch connections support relatively simple protocols or file synch.

    The full feature connections are used for bedework, Exchange etc.

    Skip Lists

    A skip list allows the diffing process to skip properties that are not to be considered, for example lastmod. We create a skip list from 3 lists;
    • one for each end of the subscription. This marks properties used exclusively by that end, for example x-properties.
    • One for the middle which might skip properties we want to ignore such as alarms

    An empty list means exactly that, no skip properties. A null list means the default diff skip list - probably more useful.

    Author:
    Mike Douglass
    See Also:
    Serialized Form