Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

    java.lang.Object
      |
      +--org.apache.velocity.runtime.resource.loader.ResourceLoader
            |
            +--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,v 1.15 2002/01/02 09:03:17 dlr Exp $
Author:
  Dave Bryson

Field Summary
`private java.util.Hashtable` | `entryDirectory` Maps entries to the parent JAR File Key = the entry *excluding* plain directories Value = the JAR URL
`private java.util.Hashtable` | `jarfiles` Maps JAR URLs to the actual JAR Key = the JAR URL Value = the JAR

Fields inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader
`className, isCachingOn, modificationCheckInterval, rsvc`

Constructor Summary
`JarResourceLoader()`

Method Summary
`private void` | `addEntries(java.util.Hashtable entries)` Copy all the entries into the entryDirectory It will overwrite any duplicate keys.
`private void` | `closeJar(java.lang.String path)` Closes a Jar file and set its URLConnection to null.
`long` | `getLastModified(Resource resource)` Get the last modified time of the InputStream source that was used to create the template.
`java.io.InputStream` | `getResourceStream(java.lang.String source)` Get an InputStream so that the Runtime can build a template with it.
`void` | `init(org.apache.commons.collections.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.
`private void` | `loadJar(java.lang.String path)`

Methods inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader
`commonInit, getClassName, getModificationCheckInterval, isCachingOn, setCachingOn, setModificationCheckInterval`

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### entryDirectory

    private java.util.Hashtable entryDirectory

  Maps entries to the parent JAR File Key = the entry *excluding* plain directories Value = the JAR URL

### jarfiles

    private java.util.Hashtable jarfiles

  Maps JAR URLs to the actual JAR Key = the JAR URL Value = the JAR

Constructor Detail

### JarResourceLoader

    public JarResourceLoader()

Method Detail

### init

    public void init(org.apache.commons.collections.ExtendedProperties configuration)

  Called by Velocity to initialize the loader
  Overrides:
    `init` in class `ResourceLoader`

### loadJar

    private void loadJar(java.lang.String path)

### closeJar

    private void closeJar(java.lang.String path)

  Closes a Jar file and set its URLConnection to null.

### addEntries

    private void addEntries(java.util.Hashtable entries)

  Copy all the entries into the entryDirectory It will overwrite any duplicate keys.

### getResourceStream

    public java.io.InputStream getResourceStream(java.lang.String source)
                                          throws ResourceNotFoundException

  Get an InputStream so that the Runtime can build a template with it.
  Overrides:
    `getResourceStream` in class `ResourceLoader`
  Parameters:
    `name` - 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.
  Overrides:
    `isSourceModified` in class `ResourceLoader`

### 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.
  Overrides:
    `getLastModified` in class `ResourceLoader`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003 Apache Software Foundation. All Rights Reserved.