Class HardlinkCopyDirectoryWrapper

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public final class HardlinkCopyDirectoryWrapper
    extends FilterDirectory
    This directory wrapper overrides Directory.copyFrom(Directory, String, String, IOContext) in order to optionally use a hard-link instead of a full byte by byte file copy if applicable. Hard-links are only used if the underlying filesystem supports it and if the LinkPermission "hard" is granted.

    NOTE: Using hard-links changes the copy semantics of Directory.copyFrom(Directory, String, String, IOContext). When hard-links are used changes to the source file will be reflected in the target file and vice-versa. Within Lucene, files are write once and should not be modified after they have been written. This directory should not be used in situations where files change after they have been written.

    • Constructor Detail

      • HardlinkCopyDirectoryWrapper

        public HardlinkCopyDirectoryWrapper​(Directory in)
        Creates a new HardlinkCopyDirectoryWrapper delegating to the given directory
    • Method Detail

      • copyFrom

        public void copyFrom​(Directory from,
                             java.lang.String srcFile,
                             java.lang.String destFile,
                             IOContext context)
                      throws java.io.IOException
        Description copied from class: Directory
        Copies an existing src file from directory from to a non-existent file dest in this directory.
        Overrides:
        copyFrom in class Directory
        Throws:
        java.io.IOException