Package com.atlassian.jira.versioning
Class EntityVersioningManagerWithStats
java.lang.Object
com.atlassian.jira.versioning.EntityVersioningManagerWithStats
- All Implemented Interfaces:
EntityVersioningManager
-
Field Summary
Fields inherited from interface com.atlassian.jira.versioning.EntityVersioningManager
NO_OP_ENTITY_VERSION
-
Constructor Summary
ConstructorsConstructorDescriptionEntityVersioningManagerWithStats
(VersioningDaoFactory factory, TransactionSupport transactionSupport, com.atlassian.event.api.EventPublisher eventPublisher) -
Method Summary
Modifier and TypeMethodDescriptionlong
Removes all entity version records (issues, comments, & worklogs) for entites marked as deleted and older thanduration
.findEntityVersionsUpdatedInTheLast
(IndexDirectoryFactory.Name indexName, Duration duration) Looks up all the entities whose version changed during the lastduration
amount of time.getCommentEntityVersion
(long commentId) Return the comment version for the comment identified byissueId
,Optional.empty()
if there is no version orEntityVersioningManager.NO_OP_ENTITY_VERSION
an implementation not using a real data source is used.getCommentVersion
(long commentId) Return the comment version for the comment identified bycommentId
orOptional.empty()
if there is no version.getIssueEntityVersion
(long issueId) Return the issue version for the issue identified byissueId
,Optional.empty()
if there is no version orEntityVersioningManager.NO_OP_ENTITY_VERSION
an implementation not using a real data source is used.getIssueVersion
(long issueId) Return the issue version for the issue identified byissueId
orOptional.empty()
if there is no version.getLatestEntityUpdate
(IndexDirectoryFactory.Name indexName) Looks up the Version & related info for the most recently modified entity version.getLocalVersions
(Set<Long> entityIds, IndexDirectoryFactory.Name indexName) Returns the corresponding entity version from the specified local lucene index for each of the ids passed in withentityIds
in the form of a map of ids to versions.getRelatedCommentVersions
(long parentIssueId) Return the comment versions for for all comments associated with the specifiedparentIssueId
.getRelatedWorklogVersions
(long parentIssueId) Return the worklog versions for for all worklogs associated with the specifiedparentIssueId
.getWorklogEntityVersion
(long worklogId) Return the worklog version for the worklog identified byissueId
,Optional.empty()
if there is no version orEntityVersioningManager.NO_OP_ENTITY_VERSION
an implementation not using a real data source is used.getWorklogVersion
(long worklogId) Return the worklog version for the worklog identified byworklogId
orOptional.empty()
if there is no version.void
incrementCommentVersion
(long commentId, long parentIssueId) Increments the version number for the specified comment.void
incrementIssueVersion
(long issueId) Increments the version number for the specified issue.void
incrementRelatedCommentVersions
(long parentIssueId) Bumps the versions for all comments associated with the specifiedparentIssueId
.void
incrementRelatedWorklogVersions
(long parentIssueId) Bumps the versions for all worklogs associated with the specifiedparentIssueId
.void
incrementWorklogVersion
(long worklogId, long parentIssueId) Increments the version number for the specified worklog.void
markCommentDeletedAndIncrementVersion
(long commentId) Marks the specified comment as deleted and bumps its version by 1.void
markIssueDeletedAndIncrementVersion
(long issueId) Marks the specified issue and all its related comments and worklogs as deleted bumps their versions by 1.void
markWorklogDeletedAndIncrementVersion
(long worklogId) Marks the specified worklog as deleted and bumps its version by 1.void
onPluginFrameworkShutdown
(com.atlassian.plugin.event.events.PluginFrameworkShutdownEvent event) void
onPluginFrameworkStarted
(com.atlassian.plugin.event.events.PluginFrameworkStartedEvent event)
-
Constructor Details
-
EntityVersioningManagerWithStats
public EntityVersioningManagerWithStats(VersioningDaoFactory factory, TransactionSupport transactionSupport, com.atlassian.event.api.EventPublisher eventPublisher)
-
-
Method Details
-
onPluginFrameworkStarted
@EventListener public void onPluginFrameworkStarted(com.atlassian.plugin.event.events.PluginFrameworkStartedEvent event) -
onPluginFrameworkShutdown
@EventListener public void onPluginFrameworkShutdown(com.atlassian.plugin.event.events.PluginFrameworkShutdownEvent event) -
incrementIssueVersion
Description copied from interface:EntityVersioningManager
Increments the version number for the specified issue. If a version number doesn't exist, one is created.- Specified by:
incrementIssueVersion
in interfaceEntityVersioningManager
- Parameters:
issueId
- identifier for the issue whose version should be bumped- Throws:
IncrementDeletedEntityVersionException
- ifissueId
is related to an issue version which is marked as deleted
-
incrementCommentVersion
public void incrementCommentVersion(long commentId, long parentIssueId) throws IncrementDeletedEntityVersionException Description copied from interface:EntityVersioningManager
Increments the version number for the specified comment. If a version number doesn't exist, one is created.- Specified by:
incrementCommentVersion
in interfaceEntityVersioningManager
- Parameters:
commentId
- identifier for the comment whose version should be bumpedparentIssueId
- identifier for theIssue
that the comment belongs to- Throws:
IncrementDeletedEntityVersionException
- ifcommentId
is related to a deleted comment version which is marked as deleted
-
incrementWorklogVersion
public void incrementWorklogVersion(long worklogId, long parentIssueId) throws IncrementDeletedEntityVersionException Description copied from interface:EntityVersioningManager
Increments the version number for the specified worklog. If a version number doesn't exist, one is created.- Specified by:
incrementWorklogVersion
in interfaceEntityVersioningManager
- Parameters:
worklogId
- identifier for the worklog whose version should be bumpedparentIssueId
- identifier for theIssue
that the worklog belongs to- Throws:
IncrementDeletedEntityVersionException
- ifworklogId
is related to a deleted worklog version which is marked as deleted
-
incrementRelatedCommentVersions
public void incrementRelatedCommentVersions(long parentIssueId) Description copied from interface:EntityVersioningManager
Bumps the versions for all comments associated with the specifiedparentIssueId
. If there isn't a version record associated with a given comment, it will be added.- Specified by:
incrementRelatedCommentVersions
in interfaceEntityVersioningManager
- Parameters:
parentIssueId
- identifier for the Issue whose comments will be bumped.
-
incrementRelatedWorklogVersions
public void incrementRelatedWorklogVersions(long parentIssueId) Description copied from interface:EntityVersioningManager
Bumps the versions for all worklogs associated with the specifiedparentIssueId
. If there isn't a version record associated with a given worklog, it will be added.- Specified by:
incrementRelatedWorklogVersions
in interfaceEntityVersioningManager
- Parameters:
parentIssueId
- identifier for the Issue whose worklogs will be bumped.
-
markIssueDeletedAndIncrementVersion
public void markIssueDeletedAndIncrementVersion(long issueId) Description copied from interface:EntityVersioningManager
Marks the specified issue and all its related comments and worklogs as deleted bumps their versions by 1.- Specified by:
markIssueDeletedAndIncrementVersion
in interfaceEntityVersioningManager
- Parameters:
issueId
- identifier for issue and all its related comments and worklogs to mark as deleted & whose version number to bump
-
markCommentDeletedAndIncrementVersion
public void markCommentDeletedAndIncrementVersion(long commentId) Description copied from interface:EntityVersioningManager
Marks the specified comment as deleted and bumps its version by 1.- Specified by:
markCommentDeletedAndIncrementVersion
in interfaceEntityVersioningManager
- Parameters:
commentId
- identifier for comment to mark as deleted & whose version number to bump
-
markWorklogDeletedAndIncrementVersion
public void markWorklogDeletedAndIncrementVersion(long worklogId) Description copied from interface:EntityVersioningManager
Marks the specified worklog as deleted and bumps its version by 1.- Specified by:
markWorklogDeletedAndIncrementVersion
in interfaceEntityVersioningManager
- Parameters:
worklogId
- identifier for worklog to mark as deleted & whose version number to bump
-
getIssueVersion
Description copied from interface:EntityVersioningManager
Return the issue version for the issue identified byissueId
orOptional.empty()
if there is no version.- Specified by:
getIssueVersion
in interfaceEntityVersioningManager
- Parameters:
issueId
- identifies the issue whose current version will be retrieved- Returns:
- An optional containing the current version for the specified issue; an empty optional if no version is found.
-
getIssueEntityVersion
Description copied from interface:EntityVersioningManager
Return the issue version for the issue identified byissueId
,Optional.empty()
if there is no version orEntityVersioningManager.NO_OP_ENTITY_VERSION
an implementation not using a real data source is used.- Specified by:
getIssueEntityVersion
in interfaceEntityVersioningManager
- Parameters:
issueId
- identifies the issue whose current version will be retrieved- Returns:
- An optional containing the current version for the specified issue; an empty optional if no version is found;
EntityVersioningManager.NO_OP_ENTITY_VERSION
if an implementation not using a real data source is used.
-
getCommentVersion
Description copied from interface:EntityVersioningManager
Return the comment version for the comment identified bycommentId
orOptional.empty()
if there is no version.- Specified by:
getCommentVersion
in interfaceEntityVersioningManager
- Parameters:
commentId
- identifies the comment whose current version will be retrieved- Returns:
- An optional containing the current version for the specified comment; an empty optional if no version is found.
-
getCommentEntityVersion
Description copied from interface:EntityVersioningManager
Return the comment version for the comment identified byissueId
,Optional.empty()
if there is no version orEntityVersioningManager.NO_OP_ENTITY_VERSION
an implementation not using a real data source is used.- Specified by:
getCommentEntityVersion
in interfaceEntityVersioningManager
- Parameters:
commentId
- identifies the comment whose current version will be retrieved- Returns:
- An optional containing the current version for the specified comment; an empty optional if no version is found;
EntityVersioningManager.NO_OP_ENTITY_VERSION
if an implementation not using a real data source is used.
-
getWorklogVersion
Description copied from interface:EntityVersioningManager
Return the worklog version for the worklog identified byworklogId
orOptional.empty()
if there is no version.- Specified by:
getWorklogVersion
in interfaceEntityVersioningManager
- Parameters:
worklogId
- identifies the worklog whose current version will be retrieved- Returns:
- An optional containing the current version for the specified worklog; an empty optional if no version is found.
-
getWorklogEntityVersion
Description copied from interface:EntityVersioningManager
Return the worklog version for the worklog identified byissueId
,Optional.empty()
if there is no version orEntityVersioningManager.NO_OP_ENTITY_VERSION
an implementation not using a real data source is used.- Specified by:
getWorklogEntityVersion
in interfaceEntityVersioningManager
- Parameters:
worklogId
- identifies the worklog whose current version will be retrieved- Returns:
- An optional containing the current version for the specified worklog; an empty optional if no version is found;
EntityVersioningManager.NO_OP_ENTITY_VERSION
if an implementation not using a real data source is used.
-
getRelatedCommentVersions
Description copied from interface:EntityVersioningManager
Return the comment versions for for all comments associated with the specifiedparentIssueId
.- Specified by:
getRelatedCommentVersions
in interfaceEntityVersioningManager
- Parameters:
parentIssueId
- identifier for the Issue whose comments will be retrieved- Returns:
- A map from commentId to comment version; an empty map if no version is found (because no version exists/no comment exists/issue doesn't exist).
-
getRelatedWorklogVersions
Description copied from interface:EntityVersioningManager
Return the worklog versions for for all worklogs associated with the specifiedparentIssueId
.- Specified by:
getRelatedWorklogVersions
in interfaceEntityVersioningManager
- Parameters:
parentIssueId
- identifier for the Issue whose worklogs will be retrieved- Returns:
- A map from worklogId to worklog version; an empty map if no version is found (because no version exists/no worklog exists/issue doesn't exist).
-
getLocalVersions
public Map<Long,Optional<Long>> getLocalVersions(Set<Long> entityIds, IndexDirectoryFactory.Name indexName) throws IOException Description copied from interface:EntityVersioningManager
Returns the corresponding entity version from the specified local lucene index for each of the ids passed in withentityIds
in the form of a map of ids to versions. Which local index to retrieve the versions from is determined byindexName
.- Specified by:
getLocalVersions
in interfaceEntityVersioningManager
- Parameters:
entityIds
- Set of entity ids whose versions we want to look up in the local index referred to byindexName
indexName
- Specifies which local Lucene index the versions should be retrieved from- Returns:
- A mapping of entity ids to their corresponding versions. The version-values are wrapped in
Optional
s, with empty values for versions that were not found. - Throws:
IOException
- if an I/O problem arises when searching the target lucene index
-
cleanAllDeletedEntityVersionsOlderThan
Description copied from interface:EntityVersioningManager
Removes all entity version records (issues, comments, & worklogs) for entites marked as deleted and older thanduration
.- Specified by:
cleanAllDeletedEntityVersionsOlderThan
in interfaceEntityVersioningManager
- Parameters:
duration
- threshold for deletion; entries marked as deleted and older than this will be removed.- Returns:
- the number of entity version entries that were removed
-
findEntityVersionsUpdatedInTheLast
public List<EntityVersion> findEntityVersionsUpdatedInTheLast(IndexDirectoryFactory.Name indexName, Duration duration) Description copied from interface:EntityVersioningManager
Looks up all the entities whose version changed during the lastduration
amount of time. A data object containing the entity's id, version, whether or not it was deleted, etc. is returned for every entity-version modified since the duration.- Specified by:
findEntityVersionsUpdatedInTheLast
in interfaceEntityVersioningManager
- Parameters:
indexName
- which type of entity to get the updated versions forduration
- how far back in time to look for entity versions that have been updated- Returns:
- data objects that bundle id, version, delete status, etc.
-
getLatestEntityUpdate
Description copied from interface:EntityVersioningManager
Looks up the Version & related info for the most recently modified entity version. Deleted entity versions are also considered as part of this calculation.- Specified by:
getLatestEntityUpdate
in interfaceEntityVersioningManager
- Parameters:
indexName
- which type of entity to get the latest update for- Returns:
- An Optional wrapping the most recent update for any entity version or an empty Optional if no versions are present.
-