public class

DefaultIndexManager

extends Object
implements IssueIndexManager
java.lang.Object
   ↳ com.atlassian.jira.issue.index.DefaultIndexManager
Known Direct Subclasses

Summary

Constants
String COMMENTS_SUBDIR
String ISSUES_SUBDIR
String PLUGINS_SUBDIR
Fields
public static final Analyzer ANALYZER_FOR_INDEXING
public static final Analyzer ANALYZER_FOR_SEARCHING
[Expand]
Inherited Fields
From interface com.atlassian.jira.issue.index.IssueIndexManager
Public Constructors
DefaultIndexManager(IndexingConfiguration indexProperties, IssueIndexer issueIndexer, IndexPathManager indexPath, ReindexMessageManager reindexMessageManager, EventPublisher eventPublisher, ListenerManager listenerManager, ProjectManager projectManager, TaskManager taskManager, OfBizDelegator ofBizDelegator, ReplicatedIndexManager replicatedIndexManager)
Public Methods
long activate(Context context)
Activates search indexes.
void deIndex(GenericValue entity)
Remove an issue from the search index.
void deIndex(Issue issue)
Remove an issue from the search index.
void deIndexIssueObjects(Set<Issue> issuesToDelete, boolean updateReplicatedIndexStore)
Remove a set of issues from the search index.
void deactivate()
De-activates indexing (as happens from the admin page) and removes index directories.
static void flushThreadLocalSearchers()
Collection<String> getAllIndexPaths()
Analyzer getAnalyzerForIndexing()
Returns an Analyzer for indexing.
Analyzer getAnalyzerForSearching()
Returns an Analyzer for searching.
IndexSearcher getChangeHistorySearcher()
Get an IndexSearcher that can be used to search the change history index.
IndexSearcher getCommentSearcher()
Get an IndexSearcher that can be used to search the comment index.
List<String> getExistingPluginsPaths()
Returns a collection of Strings, each one representing the absolute path to the actual existing directory where a plugin keeps its indexes.
IndexSearcher getIssueSearcher()
Get an IndexSearcher that can be used to search the issue index.
String getPluginsRootPath()
Get the root path of the index directory for plugins.
void hold()
Temporarily suspend indexing on this thread.
boolean isEmpty()
boolean isHeld()
Return true if the index is held.
boolean isIndexConsistent()
boolean isIndexingEnabled()
long optimize()
Optimize the underlying indexes.
void reIndex(Issue issue)
Reindex an issue (eg.
void reIndex(Issue issue, boolean reIndexComments, boolean reIndexChangeHistory)
Reindex an issue (eg.
void reIndex(GenericValue issueGV)
Reindex an issue (eg.
long reIndexAll()
Reindex all issues.
long reIndexAll(Context context, boolean useBackgroundIndexing)
long reIndexAll(Context context, boolean useBackgroundIndexing, boolean updateReplicatedIndex)
Reindex all issues.
long reIndexAll(Context context)
Reindex everything.
long reIndexAllIssuesInBackground(Context context)
Reindex everything, but don't stop the world
long reIndexComments(Collection<Comment> comments)
Reindexes a collection of comments.
long reIndexComments(Collection<Comment> comments, Context context)
Reindexes a collection of comments.
long reIndexComments(Collection<Comment> comments, Context context, boolean updateReplicatedIndexStore)
Reindexes a collection of comments.
long reIndexIssueObjects(Collection<? extends Issue> issueObjects, boolean reIndexComments, boolean reIndexChangeHistory, boolean updateReplicatedIndexStore)
Reindex a set of issues.
long reIndexIssueObjects(Collection<? extends Issue> issueObjects)
Reindex a set of issues.
long reIndexIssueObjects(Collection<? extends Issue> issueObjects, boolean reIndexComments, boolean reIndexChangeHistory)
Reindex a set of issues.
long reIndexIssues(IssuesIterable issuesIterable, Context context, boolean reIndexComments, boolean reIndexChangeHistory)
Reindex a list of issues, passing an optional event that will be set progress.
long reIndexIssues(Collection<GenericValue> issues)
Reindex a set of issues (GenericValues).
long reIndexIssues(IssuesIterable issuesIterable, Context context)
Reindex a list of issues, passing an optional event that will be set progress
long release()
Release indexing on this thread.
void shutdown()
Shuts down the indexing manager and closes its resources (if any).
int size()
String toString()
Protected Methods
long reIndexIssues(Collection<GenericValue> issues, boolean reIndexComments, boolean reIndexChangeHistory)
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.issue.index.IssueIndexManager
From interface com.atlassian.jira.util.Shutdown
From interface com.atlassian.jira.util.collect.Sized
From interface com.atlassian.jira.util.index.IndexLifecycleManager

Constants

public static final String COMMENTS_SUBDIR

Constant Value: "comments"

public static final String ISSUES_SUBDIR

Constant Value: "issues"

public static final String PLUGINS_SUBDIR

Constant Value: "plugins"

Fields

public static final Analyzer ANALYZER_FOR_INDEXING

public static final Analyzer ANALYZER_FOR_SEARCHING

Public Constructors

public DefaultIndexManager (IndexingConfiguration indexProperties, IssueIndexer issueIndexer, IndexPathManager indexPath, ReindexMessageManager reindexMessageManager, EventPublisher eventPublisher, ListenerManager listenerManager, ProjectManager projectManager, TaskManager taskManager, OfBizDelegator ofBizDelegator, ReplicatedIndexManager replicatedIndexManager)

Public Methods

public long activate (Context context)

Activates search indexes.

Parameters
context used to report progress back to the user or to the logs. Must not be null.
Returns
  • Reindex time in ms

public void deIndex (GenericValue entity)

Remove an issue from the search index.

public void deIndex (Issue issue)

Remove an issue from the search index.

public void deIndexIssueObjects (Set<Issue> issuesToDelete, boolean updateReplicatedIndexStore)

Remove a set of issues from the search index.

public void deactivate ()

De-activates indexing (as happens from the admin page) and removes index directories.

public static void flushThreadLocalSearchers ()

public Collection<String> getAllIndexPaths ()

public Analyzer getAnalyzerForIndexing ()

Returns an Analyzer for indexing.

Returns
  • an analyzer for indexing.

public Analyzer getAnalyzerForSearching ()

Returns an Analyzer for searching.

Returns
  • an analyzer for searching

public IndexSearcher getChangeHistorySearcher ()

Get an IndexSearcher that can be used to search the change history index.

Note: This is an unmanaged IndexSearcher. You MUST call close() when you are done with it. Alternatively you should really call passing in CHANGE_HISTORY_INDEX as it is a managed searcher and all the closing semantics are handled for you.

public IndexSearcher getCommentSearcher ()

Get an IndexSearcher that can be used to search the comment index.

Note: This is an unmanaged IndexSearcher. You MUST call close() when you are done with it. Alternatively you should really call passing in COMMENT_INDEX as it is a managed searcher and all the closing semantics are handled for you.

public List<String> getExistingPluginsPaths ()

Returns a collection of Strings, each one representing the absolute path to the actual existing directory where a plugin keeps its indexes. Each directory in the collection should be a sub-directory under the plugin's index root path. See getPluginsRootPath().

If a plugin index root path does not exist, or is empty (no sub-directopries exist) then an empty collection will be returned.

public IndexSearcher getIssueSearcher ()

Get an IndexSearcher that can be used to search the issue index.

Note: This is an unmanaged IndexSearcher. You MUST call close() when you are done with it. Alternatively you should really call passing in ISSUE_INDEX as it is a managed searcher and all the closing semantics are handled for you.

public String getPluginsRootPath ()

Get the root path of the index directory for plugins. Any plugin that keeps indexes should create its own sub-directory under this path and create its indexes in its own sub-directory

public void hold ()

Temporarily suspend indexing on this thread. All index requests will be queued and processed when release is called.

public boolean isEmpty ()

public boolean isHeld ()

Return true if the index is held.

public boolean isIndexConsistent ()

public boolean isIndexingEnabled ()

public long optimize ()

Optimize the underlying indexes. Make the subsequent searching more efficient.

Returns
  • the amount of time in millis this method took (because you are too lazy to time me), 0 if indexing is not enabled or -1 if we cannot obtain the index writeLock.

public void reIndex (Issue issue)

Reindex an issue (eg. after field updates).

public void reIndex (Issue issue, boolean reIndexComments, boolean reIndexChangeHistory)

Reindex an issue (eg. after field updates).

public void reIndex (GenericValue issueGV)

Reindex an issue (eg. after field updates).

public long reIndexAll ()

Reindex all issues.

Returns
  • The number of milliseconds taken to reindex everything, or -1 if not indexing

public long reIndexAll (Context context, boolean useBackgroundIndexing)

public long reIndexAll (Context context, boolean useBackgroundIndexing, boolean updateReplicatedIndex)

Reindex all issues.

Parameters
context used to report progress back to the user or to the logs. Must not be null
useBackgroundIndexing whether to index in the background or not
updateReplicatedIndex whether to update the replicated index or not
Returns
  • Reindex time in ms.

public long reIndexAll (Context context)

Reindex everything.

Parameters
context used to report progress back to the user or to the logs. Must not be null.
Returns
  • Reindex time in ms.

public long reIndexAllIssuesInBackground (Context context)

Reindex everything, but don't stop the world

Parameters
context used to report progress back to the user or to the logs. Must not be null.
Returns
  • Reindex time in ms.

public long reIndexComments (Collection<Comment> comments)

Reindexes a collection of comments.

Parameters
comments a collection of Comment

public long reIndexComments (Collection<Comment> comments, Context context)

Reindexes a collection of comments.

Parameters
comments a collection of Comment
context used to report progress back to the user or to the logs. Must not be null.

public long reIndexComments (Collection<Comment> comments, Context context, boolean updateReplicatedIndexStore)

Reindexes a collection of comments.

Parameters
comments a collection of Comment
context used to report progress back to the user or to the logs. Must not be null.
updateReplicatedIndexStore whether to update the replicated index or not

public long reIndexIssueObjects (Collection<? extends Issue> issueObjects, boolean reIndexComments, boolean reIndexChangeHistory, boolean updateReplicatedIndexStore)

Reindex a set of issues.

Parameters
issueObjects Set of Issues to reindex.
reIndexComments whether to reindex the comments or not
reIndexChangeHistory whether to reindex changeHistory or not
updateReplicatedIndexStore whether to store index operations in the replicated index store
Returns
  • Reindex time in ms.

public long reIndexIssueObjects (Collection<? extends Issue> issueObjects)

Reindex a set of issues.

Parameters
issueObjects Set of Issues to reindex.
Returns
  • Reindex time in ms.

public long reIndexIssueObjects (Collection<? extends Issue> issueObjects, boolean reIndexComments, boolean reIndexChangeHistory)

Reindex a set of issues.

Parameters
issueObjects Set of Issues to reindex.
Returns
  • Reindex time in ms.

public long reIndexIssues (IssuesIterable issuesIterable, Context context, boolean reIndexComments, boolean reIndexChangeHistory)

Reindex a list of issues, passing an optional event that will be set progress. This method can optionally also index the comments and change history.

Parameters
issuesIterable IssuesIterable
context used to report progress back to the user or to the logs. Must not be null.
reIndexComments a boolean indicating whether to index issue comments
reIndexChangeHistory a boolean indicating whether to index issue change history
Returns
  • Reindex time in ms.

public long reIndexIssues (Collection<GenericValue> issues)

Reindex a set of issues (GenericValues). Use reIndexIssueObjects(Collection) instead when possible.

Parameters
issues The Issue GenericValues to reindex.
Returns
  • Reindex time in ms.

public long reIndexIssues (IssuesIterable issuesIterable, Context context)

Reindex a list of issues, passing an optional event that will be set progress

Parameters
issuesIterable IssuesIterable
context used to report progress back to the user or to the logs. Must not be null.
Returns
  • Reindex time in ms.

public long release ()

Release indexing on this thread. All queued index requests will be processed.

Returns
  • Reindex time in ms.

public void shutdown ()

Shuts down the indexing manager and closes its resources (if any).

public int size ()

public String toString ()

Protected Methods

protected long reIndexIssues (Collection<GenericValue> issues, boolean reIndexComments, boolean reIndexChangeHistory)