Class DefaultSynchronyEvictionDao

  • All Implemented Interfaces:
    SynchronyEvictionDao

    public class DefaultSynchronyEvictionDao
    extends Object
    implements SynchronyEvictionDao
    Runs operations on synchrony tables (EVENTS, SNAPSHOTS) and Confluence <-> Synchrony mapping in content properties
    Since:
    7.0.0
    • Constructor Detail

      • DefaultSynchronyEvictionDao

        public DefaultSynchronyEvictionDao​(org.hibernate.SessionFactory sessionFactory)
    • Method Detail

      • findSafeContentWithHistoryOlderThan

        public List<Long> findSafeContentWithHistoryOlderThan​(int synchronyThresholdHours,
                                                              int draftThresholdHours,
                                                              int limit)
        Description copied from interface: SynchronyEvictionDao
        Get at most {@param limit} content ids from synchrony tables, for each all events are older than {@param synchronyThresholdHours} hours from now. Also, check that last modification day of the draft is at least {@param draftThresholdHours}. This is important to ensure that nobody has the editor open with this content right now.
        Specified by:
        findSafeContentWithHistoryOlderThan in interface SynchronyEvictionDao
      • findContentWithAnyEventOlderThan

        public List<Long> findContentWithAnyEventOlderThan​(int eventThresholdHours,
                                                           int limit)
        Description copied from interface: SynchronyEvictionDao
        Get at most {@param limit} content ids from synchrony events table, for each at least one event is older than {@param eventThresholdHours} hours from now.
        Specified by:
        findContentWithAnyEventOlderThan in interface SynchronyEvictionDao
      • findContentWithAnySnapshotOlderThan

        public List<Long> findContentWithAnySnapshotOlderThan​(int snapshotThresholdHours,
                                                              int limit)
        Description copied from interface: SynchronyEvictionDao
        Get at most {@param limit} content ids from synchrony snapshot table, for each at least one event is older than {@param snapshotThresholdHours} hours from now.
        Specified by:
        findContentWithAnySnapshotOlderThan in interface SynchronyEvictionDao
      • getEventsCount

        public long getEventsCount​(Long contentId)
        Specified by:
        getEventsCount in interface SynchronyEvictionDao
        Returns:
        if {@param contentId} is not null, returns the number of Synchrony event rows related to the entity. Otherwise returns the total number of Synchrony events in the DB.
      • getSnapshotsCount

        public long getSnapshotsCount​(Long contentId)
        Specified by:
        getSnapshotsCount in interface SynchronyEvictionDao
        Returns:
        if {@param contentId} is not null, returns the number of Synchrony snapshot rows related to the entity. Otherwise returns the total number of Synchrony snapshots in the DB.
      • removeContentProperties

        public void removeContentProperties()
                                     throws javax.persistence.PersistenceException
        Specified by:
        removeContentProperties in interface SynchronyEvictionDao
        Throws:
        javax.persistence.PersistenceException