Code cleanup in FreemarkerConfigurationLoader.getTemplateLoader()
This commit is contained in:
parent
8a49574f7e
commit
37d95fe5fc
1 changed files with 21 additions and 16 deletions
|
@ -4,6 +4,8 @@ package edu.cornell.mannlib.vitro.webapp.controller.freemarker;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
@ -133,28 +135,31 @@ public class FreemarkerConfigurationLoader {
|
||||||
// location, then in the vitro location.
|
// location, then in the vitro location.
|
||||||
protected final TemplateLoader getTemplateLoader(Configuration config, String themeDir) {
|
protected final TemplateLoader getTemplateLoader(Configuration config, String themeDir) {
|
||||||
|
|
||||||
String themeTemplatePath = context.getRealPath(themeDir) + "/templates";
|
List<TemplateLoader> loaders = new ArrayList<TemplateLoader>();
|
||||||
String vitroTemplatePath = context.getRealPath("/templates/freemarker");
|
MultiTemplateLoader mtl = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
TemplateLoader[] loaders;
|
// Theme template loader
|
||||||
FlatteningTemplateLoader vitroFtl = new FlatteningTemplateLoader(new File(vitroTemplatePath));
|
String themeTemplatePath = context.getRealPath(themeDir) + "/templates";
|
||||||
ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), "");
|
|
||||||
|
|
||||||
File themeTemplateDir = new File(themeTemplatePath);
|
File themeTemplateDir = new File(themeTemplatePath);
|
||||||
// Handle the case where there's no theme template directory gracefully
|
// Handle the case where there's no theme template directory gracefully
|
||||||
if (themeTemplateDir.exists()) {
|
if (themeTemplateDir.exists()) {
|
||||||
FileTemplateLoader themeFtl = new FileTemplateLoader(themeTemplateDir);
|
FileTemplateLoader themeFtl = new FileTemplateLoader(themeTemplateDir);
|
||||||
loaders = new TemplateLoader[] { themeFtl, vitroFtl, ctl };
|
loaders.add(themeFtl);
|
||||||
} else {
|
|
||||||
loaders = new TemplateLoader[] { vitroFtl, ctl };
|
|
||||||
}
|
}
|
||||||
MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
|
|
||||||
return mtl;
|
// Vitro template loader
|
||||||
|
String vitroTemplatePath = context.getRealPath("/templates/freemarker");
|
||||||
|
loaders.add(new FlatteningTemplateLoader(new File(vitroTemplatePath)));
|
||||||
|
|
||||||
|
loaders.add(new ClassTemplateLoader(getClass(), ""));
|
||||||
|
|
||||||
|
TemplateLoader[] loaderArray = loaders.toArray(new TemplateLoader[loaders.size()]);
|
||||||
|
mtl = new MultiTemplateLoader(loaderArray);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("Error creating template loaders");
|
log.error("Error creating template loaders");
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
return mtl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue