Class DataSourceResourceLoader


  • public class DataSourceResourceLoader
    extends ResourceLoader

    This is a simple template file loader that loads templates from a DataSource instead of plain files.

    It can be configured with a datasource name, a table name, id column (name), content column (the template body) and a datetime column (for last modification info).

    Example configuration snippet for velocity.properties:

    resource.loader = file, ds

    ds.resource.loader.public.name = DataSource
    ds.resource.loader.description = Velocity DataSource Resource Loader
    ds.resource.loader.class = org.apache.velocity.runtime.resource.loader.DataSourceResourceLoader
    ds.resource.loader.resource.datasource = java:comp/env/jdbc/Velocity
    ds.resource.loader.resource.table = tb_velocity_template
    ds.resource.loader.resource.keycolumn = id_template
    ds.resource.loader.resource.templatecolumn = template_definition
    ds.resource.loader.resource.timestampcolumn = template_timestamp
    ds.resource.loader.cache = false
    ds.resource.loader.modificationCheckInterval = 60

    Optionally, the developer can instantiate the DataSourceResourceLoader and set the DataSource via code in a manner similar to the following:

    DataSourceResourceLoader ds = new DataSourceResourceLoader();
    ds.setDataSource(DATASOURCE);
    Velocity.setProperty("ds.resource.loader.instance",ds);

    The property ds.resource.loader.class should be left out, otherwise all the other properties in velocity.properties would remain the same.

    Example WEB-INF/web.xml:


    Velocity template DataSource
    jdbc/Velocity
    javax.sql.DataSource
    Container



    and Tomcat 4 server.xml file:
    [...]

    [...]


    driverClassName
    org.hsql.jdbcDriver


    driverName
    jdbc:HypersonicSQL:database


    user
    database_username


    password
    database_password


    [...]

    [...]

    Example sql script:
    CREATE TABLE tb_velocity_template (
    id_template varchar (40) NOT NULL ,
    template_definition text (16) NOT NULL ,
    template_timestamp datetime NOT NULL
    )

    Since:
    1.5
    Version:
    $Id: DataSourceResourceLoader.java 991660 2010-09-01 19:13:46Z nbubna $
    Author:
    Will Glass-Husain, Matt Raible, David Kinnvall, Paulo Gaspar, Sylwester Lachiewicz, Henning P. Schmiedehausen