org.apache.velocity.runtime.resource.loader
Class JarResourceLoader

java.lang.Object
  extended by org.apache.velocity.runtime.resource.loader.ResourceLoader
      extended by org.apache.velocity.runtime.resource.loader.JarResourceLoader

public class JarResourceLoader
extends ResourceLoader

ResourceLoader to load templates from multiple Jar files.

The configuration of the JarResourceLoader is straightforward - You simply add the JarResourceLoader to the configuration via

    resource.loader = jar
    jar.resource.loader.class = org.apache.velocity.runtime.resource.loader.JarResourceLoader
    jar.resource.loader.path = list of JAR <URL>s
 

So for example, if you had a jar file on your local filesystem, you could simply do

    jar.resource.loader.path = jar:file:/opt/myfiles/jar1.jar
    

Note that jar specification for the .path configuration property conforms to the same rules for the java.net.JarUrlConnection class.

For a working example, see the unit test case, org.apache.velocity.test.MultiLoaderTestCase class

Version:
$Id: JarResourceLoader.java 691884 2008-09-04 06:46:51Z nbubna $
Author:
Aki Nieminen, Dave Bryson

Field Summary
 
Fields inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader
className, isCachingOn, log, modificationCheckInterval, rsvc
 
Constructor Summary
JarResourceLoader()
           
 
Method Summary
 long getLastModified(Resource resource)
          Get the last modified time of the InputStream source that was used to create the template.
 InputStream getResourceStream(String source)
          Get an InputStream so that the Runtime can build a template with it.
 void init(ExtendedProperties configuration)
          Called by Velocity to initialize the loader
 boolean isSourceModified(Resource resource)
          Given a template, check to see if the source of InputStream has been modified.
 
Methods inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader
commonInit, getClassName, getModificationCheckInterval, isCachingOn, resourceExists, setCachingOn, setModificationCheckInterval
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JarResourceLoader

public JarResourceLoader()
Method Detail

init

public void init(ExtendedProperties configuration)
Called by Velocity to initialize the loader

Specified by:
init in class ResourceLoader
Parameters:
configuration -

getResourceStream

public InputStream getResourceStream(String source)
                              throws ResourceNotFoundException
Get an InputStream so that the Runtime can build a template with it.

Specified by:
getResourceStream in class ResourceLoader
Parameters:
source - name of template to get
Returns:
InputStream containing the template
Throws:
ResourceNotFoundException - if template not found in the file template path.

isSourceModified

public boolean isSourceModified(Resource resource)
Description copied from class: ResourceLoader
Given a template, check to see if the source of InputStream has been modified.

Specified by:
isSourceModified in class ResourceLoader
Returns:
True if the resource has been modified.
See Also:
ResourceLoader.isSourceModified(org.apache.velocity.runtime.resource.Resource)

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:
ResourceLoader.getLastModified(org.apache.velocity.runtime.resource.Resource)


Copyright © 2000-2008 The Apache Software Foundation. All Rights Reserved.