Class DataSourceResourceLoader

java.lang.Object
org.apache.velocity.runtime.resource.loader.ResourceLoader
org.apache.velocity.runtime.resource.loader.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:

<resource-ref>
Velocity template DataSource
<res-ref-name>jdbc/Velocity</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


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 $
  • Field Details

    • dataSourceName

      private String dataSourceName
    • tableName

      private String tableName
    • keyColumn

      private String keyColumn
    • templateColumn

      private String templateColumn
    • timestampColumn

      private String timestampColumn
    • ctx

      private InitialContext ctx
    • dataSource

      private DataSource dataSource
  • Constructor Details

    • DataSourceResourceLoader

      public DataSourceResourceLoader()
  • Method Details