Interface TempDirFactory

  • All Superinterfaces:
    java.lang.AutoCloseable, java.io.Closeable
    All Known Implementing Classes:
    TempDirFactory.Standard
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    @API(status=EXPERIMENTAL,
         since="5.10")
    public interface TempDirFactory
    extends java.io.Closeable
    TempDirFactory defines the SPI for creating temporary directories programmatically.

    A temporary directory factory is typically used to gain control over the temporary directory creation, like defining the parent directory or the file system that should be used.

    Implementations must provide a no-args constructor and should not make any assumptions regarding when and how many times they are instantiated, but they can assume that createTempDirectory(AnnotatedElementContext, ExtensionContext) and close() will both be called once per instance, in this order, and from the same thread.

    A TempDirFactory can be configured globally for the entire test suite via the "junit.jupiter.tempdir.factory.default" configuration parameter (see the User Guide for details) or locally for a test class field or method parameter via the @TempDir annotation.

    Since:
    5.10
    See Also:
    @TempDir
    • Method Detail

      • createTempDirectory

        java.nio.file.Path createTempDirectory​(AnnotatedElementContext elementContext,
                                               ExtensionContext extensionContext)
                                        throws java.lang.Exception
        Create a new temporary directory.

        Depending on the implementation, the resulting Path may or may not be associated with the default FileSystem.

        Parameters:
        elementContext - the context of the field or parameter where @TempDir is declared; never null
        extensionContext - the current extension context; never null
        Returns:
        the path to the newly created temporary directory; never null
        Throws:
        java.lang.Exception - in case of failures
      • close

        default void close()
                    throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException