Class FileResourceLoader

java.lang.Object
org.apache.velocity.runtime.resource.loader.ResourceLoader
org.apache.velocity.runtime.resource.loader.FileResourceLoader

public class FileResourceLoader extends ResourceLoader
A loader for templates stored on the file system. Treats the template as relative to the configured root path. If the root path is empty treats the template name as an absolute path.
Version:
$Id$
  • Field Details

    • paths

      private List<String> paths
      The paths to search for templates.
    • templatePaths

      private Map<String,String> templatePaths
      Used to map the path that a template was found on so that we can properly check the modification times of the files. This is synchronizedMap instance.
  • Constructor Details

    • FileResourceLoader

      public FileResourceLoader()
  • Method Details

    • init

      public void init(ExtProperties configuration)
      Description copied from class: ResourceLoader
      Initialize the template loader with a a resources class.
      Specified by:
      init in class ResourceLoader
      See Also:
    • getResourceReader

      public Reader getResourceReader(String templateName, String encoding) throws ResourceNotFoundException
      Get a Reader so that the Runtime can build a template with it.
      Specified by:
      getResourceReader in class ResourceLoader
      Parameters:
      templateName - name of template to get
      Returns:
      Reader containing the template
      Throws:
      ResourceNotFoundException - if template not found in the file template path.
      Since:
      2.0
    • resourceExists

      public boolean resourceExists(String name)
      Overrides superclass for better performance.
      Overrides:
      resourceExists in class ResourceLoader
      Parameters:
      name - The name of a resource.
      Returns:
      true if a resource exists and can be accessed.
      Since:
      1.6
    • findTemplate

      private InputStream findTemplate(String path, String template) throws IOException
      Try to find a template given a normalized path.
      Parameters:
      path - a normalized path
      template - name of template to find
      Returns:
      InputStream input stream that will be parsed
      Throws:
      IOException
    • closeQuiet

      private void closeQuiet(InputStream is)
    • isSourceModified

      public boolean isSourceModified(Resource resource)
      How to keep track of all the modified times across the paths. Note that a file might have appeared in a directory which is earlier in the path; so we should search the path and see if the file we find that way is the same as the one that we have cached.
      Specified by:
      isSourceModified in class ResourceLoader
      Parameters:
      resource -
      Returns:
      True if the source has been modified.
    • getLastModified

      public long getLastModified(Resource resource)
      Description copied from class: ResourceLoader
      Get the last modified time of the InputStream source that was used to create the template. We need the template here because we have to extract the name of the template in order to locate the InputStream source.
      Specified by:
      getLastModified in class ResourceLoader
      Returns:
      Time in millis when the resource has been modified.
      See Also:
    • getFile

      private File getFile(String path, String template)
      Create a File based on either a relative path if given, or absolute path otherwise