Interface BackupRepository

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  BackupRepository.PathType
      This enumeration defines the type of a given path.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default Checksum checksum​(org.apache.lucene.store.Directory dir, String fileName)
      Get checksum of fileName at dir.
      default void copyFileFrom​(org.apache.lucene.store.Directory sourceDir, String fileName, URI dest)
      Copy a file from specified sourceDir to the destination repository (i.e.
      default void copyFileTo​(URI sourceRepo, String fileName, org.apache.lucene.store.Directory dest)
      Copy a file from specified sourceRepo to the destination directory (i.e.
      default void copyIndexFileFrom​(org.apache.lucene.store.Directory sourceDir, String sourceFileName, URI destDir, String destFileName)
      Copy an index file from specified sourceDir to the destination repository (i.e.
      default void copyIndexFileFrom​(org.apache.lucene.store.Directory sourceDir, String sourceFileName, org.apache.lucene.store.Directory destDir, String destFileName)  
      default void copyIndexFileTo​(URI sourceRepo, String sourceFileName, org.apache.lucene.store.Directory dest, String destFileName)
      Copy an index file from specified sourceRepo to the destination directory (i.e.
      void createDirectory​(URI path)
      This method creates a directory at the specified path.
      default URI createDirectoryURI​(String path)
      This method returns the directory URI representation for the specified path.
      OutputStream createOutput​(URI path)
      This method returns a OutputStream instance for the specified path
      URI createURI​(String path)
      This method returns the URI representation for the specified path.
      default void delete​(URI path, Collection<String> files, boolean ignoreNoSuchFileException)
      Delete files at path
      void deleteDirectory​(URI path)
      This method deletes a directory at the specified path.
      boolean exists​(URI path)
      This method checks if the specified path exists in this repository.
      default String getBackupLocation​(String override)
      This method returns the location where the backup should be stored (or restored from).
      <T> T getConfigProperty​(String name)
      This method returns the value of the specified configuration property.
      BackupRepository.PathType getPathType​(URI path)
      This method returns the type of a specified path
      String[] listAll​(URI path)
      This method returns all the entries (files and directories) in the specified directory.
      default String[] listAllOrEmpty​(URI path)
      List all files or directories directly under path.
      org.apache.lucene.store.IndexInput openInput​(URI dirPath, String fileName, org.apache.lucene.store.IOContext ctx)
      This method returns a Lucene input stream reading an existing file.
      URI resolve​(URI baseUri, String... pathComponents)
      This method resolves a URI using the specified path components (as method arguments).
      default URI resolveDirectory​(URI baseUri, String... pathComponents)
      This method resolves a directory URI using the specified path components (as method arguments).
    • Method Detail

      • getBackupLocation

        default String getBackupLocation​(String override)
        This method returns the location where the backup should be stored (or restored from).
        Parameters:
        override - The location parameter supplied by the user.
        Returns:
        If override is not null then return the same value Otherwise return the default configuration value for the CoreAdminParams.BACKUP_LOCATION parameter.
      • getConfigProperty

        <T> T getConfigProperty​(String name)
        This method returns the value of the specified configuration property.
      • createURI

        URI createURI​(String path)
        This method returns the URI representation for the specified path. Note - the specified path could be a fully qualified URI OR a relative path for a file-system.
        Parameters:
        path - The path specified by the user.
        Returns:
        the URI representation of the user supplied value
      • createDirectoryURI

        default URI createDirectoryURI​(String path)
        This method returns the directory URI representation for the specified path. Note - the specified path could be a fully qualified URI OR a relative path for a file-system.
        Parameters:
        path - The path specified by the user.
        Returns:
        the URI representation of the user supplied value, ensured to look like a directory.
      • resolve

        URI resolve​(URI baseUri,
                    String... pathComponents)
        This method resolves a URI using the specified path components (as method arguments).
        Parameters:
        baseUri - The base URI to use for creating the path
        pathComponents - The directory (or file-name) to be included in the URI.
        Returns:
        A URI containing absolute path
      • resolveDirectory

        default URI resolveDirectory​(URI baseUri,
                                     String... pathComponents)
        This method resolves a directory URI using the specified path components (as method arguments).
        Parameters:
        baseUri - The base URI to use for creating the path
        pathComponents - The directory (or file-name) to be included in the URI.
        Returns:
        A URI containing absolute path, ensured to look like a directory
      • exists

        boolean exists​(URI path)
                throws IOException
        This method checks if the specified path exists in this repository.
        Parameters:
        path - The path whose existence needs to be checked.
        Returns:
        if the specified path exists in this repository.
        Throws:
        IOException - in case of errors
      • listAll

        String[] listAll​(URI path)
                  throws IOException
        This method returns all the entries (files and directories) in the specified directory.
        Parameters:
        path - The directory path
        Returns:
        an array of strings, one for each entry in the directory
        Throws:
        IOException - in case of errors
      • openInput

        org.apache.lucene.store.IndexInput openInput​(URI dirPath,
                                                     String fileName,
                                                     org.apache.lucene.store.IOContext ctx)
                                              throws IOException
        This method returns a Lucene input stream reading an existing file.
        Parameters:
        dirPath - The parent directory of the file to be read
        fileName - The name of the file to be read
        ctx - the Lucene IO context
        Returns:
        Lucene IndexInput reference
        Throws:
        IOException - in case of errors
      • createDirectory

        void createDirectory​(URI path)
                      throws IOException
        This method creates a directory at the specified path. If the directory already exist, this will be a no-op.
        Parameters:
        path - The path where the directory needs to be created.
        Throws:
        IOException - in case of errors
      • deleteDirectory

        void deleteDirectory​(URI path)
                      throws IOException
        This method deletes a directory at the specified path.
        Parameters:
        path - The path referring to the directory to be deleted.
        Throws:
        IOException - in case of errors
      • copyFileFrom

        default void copyFileFrom​(org.apache.lucene.store.Directory sourceDir,
                                  String fileName,
                                  URI dest)
                           throws IOException
        Copy a file from specified sourceDir to the destination repository (i.e. backup).
        Parameters:
        sourceDir - The source directory hosting the file to be copied.
        fileName - The name of the file to by copied
        dest - The destination backup location.
        Throws:
        IOException - in case of errors
      • copyFileTo

        default void copyFileTo​(URI sourceRepo,
                                String fileName,
                                org.apache.lucene.store.Directory dest)
                         throws IOException
        Copy a file from specified sourceRepo to the destination directory (i.e. restore).
        Parameters:
        sourceRepo - The source URI hosting the file to be copied.
        fileName - The name of the file to by copied
        dest - The destination where the file should be copied.
        Throws:
        IOException - in case of errors.
      • listAllOrEmpty

        default String[] listAllOrEmpty​(URI path)
        List all files or directories directly under path.
        Returns:
        an empty array in case of IOException
      • copyIndexFileFrom

        default void copyIndexFileFrom​(org.apache.lucene.store.Directory sourceDir,
                                       String sourceFileName,
                                       org.apache.lucene.store.Directory destDir,
                                       String destFileName)
                                throws IOException
        Throws:
        IOException
      • checksum

        default Checksum checksum​(org.apache.lucene.store.Directory dir,
                                  String fileName)
                           throws IOException
        Get checksum of fileName at dir. This method only be called on Lucene index files
        Throws:
        IOException
        Since:
        8.3.0
      • copyIndexFileFrom

        default void copyIndexFileFrom​(org.apache.lucene.store.Directory sourceDir,
                                       String sourceFileName,
                                       URI destDir,
                                       String destFileName)
                                throws IOException
        Copy an index file from specified sourceDir to the destination repository (i.e. backup).
        Parameters:
        sourceDir - The source directory hosting the file to be copied.
        sourceFileName - The name of the file to by copied
        destDir - The destination backup location.
        Throws:
        IOException - in case of errors
        org.apache.lucene.index.CorruptIndexException - in case checksum of the file does not match with precomputed checksum stored at the end of the file
        Since:
        8.3.0
      • copyIndexFileTo

        default void copyIndexFileTo​(URI sourceRepo,
                                     String sourceFileName,
                                     org.apache.lucene.store.Directory dest,
                                     String destFileName)
                              throws IOException
        Copy an index file from specified sourceRepo to the destination directory (i.e. restore).
        Parameters:
        sourceRepo - The source URI hosting the file to be copied.
        dest - The destination where the file should be copied.
        Throws:
        IOException - in case of errors.
        Since:
        8.3.0