public class NexusIndexManager extends Object implements IndexManager, IMavenProjectChangedListener, IRepositoryIndexer
Modifier and Type | Field and Description |
---|---|
static int |
MIN_CLASS_QUERY_LENGTH |
LOCAL_INDEX, WORKSPACE_INDEX
Constructor and Description |
---|
NexusIndexManager(org.codehaus.plexus.PlexusContainer container,
IMavenProjectRegistry projectManager,
IRepositoryRegistry repositoryRegistry,
File stateDir) |
Modifier and Type | Method and Description |
---|---|
protected void |
addDocument(IRepository repository,
File file,
ArtifactKey key) |
void |
addIndexListener(IndexListener listener) |
org.apache.lucene.search.Query |
constructQuery(org.apache.maven.index.Field field,
SearchExpression query)
Method to construct Lucene Queries without need to actually know the structure and details (field names, analyze
details, etc) of the underlying index.
|
protected org.apache.maven.index.context.IndexingContext |
createIndexingContext(IRepository repository,
String details) |
protected void |
fireIndexAdded(IRepository repository) |
protected void |
fireIndexChanged(IRepository repository) |
protected void |
fireIndexRemoved(IRepository repository) |
protected void |
fireIndexUpdating(IRepository repository) |
IIndex |
getAllIndexes()
Returns index aggregating all indexes enabled for repositories defined in settings.xml
|
org.apache.maven.archetype.source.ArchetypeDataSource |
getArchetypeCatalog() |
org.apache.maven.index.ArtifactContextProducer |
getArtifactContextProducer() |
protected String |
getArtifactFileKey(String group,
String artifact,
String packageName,
String className) |
static String |
getDocumentKey(ArtifactKey artifact) |
IIndex |
getIndex(org.eclipse.core.resources.IProject project)
For Maven projects, returns index of all repositories configured for the project.
|
NexusIndex |
getIndex(IRepository repository) |
String |
getIndexDetails(IRepository repository)
For tests only
|
protected org.apache.lucene.store.Directory |
getIndexDirectory(IRepository repository) |
protected File |
getIndexDirectoryFile(IRepository repository) |
IndexedArtifactFile |
getIndexedArtifactFile(org.apache.maven.index.ArtifactInfo artifactInfo)
for Unit test
|
IndexedArtifactFile |
getIndexedArtifactFile(IRepository repository,
ArtifactKey gav)
for Unit test
|
org.apache.maven.index.NexusIndexer |
getIndexer() |
String |
getIndexerId() |
protected List<org.apache.maven.index.context.IndexCreator> |
getIndexers(String details) |
org.apache.maven.index.context.IndexingContext |
getIndexingContext(IRepository repository)
public for unit tests only!
|
org.apache.maven.index.updater.IndexUpdater |
getIndexUpdate() |
org.eclipse.core.runtime.jobs.Job |
getIndexUpdateJob()
for unit tests only
|
NexusIndex |
getLocalIndex() |
IndexedArtifactGroup[] |
getRootIndexedArtifactGroups(IRepository repository)
for unit tests
|
NexusIndex |
getWorkspaceIndex() |
IndexedArtifactFile |
identify(File file) |
protected org.apache.maven.index.ArtifactInfo |
identify(File artifact,
Collection<org.apache.maven.index.context.IndexingContext> contexts) |
protected IndexedArtifactFile |
identify(IRepository repository,
File file) |
void |
initialize(org.eclipse.core.runtime.IProgressMonitor monitor)
This method is called from a background thread which does not keep any workspace locks.
|
protected boolean |
isUpdatingIndex(IRepository repository) |
void |
mavenProjectChanged(MavenProjectChangedEvent[] events,
org.eclipse.core.runtime.IProgressMonitor monitor)
This method is called while holding workspace lock.
|
protected org.apache.maven.index.updater.IndexUpdateRequest |
newIndexUpdateRequest(IRepository repository,
org.apache.maven.index.context.IndexingContext context,
org.eclipse.core.runtime.IProgressMonitor monitor) |
protected void |
removeDocument(IRepository repository,
File file,
ArtifactKey key,
IMavenProjectFacade facade) |
void |
removeIndexListener(IndexListener listener) |
void |
repositoryAdded(IRepository repository,
org.eclipse.core.runtime.IProgressMonitor monitor)
Called by repository registry when new repository is added.
|
void |
repositoryRemoved(IRepository repository,
org.eclipse.core.runtime.IProgressMonitor monitor)
Called by repository registry when a repository is removed.
|
IndexedArtifactGroup |
resolveGroup(IndexedArtifactGroup group) |
protected void |
scheduleIndexUpdate(IRepository repository,
boolean force) |
protected Map<String,IndexedArtifact> |
search(IRepository repository,
org.apache.lucene.search.Query query) |
protected Map<String,IndexedArtifact> |
search(IRepository repository,
SearchExpression term,
String type) |
protected Map<String,IndexedArtifact> |
search(IRepository repository,
SearchExpression term,
String type,
int classifier) |
Map<String,IndexedArtifact> |
search(SearchExpression term,
String type) |
Map<String,IndexedArtifact> |
search(SearchExpression term,
String type,
int classifier) |
void |
setIndexDetails(IRepository repository,
String details,
org.eclipse.core.runtime.IProgressMonitor monitor)
Updates index synchronously if monitor!=null.
|
void |
updateIndex(IRepository repository,
boolean force,
org.eclipse.core.runtime.IProgressMonitor monitor) |
protected void |
writeIndexDetails() |
public static final int MIN_CLASS_QUERY_LENGTH
public NexusIndexManager(org.codehaus.plexus.PlexusContainer container, IMavenProjectRegistry projectManager, IRepositoryRegistry repositoryRegistry, File stateDir)
public IndexedArtifactFile getIndexedArtifactFile(IRepository repository, ArtifactKey gav) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public IndexedArtifactFile getIndexedArtifactFile(org.apache.maven.index.ArtifactInfo artifactInfo)
public IndexedArtifactFile identify(File file) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected IndexedArtifactFile identify(IRepository repository, File file) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public org.apache.lucene.search.Query constructQuery(org.apache.maven.index.Field field, SearchExpression query)
field
- query
- type
- public Map<String,IndexedArtifact> search(SearchExpression term, String type) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public Map<String,IndexedArtifact> search(SearchExpression term, String type, int classifier) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected Map<String,IndexedArtifact> search(IRepository repository, SearchExpression term, String type, int classifier) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected Map<String,IndexedArtifact> search(IRepository repository, SearchExpression term, String type) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected Map<String,IndexedArtifact> search(IRepository repository, org.apache.lucene.search.Query query) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected String getArtifactFileKey(String group, String artifact, String packageName, String className)
protected void addDocument(IRepository repository, File file, ArtifactKey key)
protected void removeDocument(IRepository repository, File file, ArtifactKey key, IMavenProjectFacade facade)
protected void scheduleIndexUpdate(IRepository repository, boolean force)
public IndexedArtifactGroup[] getRootIndexedArtifactGroups(IRepository repository) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public org.apache.maven.index.context.IndexingContext getIndexingContext(IRepository repository)
public org.apache.maven.index.NexusIndexer getIndexer()
public org.apache.maven.index.ArtifactContextProducer getArtifactContextProducer()
public static String getDocumentKey(ArtifactKey artifact)
public void mavenProjectChanged(MavenProjectChangedEvent[] events, org.eclipse.core.runtime.IProgressMonitor monitor)
IMavenProjectChangedListener
mavenProjectChanged
in interface IMavenProjectChangedListener
public NexusIndex getWorkspaceIndex()
getWorkspaceIndex
in interface IndexManager
public NexusIndex getLocalIndex()
getLocalIndex
in interface IndexManager
public IIndex getIndex(org.eclipse.core.resources.IProject project)
IndexManager
getIndex
in interface IndexManager
public IIndex getAllIndexes()
IndexManager
getAllIndexes
in interface IndexManager
public NexusIndex getIndex(IRepository repository)
protected File getIndexDirectoryFile(IRepository repository)
protected org.apache.lucene.store.Directory getIndexDirectory(IRepository repository) throws IOException
IOException
public IndexedArtifactGroup resolveGroup(IndexedArtifactGroup group)
public void repositoryAdded(IRepository repository, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
IRepositoryIndexer
repositoryAdded
in interface IRepositoryIndexer
org.eclipse.core.runtime.CoreException
public String getIndexDetails(IRepository repository)
public void setIndexDetails(IRepository repository, String details, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected org.apache.maven.index.context.IndexingContext createIndexingContext(IRepository repository, String details) throws IOException
IOException
public void repositoryRemoved(IRepository repository, org.eclipse.core.runtime.IProgressMonitor monitor)
IRepositoryIndexer
repositoryRemoved
in interface IRepositoryIndexer
protected void fireIndexAdded(IRepository repository)
protected void fireIndexRemoved(IRepository repository)
protected boolean isUpdatingIndex(IRepository repository)
protected void fireIndexUpdating(IRepository repository)
protected void fireIndexChanged(IRepository repository)
public void removeIndexListener(IndexListener listener)
removeIndexListener
in interface IndexManager
public void addIndexListener(IndexListener listener)
addIndexListener
in interface IndexManager
public void updateIndex(IRepository repository, boolean force, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
protected org.apache.maven.index.updater.IndexUpdateRequest newIndexUpdateRequest(IRepository repository, org.apache.maven.index.context.IndexingContext context, org.eclipse.core.runtime.IProgressMonitor monitor) throws IOException, org.eclipse.core.runtime.CoreException
IOException
org.eclipse.core.runtime.CoreException
public void initialize(org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
IRepositoryIndexer
initialize
in interface IRepositoryIndexer
org.eclipse.core.runtime.CoreException
protected void writeIndexDetails() throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public org.eclipse.core.runtime.jobs.Job getIndexUpdateJob()
public String getIndexerId()
getIndexerId
in interface IRepositoryIndexer
protected org.apache.maven.index.ArtifactInfo identify(File artifact, Collection<org.apache.maven.index.context.IndexingContext> contexts) throws IOException
IOException
public org.apache.maven.index.updater.IndexUpdater getIndexUpdate()
public org.apache.maven.archetype.source.ArchetypeDataSource getArchetypeCatalog()
Copyright © 2005–2015 Sonatype, Inc.. All rights reserved.