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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `INFO_STREAM_COMPONENT` The component used to log messages to the `default` `InfoStream`.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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-2021 Apache Software Foundation. All Rights Reserved.