Class DefaultSynchronyEvictionDao

java.lang.Object
com.atlassian.confluence.pages.persistence.dao.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 Details

    • DefaultSynchronyEvictionDao

      public DefaultSynchronyEvictionDao(org.hibernate.SessionFactory sessionFactory)
  • Method Details

    • findSafeContentWithHistoryOlderThan

      public List<Long> findSafeContentWithHistoryOlderThan(int synchronyThresholdHours, int draftThresholdHours, int limit)
      Description copied from interface: SynchronyEvictionDao
      Get at most content ids from synchrony tables, for each all events are older than hours from now. Also, check that last modification day of the draft is at least . 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 content ids from synchrony events table, for each at least one event is older than 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 content ids from synchrony snapshot table, for each at least one event is older than hours from now.
      Specified by:
      findContentWithAnySnapshotOlderThan in interface SynchronyEvictionDao
    • removeAllSynchronyDataFor

      public int removeAllSynchronyDataFor(Collection<Long> contentIds)
      Description copied from interface: SynchronyEvictionDao
      Remove all synchrony data matching
      Specified by:
      removeAllSynchronyDataFor in interface SynchronyEvictionDao
      Returns:
      actual number of rows removed from the DB
    • getEventsCount

      public long getEventsCount(Long contentId)
      Specified by:
      getEventsCount in interface SynchronyEvictionDao
      Returns:
      if 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 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.
    • removeApplicationIds

      public int removeApplicationIds(Collection<String> applicationIds)
      Specified by:
      removeApplicationIds in interface SynchronyEvictionDao
    • removeContentProperties

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