## org.apache.lucene.replicator
Class IndexAndTaxonomyReplicationHandler

    java.lang.Object
      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.