Package org.apache.lucene.replicator
Class IndexRevision
- java.lang.Object
-
- org.apache.lucene.replicator.IndexRevision
-
- All Implemented Interfaces:
Comparable<Revision>
,Revision
public class IndexRevision extends Object implements Revision
ARevision
of a single index files which comprises the list of files that are part of the currentIndexCommit
. To ensure the files are not deleted byIndexWriter
for as long as this revision stays alive (i.e. untilrelease()
), the current commit point is snapshotted, usingSnapshotDeletionPolicy
(this means that the given writer'sconfig
should returnSnapshotDeletionPolicy
).When this revision is
released
, it releases the obtained snapshot as well as callsIndexWriter.deleteUnusedFiles()
so that the snapshotted files are deleted (if they are no longer needed).- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Constructor Summary
Constructors Constructor Description IndexRevision(IndexWriter writer)
Constructor over the givenIndexWriter
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(String version)
Compares the revision to the given version string.int
compareTo(Revision o)
Map<String,List<RevisionFile>>
getSourceFiles()
Returns the files that comprise this revision, as a mapping from a source to a list of files.String
getVersion()
Returns a string representation of the version of this revision.InputStream
open(String source, String fileName)
Returns anIndexInput
for the given fileName and source.void
release()
Called when this revision can be safely released, i.e.static Map<String,List<RevisionFile>>
revisionFiles(IndexCommit commit)
Returns a singleton map of the revision files from the givenIndexCommit
.static String
revisionVersion(IndexCommit commit)
Returns a String representation of a revision's version from the givenIndexCommit
.String
toString()
-
-
-
Constructor Detail
-
IndexRevision
public IndexRevision(IndexWriter writer) throws IOException
Constructor over the givenIndexWriter
. Uses the lastIndexCommit
found in theDirectory
managed by the given writer.- Throws:
IOException
-
-
Method Detail
-
revisionFiles
public static Map<String,List<RevisionFile>> revisionFiles(IndexCommit commit) throws IOException
Returns a singleton map of the revision files from the givenIndexCommit
.- Throws:
IOException
-
revisionVersion
public static String revisionVersion(IndexCommit commit)
Returns a String representation of a revision's version from the givenIndexCommit
.
-
compareTo
public int compareTo(String version)
Description copied from interface:Revision
Compares the revision to the given version string. Behaves likeComparable.compareTo(Object)
.
-
compareTo
public int compareTo(Revision o)
- Specified by:
compareTo
in interfaceComparable<Revision>
-
getVersion
public String getVersion()
Description copied from interface:Revision
Returns a string representation of the version of this revision. The version is used byRevision.compareTo(String)
as well as to serialize/deserialize revision information. Therefore it must be self descriptive as well as be able to identify one revision from another.- Specified by:
getVersion
in interfaceRevision
-
getSourceFiles
public Map<String,List<RevisionFile>> getSourceFiles()
Description copied from interface:Revision
Returns the files that comprise this revision, as a mapping from a source to a list of files.- Specified by:
getSourceFiles
in interfaceRevision
-
open
public InputStream open(String source, String fileName) throws IOException
Description copied from interface:Revision
Returns anIndexInput
for the given fileName and source. It is the caller's responsibility to close theIndexInput
when it has been consumed.- Specified by:
open
in interfaceRevision
- Throws:
IOException
-
release
public void release() throws IOException
Description copied from interface:Revision
Called when this revision can be safely released, i.e. where there are no more references to it.- Specified by:
release
in interfaceRevision
- Throws:
IOException
-
-