Spring Framework
org.springframework.core.io.support

Class PathMatchingResourcePatternResolver

    • Constructor Detail

      • PathMatchingResourcePatternResolver

        public PathMatchingResourcePatternResolver()
        Create a new PathMatchingResourcePatternResolver with a DefaultResourceLoader.

        ClassLoader access will happen via the thread context class loader.

        See Also:
        DefaultResourceLoader
      • PathMatchingResourcePatternResolver

        public PathMatchingResourcePatternResolver(ClassLoader classLoader)
        Create a new PathMatchingResourcePatternResolver with a DefaultResourceLoader.
        Parameters:
        classLoader - the ClassLoader to load classpath resources with, or null for using the thread context class loader at the time of actual resource access
        See Also:
        DefaultResourceLoader
      • PathMatchingResourcePatternResolver

        public PathMatchingResourcePatternResolver(ResourceLoader resourceLoader)
        Create a new PathMatchingResourcePatternResolver.

        ClassLoader access will happen via the thread context class loader.

        Parameters:
        resourceLoader - the ResourceLoader to load root directories and actual resources with
    • Method Detail

      • getResourceLoader

        public ResourceLoader getResourceLoader()
        Return the ResourceLoader that this pattern resolver works with.
      • getClassLoader

        public ClassLoader getClassLoader()
        Return the ClassLoader that this pattern resolver works with (never null).
        Specified by:
        getClassLoader in interface ResourceLoader
        Returns:
        the ClassLoader (never null)
      • setPathMatcher

        public void setPathMatcher(PathMatcher pathMatcher)
        Set the PathMatcher implementation to use for this resource pattern resolver. Default is AntPathMatcher.
        See Also:
        AntPathMatcher
      • getPathMatcher

        public PathMatcher getPathMatcher()
        Return the PathMatcher that this resource pattern resolver uses.
      • getResources

        public Resource[] getResources(String locationPattern)
                                throws IOException
        Description copied from interface: ResourcePatternResolver
        Resolve the given location pattern into Resource objects.

        Overlapping resource entries that point to the same physical resource should be avoided, as far as possible. The result should have set semantics.

        Specified by:
        getResources in interface ResourcePatternResolver
        Parameters:
        locationPattern - the location pattern to resolve
        Returns:
        the corresponding Resource objects
        Throws:
        IOException - in case of I/O errors
      • convertClassLoaderURL

        protected Resource convertClassLoaderURL(URL url)
        Convert the given URL as returned from the ClassLoader into a Resource object.

        The default implementation simply creates a UrlResource instance.

        Parameters:
        url - a URL as returned from the ClassLoader
        Returns:
        the corresponding Resource object
        See Also:
        ClassLoader.getResources(java.lang.String), Resource
      • determineRootDir

        protected String determineRootDir(String location)
        Determine the root directory for the given location.

        Used for determining the starting point for file matching, resolving the root directory location to a java.io.File and passing it into retrieveMatchingFiles, with the remainder of the location as pattern.

        Will return "/WEB-INF/" for the pattern "/WEB-INF/*.xml", for example.

        Parameters:
        location - the location to check
        Returns:
        the part of the location that denotes the root directory
        See Also:
        retrieveMatchingFiles(java.io.File, java.lang.String)
      • resolveRootDirResource

        protected Resource resolveRootDirResource(Resource original)
                                           throws IOException
        Resolve the specified resource for path matching.

        The default implementation detects an Equinox OSGi "bundleresource:" / "bundleentry:" URL and resolves it into a standard jar file URL that can be traversed using Spring's standard jar file traversal algorithm.

        Parameters:
        original - the resource to resolve
        Returns:
        the resolved resource (may be identical to the passed-in resource)
        Throws:
        IOException - in case of resolution failure
      • doFindPathMatchingJarResources

        protected Set<Resource> doFindPathMatchingJarResources(Resource rootDirResource,
                                                   String subPattern)
                                                        throws IOException
        Find all resources in jar files that match the given location pattern via the Ant-style PathMatcher.
        Parameters:
        rootDirResource - the root directory as Resource
        subPattern - the sub pattern to match (below the root directory)
        Returns:
        the Set of matching Resource instances
        Throws:
        IOException - in case of I/O errors
        See Also:
        JarURLConnection, PathMatcher
      • doFindMatchingFileSystemResources

        protected Set<Resource> doFindMatchingFileSystemResources(File rootDir,
                                                      String subPattern)
                                                           throws IOException
        Find all resources in the file system that match the given location pattern via the Ant-style PathMatcher.
        Parameters:
        rootDir - the root directory in the file system
        subPattern - the sub pattern to match (below the root directory)
        Returns:
        the Set of matching Resource instances
        Throws:
        IOException - in case of I/O errors
        See Also:
        retrieveMatchingFiles(java.io.File, java.lang.String), PathMatcher
      • retrieveMatchingFiles

        protected Set<File> retrieveMatchingFiles(File rootDir,
                                      String pattern)
                                           throws IOException
        Retrieve files that match the given path pattern, checking the given directory and its subdirectories.
        Parameters:
        rootDir - the directory to start from
        pattern - the pattern to match against, relative to the root directory
        Returns:
        the Set of matching File instances
        Throws:
        IOException - if directory contents could not be retrieved
      • doRetrieveMatchingFiles

        protected void doRetrieveMatchingFiles(String fullPattern,
                                   File dir,
                                   Set<File> result)
                                        throws IOException
        Recursively retrieve files that match the given pattern, adding them to the given result list.
        Parameters:
        fullPattern - the pattern to match against, with prepended root directory path
        dir - the current directory
        result - the Set of matching File instances to add to
        Throws:
        IOException - if directory contents could not be retrieved
Spring Framework