Class AuditChangeFinder

java.lang.Object
org.nuxeo.drive.service.impl.AuditChangeFinder
All Implemented Interfaces:
FileSystemChangeFinder
Direct Known Subclasses:
ESAuditChangeFinder, MongoDBAuditChangeFinder

public class AuditChangeFinder extends Object implements FileSystemChangeFinder
Implementation of FileSystemChangeFinder using the AuditReader.
Author:
Antoine Taillefer
  • Field Details

  • Constructor Details

    • AuditChangeFinder

      public AuditChangeFinder()
  • Method Details

    • handleParameters

      public void handleParameters(Map<String,String> parameters)
      Description copied from interface: FileSystemChangeFinder
      Handles the parameters contributed through the changeFinder contribution.
      Specified by:
      handleParameters in interface FileSystemChangeFinder
    • getFileSystemChanges

      public List<FileSystemItemChange> getFileSystemChanges(CoreSession session, Set<IdRef> lastActiveRootRefs, SynchronizationRoots activeRoots, Set<String> collectionSyncRootMemberIds, long lowerBound, long upperBound, int limit)
      Description copied from interface: FileSystemChangeFinder
      Gets the changes in the repository against which the given session is bound for the given synchronization root paths, between the given lower and upper integer bounds and without exceeding the given limit. The change summaries are mapped back to the file system view: the file system items might not always have the same tree layout as the backing documents in the repositories but this is a back-end detail that the client does not have to deal with.
      Specified by:
      getFileSystemChanges in interface FileSystemChangeFinder
      Parameters:
      session - the session bound to a specific repository
      lastActiveRootRefs - docrefs of the roots as reported by the last successful synchronization (can be empty or null)
      activeRoots - the currently active synchronization roots
      collectionSyncRootMemberIds - the collection sync root member ids
      lowerBound - the lower integer bound of the range clause in the change query
      upperBound - the upper integer bound of the range clause in the change query. This id is typically obtained by calling FileSystemChangeFinder.getUpperBound()
      limit - the maximum number of changes to fetch
      Returns:
      the list of document changes
    • getUpperBound

      public long getUpperBound()
      Returns the last available log id in the audit log table (primary key) to be used as the upper bound of the event log id range clause in the change query.
      Specified by:
      getUpperBound in interface FileSystemChangeFinder
    • queryAuditEntries

      protected List<LogEntry> queryAuditEntries(CoreSession session, SynchronizationRoots activeRoots, Set<String> collectionSyncRootMemberIds, long lowerBound, long upperBound, int limit)
    • getCurrentRootFilteringClause

      protected String getCurrentRootFilteringClause(Set<String> rootPaths, Map<String,Object> params)
    • getCollectionSyncRootFilteringClause

      protected String getCollectionSyncRootFilteringClause(Set<String> collectionSyncRootMemberIds, Map<String,Object> params)
    • getJPARangeClause

      protected String getJPARangeClause(long lowerBound, long upperBound, Map<String,Object> params)
      Using event log id to ensure consistency, see https://jira.nuxeo.com/browse/NXP-14826.
    • getFileSystemItemChange

      protected FileSystemItemChange getFileSystemItemChange(CoreSession session, DocumentRef docRef, LogEntry entry, String expectedFileSystemItemId)