org.apache.maven.index.context
Class MergedIndexingContext

java.lang.Object
  extended by org.apache.maven.index.context.AbstractIndexingContext
      extended by 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

Field Summary
 
Fields inherited from interface org.apache.maven.index.context.IndexingContext
INDEX_CHAIN_ID, INDEX_CHUNK_COUNTER, INDEX_CHUNK_PREFIX, INDEX_FILE_PREFIX, INDEX_ID, INDEX_LEGACY_TIMESTAMP, INDEX_PACKER_PROPERTIES_FILE, INDEX_PROPERTY_PREFIX, INDEX_REMOTE_PROPERTIES_FILE, INDEX_TIME_DAY_FORMAT, INDEX_TIME_FORMAT, INDEX_TIMESTAMP, INDEX_UPDATER_PROPERTIES_FILE
 
Constructor Summary
MergedIndexingContext(String id, String repositoryId, File repository, org.apache.lucene.store.Directory indexDirectory, boolean searchable, ContextMemberProvider membersProvider)
           
MergedIndexingContext(String id, String repositoryId, File repository, File indexDirectoryFile, boolean searchable, ContextMemberProvider membersProvider)
           
 
Method Summary
 void close(boolean deleteFiles)
          Shuts down this context.
 void commit()
          Commits changes to context, eventually refreshing readers/searchers too.
 Set<String> getAllGroups()
          Gets all group names stored in the current indexing context
 org.apache.lucene.analysis.Analyzer getAnalyzer()
          Returns the Lucene Analyzer of this context used for by IndexWriter and IndexSearcher.
 GavCalculator getGavCalculator()
          Returns the GavCalculator for this Context.
 String getId()
          Returns this indexing context id.
 List<IndexCreator> getIndexCreators()
          List of IndexCreators used in this context.
 org.apache.lucene.store.Directory getIndexDirectory()
           
 File getIndexDirectoryFile()
           
 org.apache.lucene.index.IndexReader getIndexReader()
          Returns the Lucene IndexReader of this context.
 org.apache.lucene.search.IndexSearcher getIndexSearcher()
          Returns the Lucene IndexSearcher of this context.
 String getIndexUpdateUrl()
          Returns url for the index update
 org.apache.lucene.index.IndexWriter getIndexWriter()
          Returns the Lucene IndexWriter of this context.
 Collection<IndexingContext> getMembers()
           
 File getRepository()
          Returns location for the local repository.
 String getRepositoryId()
          Returns repository id.
 String getRepositoryUrl()
          Returns public repository url.
 Set<String> getRootGroups()
          Gets root group names stored in the current indexing context
 int getSize()
          Returns a number that represents the "size" useful for doing comparisons between contexts (which one has more data indexed?).
 Date getTimestamp()
          Returns index update time
 boolean isSearchable()
          Is the context searchable when doing "non-targeted" searches?
 void lock()
          Performs a shared locking on this context, guaranteeing that no IndexReader/Searcher/Writer close will occur.
 void merge(org.apache.lucene.store.Directory directory)
          Merges content of given Lucene directory with this context.
 void merge(org.apache.lucene.store.Directory directory, DocumentFilter filter)
          Merges content of given Lucene directory with this context, but filters out the unwanted ones.
 void optimize()
          Optimizes index
 void purge()
          Purge (cleans) the context, deletes/empties the index and restores the context to new/empty state.
 void rebuildGroups()
          Rebuilds stored group names from the index
 void replace(org.apache.lucene.store.Directory directory)
          Replaces the Lucene index with the one from supplied directory.
 void rollback()
          Rolls back changes to context, eventually refreshing readers/searchers too.
 void setAllGroups(Collection<String> groups)
          Sets all group names stored in the current indexing context
 void setRootGroups(Collection<String> groups)
          Sets root group names stored in the current indexing context
 void setSearchable(boolean searchable)
          Sets is the context searchable when doing "non-targeted" searches.
 void unlock()
          Releases the shared lock on this context.
 void updateTimestamp()
           
 void updateTimestamp(boolean save)
           
 void updateTimestamp(boolean save, Date date)
           
 
Methods inherited from class org.apache.maven.index.context.AbstractIndexingContext
isReceivingUpdates
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MergedIndexingContext

public MergedIndexingContext(String id,
                             String repositoryId,
                             File repository,
                             File indexDirectoryFile,
                             boolean searchable,
                             ContextMemberProvider membersProvider)
                      throws IOException
Throws:
IOException

MergedIndexingContext

public MergedIndexingContext(String id,
                             String repositoryId,
                             File repository,
                             org.apache.lucene.store.Directory indexDirectory,
                             boolean searchable,
                             ContextMemberProvider membersProvider)
                      throws IOException
Throws:
IOException
Method Detail

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

getIndexReader

public org.apache.lucene.index.IndexReader getIndexReader()
                                                   throws IOException
Description copied from interface: IndexingContext
Returns the Lucene IndexReader of this context.

Returns:
reader
Throws:
IOException

getIndexSearcher

public org.apache.lucene.search.IndexSearcher getIndexSearcher()
                                                        throws IOException
Description copied from interface: IndexingContext
Returns the Lucene IndexSearcher of this context.

Returns:
searcher
Throws:
IOException

getIndexWriter

public org.apache.lucene.index.IndexWriter getIndexWriter()
                                                   throws IOException
Description copied from interface: IndexingContext
Returns the Lucene IndexWriter 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

Throws:
IOException

lock

public void lock()
Description copied from interface: IndexingContext
Performs a shared locking on this context, guaranteeing that no IndexReader/Searcher/Writer close will occur. But the cost of it is potentially blocking other threads, so stay in critical region locking this context as less as possible.


unlock

public void unlock()
Description copied from interface: IndexingContext
Releases the shared lock on this context.


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

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

getIndexDirectory

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

getIndexDirectoryFile

public File getIndexDirectoryFile()

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


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.