Package org.apache.nifi.admin.service
Class EntityStoreAuditService
java.lang.Object
org.apache.nifi.admin.service.EntityStoreAuditService
- All Implemented Interfaces:
Closeable
,AutoCloseable
,AuditService
Audit Service implementation based on JetBrains Xodus Entity Store
-
Field Summary
Modifier and TypeFieldDescriptionprivate static final String
private static final String
private static final int
private final jetbrains.exodus.entitystore.PersistentEntityStore
private final jetbrains.exodus.env.Environment
private static final long
private static final org.slf4j.Logger
private static final int
-
Constructor Summary
ConstructorDescriptionEntityStoreAuditService
(File directory) Entity Store Audit Service constructor with required properties for persistent location -
Method Summary
Modifier and TypeMethodDescriptionprivate void
private void
addActionDetails
(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, ActionDetails actionDetails) void
addActions
(Collection<Action> actions) Add Actions to Persistent Storeprivate void
addComponentDetails
(jetbrains.exodus.entitystore.Entity actionEntity, ComponentDetails componentDetails) private void
addConfigureDetails
(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, ConfigureDetails configureDetails) private void
addConnectDetails
(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, ConnectDetails connectDetails) private void
addMoveDetails
(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, MoveDetails moveDetails) private void
addPurgeDetails
(jetbrains.exodus.entitystore.StoreTransaction storeTransaction, jetbrains.exodus.entitystore.Entity actionEntity, PurgeDetails purgeDetails) void
close()
Close Persistent Entity Store resourcesvoid
deletePreviousValues
(String propertyName, String componentId) Delete Previous Values for specified Component Identifier and Propertyprivate jetbrains.exodus.entitystore.EntityIterable
findActionEntities
(HistoryQuery actionQuery, jetbrains.exodus.entitystore.StoreTransaction storeTransaction) Get Action for specified identifiergetActions
(int firstActionId, int maxActions) Get Actions starting with indicated Action IdentifiergetActions
(HistoryQuery actionQuery) Get Actions based on query parametersprivate ConfigureDetails
getConfigureDetails
(jetbrains.exodus.entitystore.Entity configureDetailsEntity) private ConnectDetails
getConnectDetails
(jetbrains.exodus.entitystore.Entity connectDetailsEntity) private Date
getDateProperty
(jetbrains.exodus.entitystore.Entity entity, EntityProperty entityProperty) private <T extends Enum<T>>
TgetEnumProperty
(jetbrains.exodus.entitystore.Entity entity, EntityProperty entityProperty, Class<T> enumType) private MoveDetails
getMoveDetails
(jetbrains.exodus.entitystore.Entity moveDetailsEntity) getPreviousValues
(String componentId) Get Previous Values for specified Component Identifierprivate String
getProperty
(jetbrains.exodus.entitystore.Entity entity, EntityProperty entityProperty) private ActionEntity
getSortEntityProperty
(HistoryQuery historyQuery) private boolean
isAscending
(HistoryQuery historyQuery) private jetbrains.exodus.env.Environment
loadEnvironment
(File directory) void
purgeActions
(Date end, Action purgeAction) Purge Actions from Persistent Entity Store clearing existing records and creating Purge Actionprivate Action
readAction
(jetbrains.exodus.entitystore.Entity entity)
-
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
- See Also:
-
DEFAULT_COUNT
private static final int DEFAULT_COUNT- See Also:
-
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
Entity Store Audit Service constructor with required properties for persistent location- Parameters:
directory
- Persistent Entity Store directory
-
-
Method Details
-
addActions
Add Actions to Persistent Store- Specified by:
addActions
in interfaceAuditService
- Parameters:
actions
- Collections of Actions to be added
-
getPreviousValues
Get Previous Values for specified Component Identifier- Specified by:
getPreviousValues
in interfaceAuditService
- Parameters:
componentId
- Component Identifier for which previous property values should be retrieved- Returns:
- Map of Property Name to List of Previous Property Values
-
deletePreviousValues
Delete Previous Values for specified Component Identifier and Property- Specified by:
deletePreviousValues
in interfaceAuditService
- Parameters:
propertyName
- Name of the property for which Previous Values should be deletedcomponentId
- Component Identifier for which Previous Values should be deleted
-
getActions
Get Actions based on query parameters- Specified by:
getActions
in interfaceAuditService
- Parameters:
actionQuery
- History Action Query- Returns:
- Actions found
-
getActions
Get Actions starting with indicated Action Identifier- Specified by:
getActions
in interfaceAuditService
- Parameters:
firstActionId
- First Action IdentifiermaxActions
- Maximum number of Actions to be returned- Returns:
- Actions found
-
getAction
Get Action for specified identifier- Specified by:
getAction
in interfaceAuditService
- Parameters:
actionId
- Action Identifier- Returns:
- Action or null when not found
-
purgeActions
Purge Actions from Persistent Entity Store clearing existing records and creating Purge Action- Specified by:
purgeActions
in interfaceAuditService
- Parameters:
end
- End time for purge action querypurgeAction
- Purge Action to be recorded
-
close
Close Persistent Entity Store resources- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
- Thrown on failures to close Entity Store
-
findActionEntities
private jetbrains.exodus.entitystore.EntityIterable findActionEntities(HistoryQuery actionQuery, jetbrains.exodus.entitystore.StoreTransaction storeTransaction) -
isAscending
-
getSortEntityProperty
-
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
-
getConfigureDetails
private ConfigureDetails getConfigureDetails(jetbrains.exodus.entitystore.Entity configureDetailsEntity) -
getConnectDetails
-
getMoveDetails
-
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
-