Class DefaultAuditBackend

java.lang.Object
org.nuxeo.ecm.platform.audit.service.AbstractAuditBackend
org.nuxeo.ecm.platform.audit.service.DefaultAuditBackend
All Implemented Interfaces:
AuditAdmin, AuditLogger, AuditReader, AuditStorage, Logs, AuditBackend

public class DefaultAuditBackend extends AbstractAuditBackend
Contains the Hibernate based (legacy) implementation
Author:
tiry
  • Field Details

  • Constructor Details

  • Method Details

    • getApplicationStartedOrder

      public int getApplicationStartedOrder()
    • onApplicationStarted

      public void onApplicationStarted()
    • onApplicationStopped

      public void onApplicationStopped()
    • getOrCreatePersistenceProvider

      public PersistenceProvider getOrCreatePersistenceProvider()
    • activatePersistenceProvider

      protected void activatePersistenceProvider()
    • apply

      protected <T> T apply(boolean needActivateSession, Function<LogEntryProvider,T> function)
    • accept

      protected void accept(boolean needActivateSession, Consumer<LogEntryProvider> consumer)
    • addLogEntries

      public void addLogEntries(List<LogEntry> entries)
      Description copied from interface: AuditLogger
      Adds given log entries.
      Parameters:
      entries - the list of log entries.
    • getLogEntriesFor

      public List<LogEntry> getLogEntriesFor(String uuid, String repositoryId)
      Description copied from interface: AuditReader
      Returns the logs given a doc uuid and a repository id.
      Parameters:
      uuid - the document uuid
      repositoryId - the repository id
      Returns:
      a list of log entries
    • getLogEntryByID

      public LogEntry getLogEntryByID(long id)
      Description copied from interface: AuditReader
      Returns a given log entry given its id.
      Parameters:
      id - the log entry identifier
      Returns:
      a LogEntry instance
    • nativeQueryLogs

      public List<LogEntry> nativeQueryLogs(String whereClause, int pageNb, int pageSize)
      Description copied from interface: AuditReader
      Returns a batched list of log entries. WhereClause is a native where clause for the backend: here EJBQL 3.0 must be used if implementation of audit backend is JPA (< 7.3 or audit.elasticsearch.enabled=false) and JSON if implementation is Elasticsearch.
    • nativeQuery

      public List<?> nativeQuery(String query, int pageNb, int pageSize)
      Description copied from interface: AuditReader
      Returns a batched list of entries. query string is a native query clause for the backend : here EJBQL 3.0 must be used if implementation of audit backend is JPA (< 7.3 or audit.elasticsearch.enabled=false) and JSON if implementation is Elasticsearch.
    • nativeQuery

      public List<?> nativeQuery(String query, Map<String,Object> params, int pageNb, int pageSize)
      Description copied from interface: AuditReader
      Returns a batched list of entries.
      Parameters:
      query - a JPA query language query if implementation of audit backend is JPA (< 7.3 or audit.elasticsearch.enabled=false) and JSON if implementation is Elasticsearch
      params - parameters for the query
      pageNb - the page number (starts at 1)
      pageSize - the number of results per page
    • queryLogs

      public List<LogEntry> queryLogs(QueryBuilder builder)
      Description copied from interface: AuditReader
      Returns the logs given a collection of predicates and a default sort.
      Parameters:
      builder - the query builder to fetch log entries
      Returns:
      a list of log entries
    • queryLogs

      public List<LogEntry> queryLogs(String[] eventIds, String dateRange)
      Description copied from interface: AuditReader
      Returns the list of log entries.

      Note we will use NXQL in the future when the search engine will index history.

      Parameters:
      eventIds - the event ids.
      dateRange - a preset date range.
      Returns:
      a list of log entries.
      See Also:
    • queryLogsByPage

      public List<LogEntry> queryLogsByPage(String[] eventIds, Date limit, String[] category, String path, int pageNb, int pageSize)
      Specified by:
      queryLogsByPage in interface AuditReader
      Overrides:
      queryLogsByPage in class AbstractAuditBackend
    • syncLogCreationEntries

      public long syncLogCreationEntries(String repoId, String path, Boolean recurs)
      Description copied from interface: AuditAdmin
      Forces log Synchronisation for a branch of the repository. This can be useful to add the create entries if DB was initialized from a bulk import.
    • getEventsCount

      public Long getEventsCount(String eventId)
    • getLoggedEventIds

      public List<String> getLoggedEventIds()
    • newExtendedInfo

      public ExtendedInfo newExtendedInfo(Serializable value)
      Description copied from interface: AuditLogger
      Create a new ExtendedInfo instance
      Specified by:
      newExtendedInfo in interface AuditLogger
      Specified by:
      newExtendedInfo in class AbstractAuditBackend
    • getLatestLogId

      public long getLatestLogId(String repositoryId, String... eventIds)
      Description copied from interface: AuditReader
      Returns the latest log id matching events and repository or 0 when no match found.
      Specified by:
      getLatestLogId in interface AuditReader
      Overrides:
      getLatestLogId in class AbstractAuditBackend
    • getLogEntriesAfter

      public List<LogEntry> getLogEntriesAfter(long logIdOffset, int limit, String repositoryId, String... eventIds)
      Description copied from interface: AuditReader
      Returns up to limit log entries matching events and repository with log id greater or equal to logIdOffset.
      Specified by:
      getLogEntriesAfter in interface AuditReader
      Overrides:
      getLogEntriesAfter in class AbstractAuditBackend
    • getParamNames

      protected String getParamNames(String[] eventId)
    • getParams

      protected Map<String,Object> getParams(String[] eventId)
    • append

      public void append(List<String> jsonEntries)
    • scroll

      public ScrollResult<String> scroll(QueryBuilder builder, int batchSize, int keepAliveSeconds)
    • scroll

      public ScrollResult<String> scroll(String scrollId)