Package: org.codehaus.groovy.grails.io.support

[Java] Class PathMatchingResourcePatternResolver

    • Methods Summary

        Methods 
        Type Name and description
        protected Resource convertClassLoaderURL(java.net.URL url)
        Convert the given URL as returned from the ClassLoader into a Resource object.
        protected java.lang.String determineRootDir(java.lang.String location)
        Determine the root directory for the given location.
        protected java.util.Set<Resource> doFindMatchingFileSystemResources(java.io.File rootDir, java.lang.String subPattern)
        Find all resources in the file system that match the given location pattern via the Ant-style PathMatcher.
        protected java.util.Set<Resource> doFindPathMatchingFileResources(Resource rootDirResource, java.lang.String subPattern)
        Find all resources in the file system that match the given location pattern via the Ant-style PathMatcher.
        protected java.util.Set<Resource> doFindPathMatchingJarResources(Resource rootDirResource, java.lang.String subPattern)
        Find all resources in jar files that match the given location pattern via the Ant-style PathMatcher.
        protected void doRetrieveMatchingFiles(java.lang.String fullPattern, java.io.File dir, java.util.Set<java.io.File> result)
        Recursively retrieve files that match the given pattern, adding them to the given result list.
        protected Resource[] findAllClassPathResources(java.lang.String location)
        Find all class location resources with the given location via the ClassLoader.
        protected Resource[] findPathMatchingResources(java.lang.String locationPattern)
        Find all resources that match the given location pattern via the Ant-style PathMatcher.
        java.lang.ClassLoader getClassLoader()
        Return the ClassLoader that this pattern resolver works with (never null).
        protected java.util.jar.JarFile getJarFile(java.lang.String jarFileUrl)
        Resolve the given jar file URL into a JarFile object.
        AntPathMatcher getPathMatcher()
        Return the PathMatcher that this resource pattern resolver uses.
        Resource getResource(java.lang.String location)
        ResourceLoader getResourceLoader()
        Return the ResourceLoader that this pattern resolver works with.
        Resource[] getResources(java.lang.String locationPattern)
        protected boolean isJarResource(Resource resource)
        Return whether the given resource handle indicates a jar resource that the doFindPathMatchingJarResources method can handle.
        protected Resource resolveRootDirResource(Resource original)
        Resolve the specified resource for path matching.
        protected java.util.Set<java.io.File> retrieveMatchingFiles(java.io.File rootDir, java.lang.String pattern)
        Retrieve files that match the given path pattern, checking the given directory and its subdirectories.
        void setPathMatcher(AntPathMatcher pathMatcher)
        Set the PathMatcher implementation to use for this resource pattern resolver.
    • Inherited Methods Summary

        Inherited Methods 
        Methods inherited from class Name
        class java.lang.Object java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
    • Constructor Detail

      • public PathMatchingResourcePatternResolver()

        Create a new PathMatchingResourcePatternResolver with a DefaultResourceLoader.

        ClassLoader access will happen via the thread context class loader.

      • public PathMatchingResourcePatternResolver(java.lang.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

      • 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

      • protected Resource convertClassLoaderURL(java.net.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:
        java.lang.ClassLoader#getResources

      • protected java.lang.String determineRootDir(java.lang.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

      • protected java.util.Set<Resource> doFindMatchingFileSystemResources(java.io.File rootDir, java.lang.String subPattern)

        Find all resources in the file system that match the given location pattern via the Ant-style PathMatcher.

        throws:
        IOException in case of I/O errors
        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
        See Also:
        retrieveMatchingFiles

      • protected java.util.Set<Resource> doFindPathMatchingFileResources(Resource rootDirResource, java.lang.String subPattern)

        Find all resources in the file system that match the given location pattern via the Ant-style PathMatcher.

        throws:
        IOException in case of I/O errors
        Parameters:
        rootDirResource - the root directory as Resource
        subPattern - the sub pattern to match (below the root directory)
        Returns:
        the Set of matching Resource instances
        See Also:
        retrieveMatchingFiles

      • protected java.util.Set<Resource> doFindPathMatchingJarResources(Resource rootDirResource, java.lang.String subPattern)

        Find all resources in jar files that match the given location pattern via the Ant-style PathMatcher.

        throws:
        IOException in case of I/O errors
        Parameters:
        rootDirResource - the root directory as Resource
        subPattern - the sub pattern to match (below the root directory)
        Returns:
        the Set of matching Resource instances
        See Also:
        java.net.JarURLConnection

      • protected void doRetrieveMatchingFiles(java.lang.String fullPattern, java.io.File dir, java.util.Set<java.io.File> result)

        Recursively retrieve files that match the given pattern, adding them to the given result list.

        throws:
        IOException if directory contents could not be retrieved
        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

      • protected Resource[] findAllClassPathResources(java.lang.String location)

        Find all class location resources with the given location via the ClassLoader.

        throws:
        IOException in case of I/O errors
        Parameters:
        location - the absolute path within the classpath
        Returns:
        the result as Resource array
        See Also:
        java.lang.ClassLoader#getResources
        convertClassLoaderURL

      • protected Resource[] findPathMatchingResources(java.lang.String locationPattern)

        Find all resources that match the given location pattern via the Ant-style PathMatcher. Supports resources in jar files and zip files and in the file system.

        throws:
        IOException in case of I/O errors
        Parameters:
        locationPattern - the location pattern to match
        Returns:
        the result as Resource array
        See Also:
        doFindPathMatchingJarResources
        doFindPathMatchingFileResources

      • public java.lang.ClassLoader getClassLoader()

        Return the ClassLoader that this pattern resolver works with (never null).

      • protected java.util.jar.JarFile getJarFile(java.lang.String jarFileUrl)

        Resolve the given jar file URL into a JarFile object.

      • public AntPathMatcher getPathMatcher()

        Return the PathMatcher that this resource pattern resolver uses.

      • public Resource getResource(java.lang.String location)

      • public ResourceLoader getResourceLoader()

        Return the ResourceLoader that this pattern resolver works with.

      • public Resource[] getResources(java.lang.String locationPattern)

      • protected boolean isJarResource(Resource resource)

        Return whether the given resource handle indicates a jar resource that the doFindPathMatchingJarResources method can handle.

        The default implementation checks against the URL protocols "jar", "zip" and "wsjar" (the latter are used by BEA WebLogic Server and IBM WebSphere, respectively, but can be treated like jar files).

        Parameters:
        resource - the resource handle to check (usually the root directory to start path matching from)
        See Also:
        doFindPathMatchingJarResources

      • protected Resource resolveRootDirResource(Resource original)

        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.

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

      • protected java.util.Set<java.io.File> retrieveMatchingFiles(java.io.File rootDir, java.lang.String pattern)

        Retrieve files that match the given path pattern, checking the given directory and its subdirectories.

        throws:
        IOException if directory contents could not be retrieved
        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

      • public void setPathMatcher(AntPathMatcher pathMatcher)

        Set the PathMatcher implementation to use for this resource pattern resolver. Default is AntPathMatcher.