Package com.atlassian.jira.user
Class CachingUserHistoryStore
java.lang.Object
com.atlassian.jira.user.CachingUserHistoryStore
- All Implemented Interfaces:
UserHistoryStore
Caching implementation of
UserHistoryStore
.
This is very broken, but no more broken than any of the other caches.- Since:
- v4.0
-
Constructor Summary
ConstructorsConstructorDescriptionCachingUserHistoryStore
(OfBizUserHistoryStore delegatingStore, ApplicationProperties applicationProperties, com.atlassian.cache.CacheManager cacheManager) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addHistoryItem
(ApplicationUser user, UserHistoryItem historyItem) Add a history item to the database.getHistory
(UserHistoryItem.Type type, ApplicationUser user) Retrieve the history for a given user/type.getHistory
(UserHistoryItem.Type type, String userKey) Retrieve the history for a given user/type.static int
getMaxItems
(UserHistoryItem.Type type, ApplicationProperties applicationProperties) void
onClearCache
(ClearCacheEvent event) void
onComponentManagerShutdown
(ComponentManagerShutdownEvent shutdownEvent) void
onComponentManagerStarted
(ComponentManagerStartedEvent startedEvent) Schedules the cache cleanup task.void
Remove all history items for a given user.void
removeHistoryOlderThan
(Long timestamp) Method for removing old user history items.
-
Constructor Details
-
CachingUserHistoryStore
public CachingUserHistoryStore(@Nonnull OfBizUserHistoryStore delegatingStore, @Nonnull ApplicationProperties applicationProperties, @Nonnull com.atlassian.cache.CacheManager cacheManager)
-
-
Method Details
-
onComponentManagerStarted
Schedules the cache cleanup task. -
onComponentManagerShutdown
-
onClearCache
-
onUserHistoryItemFKChangedEvent
-
addHistoryItem
Description copied from interface:UserHistoryStore
Add a history item to the database. This removes the currently referred to entity (user, type, id) from the list and then adds it. If adding it causes the history items stored for that user/type to exceed the max (jira.max.history.items) items allowed, it should remove the oldest items.- Specified by:
addHistoryItem
in interfaceUserHistoryStore
- Parameters:
user
- The user to store the history item againsthistoryItem
- the item to store. Containing a timestamp and referenced entity
-
getHistory
@Nonnull public List<UserHistoryItem> getHistory(@Nonnull UserHistoryItem.Type type, @Nonnull String userKey) Description copied from interface:UserHistoryStore
Retrieve the history for a given user/type.- Specified by:
getHistory
in interfaceUserHistoryStore
- Parameters:
type
- The type of entity to retrieve history for.userKey
- The key of the user to retrieve history for.- Returns:
- a list containing all stored history items for the passed in user/type.
-
getHistory
@Nonnull public List<UserHistoryItem> getHistory(@Nonnull UserHistoryItem.Type type, @Nonnull ApplicationUser user) Description copied from interface:UserHistoryStore
Retrieve the history for a given user/type.- Specified by:
getHistory
in interfaceUserHistoryStore
- Parameters:
type
- The type of entity to retrieve history for.user
- The user to retrieve history for.- Returns:
- a list containing all stored history items for the passed in user/type.
-
removeHistoryForUser
Description copied from interface:UserHistoryStore
Remove all history items for a given user.- Specified by:
removeHistoryForUser
in interfaceUserHistoryStore
- Parameters:
user
- The user to remove all history of.- Returns:
- The set of history types that were removed;
-
removeHistoryOlderThan
Description copied from interface:UserHistoryStore
Method for removing old user history items. Removes elements older than provided timestamp, but not younger than 30 days.- Specified by:
removeHistoryOlderThan
in interfaceUserHistoryStore
- Parameters:
timestamp
- remove elements older than this timestamp
-
getMaxItems
public static int getMaxItems(UserHistoryItem.Type type, ApplicationProperties applicationProperties)
-