
org.zodiac.template.velocity.impl.SpringResourceLoaderAdapter Maven / Gradle / Ivy
package org.zodiac.template.velocity.impl;
import org.apache.velocity.util.ExtProperties;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.zodiac.sdk.toolkit.util.AssertUtil;
import org.zodiac.sdk.toolkit.util.file.FileToolUtil;
import org.zodiac.sdk.toolkit.util.lang.StrUtil;
/**
* 让velocity模板系统使用spring resource loader装载模板的适配器。
*
*/
public class SpringResourceLoaderAdapter extends AbstractResourceLoader {
public static final String RESOURCE_LOADER_NAME = "spring";
public static final String SPRING_RESOURCE_LOADER_KEY = "_spring_resource_loader";
private String path;
private ResourceLoader springLoader;
public SpringResourceLoaderAdapter() {
super();
}
/** 初始化resource loader. */
@Override
public void init(ExtProperties configuration) {
rsvc.getLog().info(getLogID() + " : initialization starting.");
springLoader = AssertUtil.assertNotNull((ResourceLoader)rsvc.getApplicationAttribute(SPRING_RESOURCE_LOADER_KEY),
SPRING_RESOURCE_LOADER_KEY);
path = FileToolUtil.normalizeAbsolutePath(configuration.getString("path"), true);
AssertUtil.assertTrue(StrUtil.isNotEmpty(path), "path");
path += "/";
rsvc.getLog().info(getLogID() + " : set path '" + path + "'");
rsvc.getLog().info(getLogID() + " : initialization complete.");
}
/** 取得资源。 */
@Override
protected Resource getResource(String source, String encoding) {
return springLoader.getResource(path + normalizeTemplateName(source));
}
/** 取得用于日志记录的ID。 */
@Override
protected String getLogID() {
return getClass().getSimpleName();
}
@Override
protected String getDesc() {
return path;
}
@Override
protected String getLoaderName() {
return RESOURCE_LOADER_NAME;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy