Class TransientFileFactory

java.lang.Object
org.apache.jackrabbit.util.TransientFileFactory

public class TransientFileFactory extends Object
The TransientFileFactory utility class can be used to create transient files, i.e. temporary files that are automatically removed once the associated File object is reclaimed by the garbage collector.

File deletion is handled by a low-priority background thread.

  • Method Details

    • getInstance

      public static TransientFileFactory getInstance()
      Returns the singleton TransientFileFactory instance.
    • createTransientFile

      public File createTransientFile(String prefix, String suffix, File directory) throws IOException
      Same as File.createTempFile(String, String, File) except that the newly-created file will be automatically deleted once the returned File object has been gc'ed.
      Parameters:
      prefix - The prefix string to be used in generating the file's name; must be at least three characters long
      suffix - The suffix string to be used in generating the file's name; may be null, in which case the suffix ".tmp" will be used
      directory - The directory in which the file is to be created, or null if the default temporary-file directory is to be used
      Returns:
      the newly-created empty file
      Throws:
      IOException - If a file could not be created
    • shutdown

      public static void shutdown()
      Shuts this factory down removing all temp files and removes shutdown hook.

      Warning!!!

      This should be called by a web-application IF it is unloaded AND IF jackrabbit-jcr-commons.jar had been loaded by the webapp classloader. This must be called after all repositories had been stopped, so use with great care!

      See http://issues.apache.org/jira/browse/JCR-1636 for details.