Class LocalFileSystemRepository

java.lang.Object
org.apache.solr.core.backup.repository.AbstractBackupRepository
org.apache.solr.core.backup.repository.LocalFileSystemRepository
All Implemented Interfaces:
Closeable, AutoCloseable, BackupRepository, NamedListInitializedPlugin

public class LocalFileSystemRepository extends AbstractBackupRepository
A concrete implementation of BackupRepository interface supporting backup/restore of Solr indexes to a local file-system. (Note - This can even be used for a shared file-system if it is exposed via a local file-system interface e.g. NFS).
  • Constructor Details

    • LocalFileSystemRepository

      public LocalFileSystemRepository()
  • Method Details

    • getConfigProperty

      public <T> T getConfigProperty(String name)
      Description copied from interface: BackupRepository
      This method returns the value of the specified configuration property.
    • createURI

      public URI createURI(String location)
      Description copied from interface: BackupRepository
      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:
      location - The path specified by the user.
      Returns:
      the URI representation of the user supplied value
    • resolve

      public URI resolve(URI baseUri, String... pathComponents)
      Description copied from interface: BackupRepository
      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
    • createDirectory

      public void createDirectory(URI path) throws IOException
      Description copied from interface: BackupRepository
      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

      public void deleteDirectory(URI path) throws IOException
      Description copied from interface: BackupRepository
      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
    • exists

      public boolean exists(URI path) throws IOException
      Description copied from interface: BackupRepository
      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
    • openInput

      public org.apache.lucene.store.IndexInput openInput(URI dirPath, String fileName, org.apache.lucene.store.IOContext ctx) throws IOException
      Description copied from interface: BackupRepository
      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
    • createOutput

      public OutputStream createOutput(URI path) throws IOException
      Description copied from interface: BackupRepository
      This method returns a OutputStream instance for the specified path
      Parameters:
      path - The path for which OutputStream needs to be created
      Returns:
      OutputStream instance for the specified path
      Throws:
      IOException - in case of errors
    • listAll

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

      public BackupRepository.PathType getPathType(URI path) throws IOException
      Description copied from interface: BackupRepository
      This method returns the type of a specified path
      Parameters:
      path - The path whose type needs to be checked.
      Returns:
      the BackupRepository.PathType for the specified path
      Throws:
      IOException - in case of errors
    • copyIndexFileFrom

      public void copyIndexFileFrom(org.apache.lucene.store.Directory sourceDir, String sourceFileName, URI destDir, String destFileName) throws IOException
      Description copied from interface: BackupRepository
      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 be copied
      destDir - The destination backup location.
      Throws:
      IOException - in case of errors
    • copyIndexFileTo

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

      public void delete(URI path, Collection<String> files) throws IOException
      Description copied from interface: BackupRepository
      Delete files at path
      Throws:
      IOException
    • close

      public void close() throws IOException
      Throws:
      IOException