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:
and Tomcat 4 server.xml file:
[...]
[...]
[...]
[...]
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
)
@author Will Glass-Husain
@author Matt Raible
@author David Kinnvall
@author Paulo Gaspar
@author Sylwester Lachiewicz
@version $Id: DataSourceResourceLoader.java 383711 2006-03-07 00:01:00Z nbubna $
|
|
|
|
|
|
|
|