Class PathResourceManager
- java.lang.Object
-
- io.undertow.server.handlers.resource.PathResourceManager
-
- All Implemented Interfaces:
ResourceManager,Closeable,AutoCloseable
- Direct Known Subclasses:
FileResourceManager
public class PathResourceManager extends Object implements ResourceManager
Serves files from the file system.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPathResourceManager.Builderstatic interfacePathResourceManager.ETagFunction
-
Field Summary
Fields Modifier and Type Field Description protected Stringbaseprotected FileSystemfileSystem-
Fields inherited from interface io.undertow.server.handlers.resource.ResourceManager
EMPTY_RESOURCE_MANAGER
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedPathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, String... safePaths)protectedPathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, String... safePaths)PathResourceManager(Path base)PathResourceManager(Path base, long transferMinSize)PathResourceManager(Path base, long transferMinSize, boolean caseSensitive)PathResourceManager(Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, String... safePaths)PathResourceManager(Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, String... safePaths)PathResourceManager(Path base, long transferMinSize, boolean followLinks, String... safePaths)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PathResourceManager.Builderbuilder()voidclose()PathgetBasePath()protected PathResourcegetFileResource(Path file, String path, Path symlinkBase, String normalizedFile)Apply security check for case insensitive file systems.ResourcegetResource(String p)Returns a resource for the given path.longgetTransferMinSize()booleanisResourceChangeListenerSupported()voidregisterResourceChangeListener(ResourceChangeListener listener)Registers a resource change listener, if the underlying resource manager support itvoidremoveResourceChangeListener(ResourceChangeListener listener)Removes a resource change listenerPathResourceManagersetBase(File base)PathResourceManagersetBase(Path base)
-
-
-
Field Detail
-
base
protected volatile String base
-
fileSystem
protected volatile FileSystem fileSystem
-
-
Constructor Detail
-
PathResourceManager
public PathResourceManager(Path base)
-
PathResourceManager
public PathResourceManager(Path base, long transferMinSize)
-
PathResourceManager
public PathResourceManager(Path base, long transferMinSize, boolean caseSensitive)
-
PathResourceManager
public PathResourceManager(Path base, long transferMinSize, boolean followLinks, String... safePaths)
-
PathResourceManager
protected PathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, String... safePaths)
-
PathResourceManager
protected PathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, String... safePaths)
-
PathResourceManager
public PathResourceManager(Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, String... safePaths)
-
-
Method Detail
-
getBasePath
public Path getBasePath()
-
setBase
public PathResourceManager setBase(Path base)
-
setBase
public PathResourceManager setBase(File base)
-
getResource
public Resource getResource(String p)
Description copied from interface:ResourceManagerReturns a resource for the given path. It is the responsibility of the called to make sure that the path in Canonicalised.- Specified by:
getResourcein interfaceResourceManager- Parameters:
p- The path- Returns:
- The resource representing the path, or null if no resource was found.
-
isResourceChangeListenerSupported
public boolean isResourceChangeListenerSupported()
- Specified by:
isResourceChangeListenerSupportedin interfaceResourceManager- Returns:
trueif a resource change listener is supported
-
registerResourceChangeListener
public void registerResourceChangeListener(ResourceChangeListener listener)
Description copied from interface:ResourceManagerRegisters a resource change listener, if the underlying resource manager support it- Specified by:
registerResourceChangeListenerin interfaceResourceManager- Parameters:
listener- The listener to register
-
removeResourceChangeListener
public void removeResourceChangeListener(ResourceChangeListener listener)
Description copied from interface:ResourceManagerRemoves a resource change listener- Specified by:
removeResourceChangeListenerin interfaceResourceManager
-
getTransferMinSize
public long getTransferMinSize()
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
getFileResource
protected PathResource getFileResource(Path file, String path, Path symlinkBase, String normalizedFile) throws IOException
Apply security check for case insensitive file systems.- Throws:
IOException
-
builder
public static PathResourceManager.Builder builder()
-
-