Class EntityStoreAuditService

java.lang.Object
org.apache.nifi.admin.service.EntityStoreAuditService
All Implemented Interfaces:
Closeable, AutoCloseable, AuditService

public class EntityStoreAuditService extends Object implements AuditService, Closeable
Audit Service implementation based on JetBrains Xodus Entity Store
  • Field Details

    • FIRST_START_TIME

      private static final long FIRST_START_TIME
      See Also:
    • PREVIOUS_VALUES_LIMIT

      private static final int PREVIOUS_VALUES_LIMIT
      See Also:
    • ASCENDING_SORT_ORDER

      private static final String ASCENDING_SORT_ORDER
      See Also:
    • DEFAULT_COUNT

      private static final int DEFAULT_COUNT
      See Also:
    • BACKUP_FILE_NAME_FORMAT

      private static final String BACKUP_FILE_NAME_FORMAT
      See Also:
    • logger

      private static final org.slf4j.Logger logger
    • entityStore

      private final jetbrains.exodus.entitystore.PersistentEntityStore entityStore
    • environment

      private final jetbrains.exodus.env.Environment environment
  • Constructor Details

    • EntityStoreAuditService

      public EntityStoreAuditService(File directory)
      Entity Store Audit Service constructor with required properties for persistent location
      Parameters:
      directory - Persistent Entity Store directory
  • Method Details

    • addActions

      public void addActions(Collection<Action> actions)
      Add Actions to Persistent Store
      Specified by:
      addActions in interface AuditService
      Parameters:
      actions - Collections of Actions to be added
    • getPreviousValues

      public Map<String,List<PreviousValue>> getPreviousValues(String componentId)
      Get Previous Values for specified Component Identifier
      Specified by:
      getPreviousValues in interface AuditService
      Parameters:
      componentId - Component Identifier for which previous property values should be retrieved
      Returns:
      Map of Property Name to List of Previous Property Values
    • deletePreviousValues

      public void deletePreviousValues(String propertyName, String componentId)
      Delete Previous Values for specified Component Identifier and Property
      Specified by:
      deletePreviousValues in interface AuditService
      Parameters:
      propertyName - Name of the property for which Previous Values should be deleted
      componentId - Component Identifier for which Previous Values should be deleted
    • getActions

      public History getActions(HistoryQuery actionQuery)
      Get Actions based on query parameters
      Specified by:
      getActions in interface AuditService
      Parameters:
      actionQuery - History Action Query
      Returns:
      Actions found
    • getActions

      public History getActions(int firstActionId, int maxActions)
      Get Actions starting with indicated Action Identifier
      Specified by:
      getActions in interface AuditService
      Parameters:
      firstActionId - First Action Identifier
      maxActions - Maximum number of Actions to be returned
      Returns:
      Actions found
    • getAction

      public Action getAction(Integer actionId)
      Get Action for specified identifier
      Specified by:
      getAction in interface AuditService
      Parameters:
      actionId - Action Identifier
      Returns:
      Action or null when not found
    • purgeActions

      public void purgeActions(Date end, Action purgeAction)
      Purge Actions from Persistent Entity Store clearing existing records and creating Purge Action
      Specified by:
      purgeActions in interface AuditService
      Parameters:
      end - End time for purge action query
      purgeAction - Purge Action to be recorded
    • close

      public void close() throws IOException
      Close Persistent Entity Store resources
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException - Thrown on failures to close Entity Store
    • findActionEntities

      private jetbrains.exodus.entitystore.EntityIterable findActionEntities(HistoryQuery actionQuery, jetbrains.exodus.entitystore.StoreTransaction storeTransaction)
    • isAscending

      private boolean isAscending(HistoryQuery historyQuery)
    • getSortEntityProperty

      private ActionEntity getSortEntityProperty(HistoryQuery historyQuery)
    • addAction

      private void addAction(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, Action action)
    • addComponentDetails

      private void addComponentDetails(jetbrains.exodus.entitystore.Entity actionEntity, ComponentDetails componentDetails)
    • addActionDetails

      private void addActionDetails(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, ActionDetails actionDetails)
    • addConnectDetails

      private void addConnectDetails(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, ConnectDetails connectDetails)
    • addMoveDetails

      private void addMoveDetails(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, MoveDetails moveDetails)
    • addConfigureDetails

      private void addConfigureDetails(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, ConfigureDetails configureDetails)
    • addPurgeDetails

      private void addPurgeDetails(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, PurgeDetails purgeDetails)
    • readAction

      private Action readAction(jetbrains.exodus.entitystore.Entity entity)
    • getConfigureDetails

      private ConfigureDetails getConfigureDetails(jetbrains.exodus.entitystore.Entity configureDetailsEntity)
    • getConnectDetails

      private ConnectDetails getConnectDetails(jetbrains.exodus.entitystore.Entity connectDetailsEntity)
    • getMoveDetails

      private MoveDetails getMoveDetails(jetbrains.exodus.entitystore.Entity moveDetailsEntity)
    • getProperty

      private String getProperty(jetbrains.exodus.entitystore.Entity entity, EntityProperty entityProperty)
    • getEnumProperty

      private <T extends Enum<T>> T getEnumProperty(jetbrains.exodus.entitystore.Entity entity, EntityProperty entityProperty, Class<T> enumType)
    • getDateProperty

      private Date getDateProperty(jetbrains.exodus.entitystore.Entity entity, EntityProperty entityProperty)
    • loadEnvironment

      private jetbrains.exodus.env.Environment loadEnvironment(File directory)