Class FilteringUtils
- java.lang.Object
-
- org.apache.maven.shared.filtering.FilteringUtils
-
public final class FilteringUtils extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private static int
FILE_COPY_BUFFER_SIZE
The file copy buffer size (30 MB)private static int
ONE_KB
The number of bytes in a kilobyte.private static int
ONE_MB
The number of bytes in a megabyte.private static java.util.regex.Pattern
PATTERN
private static java.lang.String
WINDOWS_PATH_PATTERN
-
Constructor Summary
Constructors Modifier Constructor Description private
FilteringUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static java.lang.String
buildRelativePath(java.lang.String toPath, java.lang.String fromPath, char separatorChar)
private static java.nio.charset.Charset
charset(java.lang.String encoding)
static void
copyFile(java.io.File from, java.io.File to, java.lang.String encoding, FilterWrapper[] wrappers, boolean overwrite)
If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if overwrite is trueprivate static void
copyFilePermissions(java.io.File source, java.io.File destination)
Attempts to copy file permissions from the source to the destination file.static java.lang.String
escapeWindowsPath(java.lang.String val)
static java.lang.String
getRelativeFilePath(java.lang.String oldPath, java.lang.String newPath)
This method can calculate the relative path between two paths on a file system.(package private) static boolean
isEmpty(java.lang.String string)
static java.io.File
resolveFile(java.io.File baseFile, java.lang.String filename)
Resolve a filefilename
to its canonical form.
-
-
-
Field Detail
-
ONE_KB
private static final int ONE_KB
The number of bytes in a kilobyte.- See Also:
- Constant Field Values
-
ONE_MB
private static final int ONE_MB
The number of bytes in a megabyte.- See Also:
- Constant Field Values
-
FILE_COPY_BUFFER_SIZE
private static final int FILE_COPY_BUFFER_SIZE
The file copy buffer size (30 MB)- See Also:
- Constant Field Values
-
WINDOWS_PATH_PATTERN
private static final java.lang.String WINDOWS_PATH_PATTERN
- See Also:
- Constant Field Values
-
PATTERN
private static final java.util.regex.Pattern PATTERN
-
-
Method Detail
-
escapeWindowsPath
public static java.lang.String escapeWindowsPath(java.lang.String val)
- Parameters:
val
- The value to be escaped.- Returns:
- Escaped value
-
resolveFile
public static java.io.File resolveFile(java.io.File baseFile, java.lang.String filename)
Resolve a filefilename
to its canonical form. Iffilename
is relative (doesn't start with/
), it is resolved relative tobaseFile
. Otherwise it is treated as a normal root-relative path.- Parameters:
baseFile
- where to resolvefilename
from, iffilename
is relativefilename
- absolute or relative file path to resolve- Returns:
- the canonical
File
offilename
-
getRelativeFilePath
public static java.lang.String getRelativeFilePath(java.lang.String oldPath, java.lang.String newPath)
This method can calculate the relative path between two paths on a file system.
PathTool.getRelativeFilePath( null, null ) = "" PathTool.getRelativeFilePath( null, "/usr/local/java/bin" ) = "" PathTool.getRelativeFilePath( "/usr/local", null ) = "" PathTool.getRelativeFilePath( "/usr/local", "/usr/local/java/bin" ) = "java/bin" PathTool.getRelativeFilePath( "/usr/local", "/usr/local/java/bin/" ) = "java/bin" PathTool.getRelativeFilePath( "/usr/local/java/bin", "/usr/local/" ) = "../.." PathTool.getRelativeFilePath( "/usr/local/", "/usr/local/java/bin/java.sh" ) = "java/bin/java.sh" PathTool.getRelativeFilePath( "/usr/local/java/bin/java.sh", "/usr/local/" ) = "../../.." PathTool.getRelativeFilePath( "/usr/local/", "/bin" ) = "../../bin" PathTool.getRelativeFilePath( "/bin", "/usr/local/" ) = "../usr/local"
Note: On Windows based system, the/
character should be replaced by\
character.- Parameters:
oldPath
- old pathnewPath
- new path- Returns:
- a relative file path from
oldPath
.
-
buildRelativePath
private static java.lang.String buildRelativePath(java.lang.String toPath, java.lang.String fromPath, char separatorChar)
-
isEmpty
static boolean isEmpty(java.lang.String string)
-
copyFile
public static void copyFile(java.io.File from, java.io.File to, java.lang.String encoding, FilterWrapper[] wrappers, boolean overwrite) throws java.io.IOException
If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if overwrite is true- Parameters:
from
- the file to copyto
- the destination fileencoding
- the file output encoding (only if wrappers is not empty)wrappers
- array ofFilterWrapper
overwrite
- if true and wrappers is null or empty, the file will be copied even if to.lastModified() < from.lastModified()- Throws:
java.io.IOException
- if an IO error occurs during copying or filtering
-
copyFilePermissions
private static void copyFilePermissions(java.io.File source, java.io.File destination) throws java.io.IOException
Attempts to copy file permissions from the source to the destination file. Initially attempts to copy posix file permissions, assuming that the files are both on posix filesystems. If the initial attempts fail then a second attempt using less precise permissions model. Note that permissions are copied on a best-efforts basis, failure to copy permissions will not result in an exception.- Parameters:
source
- the file to copy permissions from.destination
- the file to copy permissions to.- Throws:
java.io.IOException
-
charset
private static java.nio.charset.Charset charset(java.lang.String encoding)
-
-