org.apache.velocity.runtime.resource.loader
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,v 1.16.4.1 2004/03/03 23:23:02 geirm Exp $
Field Summary | |
---|---|
Hashtable | entryDirectory
Maps entries to the parent JAR File
Key = the entry *excluding* plain directories
Value = the JAR URL |
Hashtable | jarfiles
Maps JAR URLs to the actual JAR
Key = the JAR URL
Value = the JAR |
Method Summary | |
---|---|
void | addEntries(Hashtable entries)
Copy all the entries into the entryDirectory
It will overwrite any duplicate keys. |
void | closeJar(String path)
Closes a Jar file and set its URLConnection
to null. |
long | getLastModified(Resource resource) |
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) |
void | loadJar(String path) |
Parameters: name name of template to get
Returns: InputStream containing the template
Throws: ResourceNotFoundException if template not found in the file template path.