Class MergedIndexingContext

java.lang.Object
org.apache.maven.index.context.AbstractIndexingContext
org.apache.maven.index.context.MergedIndexingContext
All Implemented Interfaces:
IndexingContext

public class MergedIndexingContext extends AbstractIndexingContext
A merged indexing context that offers read only "view" on multiple other indexing contexts merged and presented as one. Usable for searching and publishing, but all write operations are basically noop.
Author:
cstamas
  • Constructor Details

  • Method Details

    • getMembers

      public Collection<IndexingContext> getMembers()
    • getId

      public String getId()
      Description copied from interface: IndexingContext
      Returns this indexing context id.
    • getRepositoryId

      public String getRepositoryId()
      Description copied from interface: IndexingContext
      Returns repository id.
    • getRepository

      public File getRepository()
      Description copied from interface: IndexingContext
      Returns location for the local repository.
    • getRepositoryUrl

      public String getRepositoryUrl()
      Description copied from interface: IndexingContext
      Returns public repository url.
    • getIndexUpdateUrl

      public String getIndexUpdateUrl()
      Description copied from interface: IndexingContext
      Returns url for the index update
    • isSearchable

      public boolean isSearchable()
      Description copied from interface: IndexingContext
      Is the context searchable when doing "non-targeted" searches? Ie. Should it take a part when searching without specifying context?
      Returns:
    • setSearchable

      public void setSearchable(boolean searchable)
      Description copied from interface: IndexingContext
      Sets is the context searchable when doing "non-targeted" searches.
    • getTimestamp

      public Date getTimestamp()
      Description copied from interface: IndexingContext
      Returns index update time
    • updateTimestamp

      public void updateTimestamp() throws IOException
      Throws:
      IOException
    • updateTimestamp

      public void updateTimestamp(boolean save) throws IOException
      Throws:
      IOException
    • updateTimestamp

      public void updateTimestamp(boolean save, Date date) throws IOException
      Throws:
      IOException
    • getSize

      public int getSize() throws IOException
      Description copied from interface: IndexingContext
      Returns a number that represents the "size" useful for doing comparisons between contexts (which one has more data indexed?). The number return does not represent the count of ArtifactInfos, neither other "meaningful" info, it is purely to be used for inter-context comparisons only!
      Returns:
      Throws:
      IOException
    • acquireIndexSearcher

      public org.apache.lucene.search.IndexSearcher acquireIndexSearcher() throws IOException
      Description copied from interface: IndexingContext
      Acquires a fresh instance of IndexSearcher. You have to release the received instance with IndexingContext.releaseIndexSearcher(IndexSearcher) otherwise you are about to introduce leak.
      Returns:
      Throws:
      IOException
    • releaseIndexSearcher

      public void releaseIndexSearcher(org.apache.lucene.search.IndexSearcher indexSearcher) throws IOException
      Description copied from interface: IndexingContext
      Releases the IndexSearcher instance.
      Throws:
      IOException
    • getIndexWriter

      public org.apache.lucene.index.IndexWriter getIndexWriter() throws IOException
      Description copied from interface: IndexingContext
      Returns the Lucene IndexWriter (thread safe, shared instance) of this context.
      Returns:
      indexWriter
      Throws:
      IOException
    • getIndexCreators

      public List<IndexCreator> getIndexCreators()
      Description copied from interface: IndexingContext
      List of IndexCreators used in this context.
      Returns:
      list of index creators.
    • getAnalyzer

      public org.apache.lucene.analysis.Analyzer getAnalyzer()
      Description copied from interface: IndexingContext
      Returns the Lucene Analyzer of this context used for by IndexWriter and IndexSearcher. Note: this method always creates a new instance of analyzer!
      Returns:
    • commit

      public void commit() throws IOException
      Description copied from interface: IndexingContext
      Commits changes to context, eventually refreshing readers/searchers too.
      Throws:
      IOException
    • rollback

      public void rollback() throws IOException
      Description copied from interface: IndexingContext
      Rolls back changes to context, eventually refreshing readers/searchers too.
      Throws:
      IOException
    • optimize

      public void optimize() throws IOException
      Description copied from interface: IndexingContext
      Optimizes index. According to Lucene 3.6+ Javadoc, there is no more sense to optimize, so this method might become "noop".
      Throws:
      IOException
    • close

      public void close(boolean deleteFiles) throws IOException
      Description copied from interface: IndexingContext
      Shuts down this context.
      Throws:
      IOException
    • purge

      public void purge() throws IOException
      Description copied from interface: IndexingContext
      Purge (cleans) the context, deletes/empties the index and restores the context to new/empty state.
      Throws:
      IOException
    • merge

      public void merge(org.apache.lucene.store.Directory directory) throws IOException
      Description copied from interface: IndexingContext
      Merges content of given Lucene directory with this context.
      Parameters:
      directory - - the directory to merge
      Throws:
      IOException
    • merge

      public void merge(org.apache.lucene.store.Directory directory, DocumentFilter filter) throws IOException
      Description copied from interface: IndexingContext
      Merges content of given Lucene directory with this context, but filters out the unwanted ones.
      Parameters:
      directory - - the directory to merge
      Throws:
      IOException
    • merge

      public void merge(org.apache.lucene.store.Directory directory, DocumentFilter filter, Set<String> allGroups, Set<String> rootGroups) throws IOException
      Description copied from interface: IndexingContext
      Merges content of given Lucene directory with this context, but filters out the unwanted ones and adds the groups to the context.
      Parameters:
      directory - - the directory to merge
      Throws:
      IOException
    • replace

      public void replace(org.apache.lucene.store.Directory directory) throws IOException
      Description copied from interface: IndexingContext
      Replaces the Lucene index with the one from supplied directory.
      Throws:
      IOException
    • replace

      public void replace(org.apache.lucene.store.Directory directory, Set<String> allGroups, Set<String> rootGroups) throws IOException
      Throws:
      IOException
    • getIndexDirectory

      public org.apache.lucene.store.Directory getIndexDirectory()
    • getIndexDirectoryFile

      public File getIndexDirectoryFile()
    • setIndexDirectoryFile

      protected void setIndexDirectoryFile(File dir) throws IOException
      Sets index location. As usually index is persistent (is on disk), this will point to that value, but in some circumstances (ie, using RAMDisk for index), this will point to an existing tmp directory.
      Throws:
      IOException
    • getGavCalculator

      public GavCalculator getGavCalculator()
      Description copied from interface: IndexingContext
      Returns the GavCalculator for this Context. Implies repository layout.
    • setAllGroups

      public void setAllGroups(Collection<String> groups) throws IOException
      Description copied from interface: IndexingContext
      Sets all group names stored in the current indexing context
      Throws:
      IOException
    • getAllGroups

      public Set<String> getAllGroups() throws IOException
      Description copied from interface: IndexingContext
      Gets all group names stored in the current indexing context
      Throws:
      IOException
    • setRootGroups

      public void setRootGroups(Collection<String> groups) throws IOException
      Description copied from interface: IndexingContext
      Sets root group names stored in the current indexing context
      Throws:
      IOException
    • getRootGroups

      public Set<String> getRootGroups() throws IOException
      Description copied from interface: IndexingContext
      Gets root group names stored in the current indexing context
      Throws:
      IOException
    • rebuildGroups

      public void rebuildGroups() throws IOException
      Description copied from interface: IndexingContext
      Rebuilds stored group names from the index
      Throws:
      IOException