NIHVIVO-3729 Stop storing the FreemarkerConfiguration as a request attribute. Instead, get it from the FreemarkerConfigurationLoader when you need it.
This commit is contained in:
parent
21828f9233
commit
981ac675c9
6 changed files with 10 additions and 22 deletions
|
@ -112,7 +112,7 @@ public class ContactMailController extends FreemarkerHttpServlet {
|
||||||
|
|
||||||
String originalReferer = getOriginalRefererFromSession(vreq);
|
String originalReferer = getOriginalRefererFromSession(vreq);
|
||||||
|
|
||||||
Configuration config = (Configuration) vreq.getAttribute("freemarkerConfig");
|
Configuration config = FreemarkerConfigurationLoader.getConfig(vreq);
|
||||||
String msgText = composeEmail(webusername, webuseremail, comments,
|
String msgText = composeEmail(webusername, webuseremail, comments,
|
||||||
deliveryfrom, originalReferer, vreq.getRemoteAddr(), config, vreq);
|
deliveryfrom, originalReferer, vreq.getRemoteAddr(), config, vreq);
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,6 @@ public class FreemarkerComponentGenerator extends FreemarkerHttpServlet {
|
||||||
// Mimic what FreemarkerHttpServlet does for a new request
|
// Mimic what FreemarkerHttpServlet does for a new request
|
||||||
VitroRequest vreq = new VitroRequest(request);
|
VitroRequest vreq = new VitroRequest(request);
|
||||||
FreemarkerConfiguration config = getConfig(vreq);
|
FreemarkerConfiguration config = getConfig(vreq);
|
||||||
vreq.setAttribute("freemarkerConfig", config);
|
|
||||||
Map<String, Object> map = getPageTemplateValues(vreq);
|
Map<String, Object> map = getPageTemplateValues(vreq);
|
||||||
|
|
||||||
request.setAttribute("ftl_head", getHead("head", map, config, vreq));
|
request.setAttribute("ftl_head", getHead("head", map, config, vreq));
|
||||||
|
|
|
@ -101,7 +101,6 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
}
|
}
|
||||||
|
|
||||||
FreemarkerConfiguration config = getConfig(vreq);
|
FreemarkerConfiguration config = getConfig(vreq);
|
||||||
vreq.setAttribute("freemarkerConfig", config);
|
|
||||||
|
|
||||||
responseValues = processRequest(vreq);
|
responseValues = processRequest(vreq);
|
||||||
doResponse(vreq, response, responseValues);
|
doResponse(vreq, response, responseValues);
|
||||||
|
@ -346,7 +345,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
private Map<String, Object> buildRequestUrls(VitroRequest vreq) {
|
private Map<String, Object> buildRequestUrls(VitroRequest vreq) {
|
||||||
Map<String, Object> requestUrls = new HashMap<String, Object>();
|
Map<String, Object> requestUrls = new HashMap<String, Object>();
|
||||||
|
|
||||||
FreemarkerConfiguration config = (FreemarkerConfiguration)vreq.getAttribute("freemarkerConfig");
|
FreemarkerConfiguration config = FreemarkerConfigurationLoader.getConfig(vreq);
|
||||||
TemplateModel urlModel = config.getSharedVariable("urls");
|
TemplateModel urlModel = config.getSharedVariable("urls");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -25,6 +25,8 @@ import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerConfiguration;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerConfigurationLoader;
|
||||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,7 +59,9 @@ public class FreemarkerEmailFactory {
|
||||||
}
|
}
|
||||||
|
|
||||||
FreemarkerEmailFactory factory = getFactory(vreq);
|
FreemarkerEmailFactory factory = getFactory(vreq);
|
||||||
return new FreemarkerEmailMessage(vreq, factory.getEmailSession(),
|
FreemarkerConfiguration fConfig = FreemarkerConfigurationLoader
|
||||||
|
.getConfig(vreq);
|
||||||
|
return new FreemarkerEmailMessage(fConfig, factory.getEmailSession(),
|
||||||
factory.getReplyToAddress());
|
factory.getReplyToAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@ import javax.mail.internet.InternetAddress;
|
||||||
import javax.mail.internet.MimeBodyPart;
|
import javax.mail.internet.MimeBodyPart;
|
||||||
import javax.mail.internet.MimeMessage;
|
import javax.mail.internet.MimeMessage;
|
||||||
import javax.mail.internet.MimeMultipart;
|
import javax.mail.internet.MimeMultipart;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
@ -48,9 +47,6 @@ public class FreemarkerEmailMessage {
|
||||||
private static final Log log = LogFactory
|
private static final Log log = LogFactory
|
||||||
.getLog(FreemarkerEmailMessage.class);
|
.getLog(FreemarkerEmailMessage.class);
|
||||||
|
|
||||||
private static final String CONFIG_ATTRIBUTE = "freemarkerConfig";
|
|
||||||
|
|
||||||
private final HttpServletRequest req;
|
|
||||||
private final Session session;
|
private final Session session;
|
||||||
private final FreemarkerConfiguration config;
|
private final FreemarkerConfiguration config;
|
||||||
|
|
||||||
|
@ -67,21 +63,11 @@ public class FreemarkerEmailMessage {
|
||||||
/**
|
/**
|
||||||
* Package access - should only be created by the factory.
|
* Package access - should only be created by the factory.
|
||||||
*/
|
*/
|
||||||
FreemarkerEmailMessage(HttpServletRequest req, Session session,
|
FreemarkerEmailMessage(FreemarkerConfiguration fConfig, Session session,
|
||||||
InternetAddress replyToAddress) {
|
InternetAddress replyToAddress) {
|
||||||
this.req = req;
|
|
||||||
this.session = session;
|
this.session = session;
|
||||||
this.replyToAddress = replyToAddress;
|
this.replyToAddress = replyToAddress;
|
||||||
|
this.config = fConfig;
|
||||||
Object o = req.getAttribute(CONFIG_ATTRIBUTE);
|
|
||||||
if (!(o instanceof FreemarkerConfiguration)) {
|
|
||||||
String oClass = (o == null) ? "null" : o.getClass().getName();
|
|
||||||
|
|
||||||
throw new IllegalStateException(
|
|
||||||
"Request does not contain a Configuration at '"
|
|
||||||
+ CONFIG_ATTRIBUTE + "': " + oClass);
|
|
||||||
}
|
|
||||||
this.config = (FreemarkerConfiguration) o;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addRecipient(RecipientType type, String emailAddress) {
|
public void addRecipient(RecipientType type, String emailAddress) {
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class ViewFinder {
|
||||||
private String findCustomTemplateByVClasses(Individual individual, VitroRequest vreq) {
|
private String findCustomTemplateByVClasses(Individual individual, VitroRequest vreq) {
|
||||||
//
|
//
|
||||||
// Method method = view.getMethod();
|
// Method method = view.getMethod();
|
||||||
// TemplateLoader templateLoader = ((Configuration) vreq.getAttribute("freemarkerConfig")).getTemplateLoader();
|
// TemplateLoader templateLoader = FreemarkerConfigurationLoader.getConfig(vreq).getTemplateLoader();
|
||||||
//
|
//
|
||||||
// /* RY The logic here is incorrect. The vclasses are
|
// /* RY The logic here is incorrect. The vclasses are
|
||||||
// * returned in a random order, whereas we need to
|
// * returned in a random order, whereas we need to
|
||||||
|
|
Loading…
Add table
Reference in a new issue