Class Cleaner


  • class Cleaner
    extends java.lang.Object
    Cleans directories.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.nio.file.Path fastDir  
      private java.lang.String fastMode  
      private static java.lang.String LAST_DIRECTORY_TO_DELETE  
      private org.apache.maven.plugin.logging.Log log  
      private static boolean ON_WINDOWS  
      private org.apache.maven.execution.MavenSession session
      The maven session.
      private boolean verbose  
    • Constructor Summary

      Constructors 
      Constructor Description
      Cleaner​(org.apache.maven.execution.MavenSession session, org.apache.maven.plugin.logging.Log log, boolean verbose, java.nio.file.Path fastDir, java.lang.String fastMode)
      Creates a new cleaner.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.io.IOException delete​(java.nio.file.Path file)  
      private int delete​(java.nio.file.Path file, boolean failOnError, boolean retryOnError)
      Deletes the specified file, directory.
      private Cleaner.Result delete​(java.nio.file.Path file, java.lang.String pathname, Selector selector, boolean followSymlinks, boolean failOnError, boolean retryOnError)
      Deletes the specified file or directory.
      void delete​(java.nio.file.Path basedir, Selector selector, boolean followSymlinks, boolean failOnError, boolean retryOnError)
      Deletes the specified directories and its contents.
      private boolean fastDelete​(java.nio.file.Path baseDir)  
      private boolean isSymbolicLink​(java.nio.file.Path path)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ON_WINDOWS

        private static final boolean ON_WINDOWS
      • LAST_DIRECTORY_TO_DELETE

        private static final java.lang.String LAST_DIRECTORY_TO_DELETE
      • session

        private final org.apache.maven.execution.MavenSession session
        The maven session. This is typically non-null in a real run, but it can be during unit tests.
      • fastDir

        private final java.nio.file.Path fastDir
      • fastMode

        private final java.lang.String fastMode
      • verbose

        private final boolean verbose
      • log

        private org.apache.maven.plugin.logging.Log log
    • Constructor Detail

      • Cleaner

        Cleaner​(org.apache.maven.execution.MavenSession session,
                org.apache.maven.plugin.logging.Log log,
                boolean verbose,
                java.nio.file.Path fastDir,
                java.lang.String fastMode)
        Creates a new cleaner.
        Parameters:
        session - The Maven session to be used.
        log - The logger to use.
        verbose - Whether to perform verbose logging.
        fastDir - The explicit configured directory or to be deleted in fast mode.
        fastMode - The fast deletion mode.
    • Method Detail

      • delete

        public void delete​(java.nio.file.Path basedir,
                           Selector selector,
                           boolean followSymlinks,
                           boolean failOnError,
                           boolean retryOnError)
                    throws java.io.IOException
        Deletes the specified directories and its contents.
        Parameters:
        basedir - The directory to delete, must not be null. Non-existing directories will be silently ignored.
        selector - The selector used to determine what contents to delete, may be null to delete everything.
        followSymlinks - Whether to follow symlinks.
        failOnError - Whether to abort with an exception in case a selected file/directory could not be deleted.
        retryOnError - Whether to undertake additional delete attempts in case the first attempt failed.
        Throws:
        java.io.IOException - If a file/directory could not be deleted and failOnError is true.
      • fastDelete

        private boolean fastDelete​(java.nio.file.Path baseDir)
      • delete

        private Cleaner.Result delete​(java.nio.file.Path file,
                                      java.lang.String pathname,
                                      Selector selector,
                                      boolean followSymlinks,
                                      boolean failOnError,
                                      boolean retryOnError)
                               throws java.io.IOException
        Deletes the specified file or directory.
        Parameters:
        file - The file/directory to delete, must not be null. If followSymlinks is false, it is assumed that the parent file is canonical.
        pathname - The relative pathname of the file, using File.separatorChar, must not be null.
        selector - The selector used to determine what contents to delete, may be null to delete everything.
        followSymlinks - Whether to follow symlinks.
        failOnError - Whether to abort with an exception in case a selected file/directory could not be deleted.
        retryOnError - Whether to undertake additional delete attempts in case the first attempt failed.
        Returns:
        The result of the cleaning, never null.
        Throws:
        java.io.IOException - If a file/directory could not be deleted and failOnError is true.
      • isSymbolicLink

        private boolean isSymbolicLink​(java.nio.file.Path path)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • delete

        private int delete​(java.nio.file.Path file,
                           boolean failOnError,
                           boolean retryOnError)
                    throws java.io.IOException
        Deletes the specified file, directory. If the path denotes a symlink, only the link is removed, its target is left untouched.
        Parameters:
        file - The file/directory to delete, must not be null.
        failOnError - Whether to abort with an exception in case the file/directory could not be deleted.
        retryOnError - Whether to undertake additional delete attempts in case the first attempt failed.
        Returns:
        0 if the file was deleted, 1 otherwise.
        Throws:
        java.io.IOException - If a file/directory could not be deleted and failOnError is true.
      • delete

        private static java.io.IOException delete​(java.nio.file.Path file)