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 )
ds.resource.loader.class