public interface

CommitIndexer

com.atlassian.bitbucket.idx.CommitIndexer

Class Overview

Describes an indexer to be notified when commits are added to or removed from a repository.

CommitIndexer implementations must be thread-safe, because the same instance will be used for multiple indexing operations in parallel. Any state that needs to be stored during an indexing run should be stored in the provided IndexingContext.

Note: The same IndexingContext is shared between all CommitIndexers that are enabled for a given repository. Implementations should be careful of what they store in it and what names they use for properties they add to manage memory consumption and avoid collisions with other indexers.

Summary

Public Methods
@Nonnull String getId()
boolean isEnabledForRepository(Repository repository)
void onAfterIndexing(IndexingContext context)
Called after the last commit has been processed to allow the indexer to perform any cleanup it needs.
void onBeforeIndexing(IndexingContext context)
Called before the first commit is processed to allow the indexer to perform any setup it needs.
void onCommitAdded(Commit commit, IndexingContext context)
Called for each new commit that is added to the repository.
void onCommitRemoved(Commit commit, IndexingContext context)
Called for each existing commit that is removed from the repository.

Public Methods

@Nonnull public String getId ()

Returns
  • the ID for the indexer, used by the system to keep track of which commits this indexer has seen

public boolean isEnabledForRepository (Repository repository)

Parameters
repository the repository
Returns
  • true if the indexer should index commits for the specified repository; otherwise, false

public void onAfterIndexing (IndexingContext context)

Called after the last commit has been processed to allow the indexer to perform any cleanup it needs.

Parameters
context the indexing context

public void onBeforeIndexing (IndexingContext context)

Called before the first commit is processed to allow the indexer to perform any setup it needs.

Parameters
context the indexing context

public void onCommitAdded (Commit commit, IndexingContext context)

Called for each new commit that is added to the repository.

Important: This method will only be called once for a commit during an indexing run, but may be called multiple times for the same commit across different indexing runs. When new CommitIndexers are enabled, all of the commits that have been added since the last time any CommitIndexer ran will be passed to all indexers.

Parameters
commit the added commit
context the indexing context

public void onCommitRemoved (Commit commit, IndexingContext context)

Called for each existing commit that is removed from the repository.

Important: This method will only be called once for a commit during an indexing run, but may be called multiple times for the same commit across different indexing runs. When new CommitIndexers are enabled, all of the commits that have been removed since the last time any CommitIndexer ran will be passed to all indexers.

Parameters
commit the removed commit
context the indexing context