Class 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.
    • Field Detail

      • id

        private final java.lang.String id
      • repositoryId

        private final java.lang.String repositoryId
      • repository

        private final java.io.File repository
      • directory

        private final org.apache.lucene.store.Directory directory
      • directoryFile

        private java.io.File directoryFile
      • searchable

        private boolean searchable
    • Constructor Detail

      • MergedIndexingContext

        private MergedIndexingContext​(ContextMemberProvider membersProvider,
                                      java.lang.String id,
                                      java.lang.String repositoryId,
                                      java.io.File repository,
                                      org.apache.lucene.store.Directory indexDirectory,
                                      boolean searchable)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • MergedIndexingContext

        public MergedIndexingContext​(java.lang.String id,
                                     java.lang.String repositoryId,
                                     java.io.File repository,
                                     java.io.File indexDirectoryFile,
                                     boolean searchable,
                                     ContextMemberProvider membersProvider)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • MergedIndexingContext

        @Deprecated
        public MergedIndexingContext​(java.lang.String id,
                                     java.lang.String repositoryId,
                                     java.io.File repository,
                                     org.apache.lucene.store.Directory indexDirectory,
                                     boolean searchable,
                                     ContextMemberProvider membersProvider)
                              throws java.io.IOException
        Deprecated.
        Throws:
        java.io.IOException
    • Method Detail

      • getId

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

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

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

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

        public java.lang.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 java.util.Date getTimestamp()
        Description copied from interface: IndexingContext
        Returns index update time
      • updateTimestamp

        public void updateTimestamp()
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • updateTimestamp

        public void updateTimestamp​(boolean save)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • updateTimestamp

        public void updateTimestamp​(boolean save,
                                    java.util.Date date)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • getSize

        public int getSize()
                    throws java.io.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:
        java.io.IOException
      • acquireIndexSearcher

        public org.apache.lucene.search.IndexSearcher acquireIndexSearcher()
                                                                    throws java.io.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:
        java.io.IOException
      • releaseIndexSearcher

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

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

        public java.util.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 java.io.IOException
        Description copied from interface: IndexingContext
        Commits changes to context, eventually refreshing readers/searchers too.
        Throws:
        java.io.IOException
      • rollback

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

        public void optimize()
                      throws java.io.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:
        java.io.IOException
      • close

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

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

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

        public void merge​(org.apache.lucene.store.Directory directory,
                          DocumentFilter filter)
                   throws java.io.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:
        java.io.IOException
      • replace

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

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

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

        public java.io.File getIndexDirectoryFile()
      • setIndexDirectoryFile

        protected void setIndexDirectoryFile​(java.io.File dir)
                                      throws java.io.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:
        java.io.IOException
      • getGavCalculator

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

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

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

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

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

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