org.apache.lucene.replicator
Class IndexAndTaxonomyReplicationHandler

java.lang.Object
  extended by org.apache.lucene.replicator.IndexAndTaxonomyReplicationHandler
All Implemented Interfaces:
ReplicationClient.ReplicationHandler

public class IndexAndTaxonomyReplicationHandler
extends Object
implements ReplicationClient.ReplicationHandler

A ReplicationClient.ReplicationHandler for replication of an index and taxonomy pair. See IndexReplicationHandler for more detail. This handler ensures that the search and taxonomy indexes are replicated in a consistent way.

NOTE: if you intend to recreate a taxonomy index, you should make sure to reopen an IndexSearcher and TaxonomyReader pair via the provided callback, to guarantee that both indexes are in sync. This handler does not prevent replicating such index and taxonomy pairs, and if they are reopened by a different thread, unexpected errors can occur, as well as inconsistency between the taxonomy and index readers.

See Also:
IndexReplicationHandler
WARNING: This API is experimental and might change in incompatible ways in the next release.

Field Summary
static String INFO_STREAM_COMPONENT
          The component used to log messages to the default InfoStream.
 
Constructor Summary
IndexAndTaxonomyReplicationHandler(Directory indexDir, Directory taxoDir, Callable<Boolean> callback)
          Constructor with the given index directory and callback to notify when the indexes were updated.
 
Method Summary
 Map<String,List<RevisionFile>> currentRevisionFiles()
          Returns the current revision files held by the handler.
 String currentVersion()
          Returns the current revision version held by the handler.
 void revisionReady(String version, Map<String,List<RevisionFile>> revisionFiles, Map<String,List<String>> copiedFiles, Map<String,Directory> sourceDirectory)
          Called when a new revision was obtained and is available (i.e.
 void setInfoStream(InfoStream infoStream)
          Sets the InfoStream to use for logging messages.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INFO_STREAM_COMPONENT

public static final String INFO_STREAM_COMPONENT
The component used to log messages to the default InfoStream.

See Also:
Constant Field Values
Constructor Detail

IndexAndTaxonomyReplicationHandler

public IndexAndTaxonomyReplicationHandler(Directory indexDir,
                                          Directory taxoDir,
                                          Callable<Boolean> callback)
                                   throws IOException
Constructor with the given index directory and callback to notify when the indexes were updated.

Throws:
IOException
Method Detail

currentVersion

public String currentVersion()
Description copied from interface: ReplicationClient.ReplicationHandler
Returns the current revision version held by the handler.

Specified by:
currentVersion in interface ReplicationClient.ReplicationHandler

currentRevisionFiles

public Map<String,List<RevisionFile>> currentRevisionFiles()
Description copied from interface: ReplicationClient.ReplicationHandler
Returns the current revision files held by the handler.

Specified by:
currentRevisionFiles in interface ReplicationClient.ReplicationHandler

revisionReady

public void revisionReady(String version,
                          Map<String,List<RevisionFile>> revisionFiles,
                          Map<String,List<String>> copiedFiles,
                          Map<String,Directory> sourceDirectory)
                   throws IOException
Description copied from interface: ReplicationClient.ReplicationHandler
Called when a new revision was obtained and is available (i.e. all needed files were successfully copied).

Specified by:
revisionReady in interface ReplicationClient.ReplicationHandler
Parameters:
version - the version of the Revision that was copied
revisionFiles - the files contained by this Revision
copiedFiles - the files that were actually copied
sourceDirectory - a mapping from a source of files to the Directory they were copied into
Throws:
IOException

setInfoStream

public void setInfoStream(InfoStream infoStream)
Sets the InfoStream to use for logging messages.



Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.